다음을 통해 공유


Windows Forms과 Web Forms 간의 선택

업데이트: 2007년 11월

사용자 인터페이스를 통해 응용 프로그램을 개발할 때는 Windows Forms 또는 Web Forms을 사용할 수 있습니다. 두 가지 폼 모두 개발 환경 내에서 완벽한 디자인 타임을 지원하며 업무 관련 문제를 해결할 수 있는 풍부한 사용자 인터페이스와 고급 응용 프로그램 기능을 제공할 수 있습니다. 두 가지 폼의 기능이 이렇게 비슷하기 때문에 해당 응용 프로그램에 적절한 기술을 결정하기가 어렵습니다.

그러나 각 응용 프로그램의 용도를 고려하면 좀더 분명하게 선택할 수 있습니다. 예를 들어, 일반 사용자들이 인터넷을 통해 액세스할 수 있는 전자 상거래 웹 사이트를 만들려면 Web Forms 페이지를 사용하여 응용 프로그램을 개발해야 합니다. 반면에 업무 생산성 향상 응용 프로그램처럼 클라이언트 컴퓨터의 기능을 최대한 사용해야 하는 프로세스 중심적이고 상호 작용이 활발한 응용 프로그램을 구축하려면 Windows Forms을 사용해야 합니다. 그러나 무엇을 선택해야 할지 분명하지 못한 경우도 있습니다.

다음 단원에서는 응용 프로그램에 가장 적합한 기술을 결정할 수 있도록 각 기술별 기능과 특징을 설명합니다.

Windows Forms을 사용해야 하는 경우

클라이언트 응용 프로그램에서 많은 양의 처리를 수행해야 하는 응용 프로그램을 개발하는 경우에 Windows Forms을 사용합니다. 이러한 클라이언트 응용 프로그램에는 일반적으로 이전 버전의 Visual Basic 및 Visual C++에서 개발한 Win32 데스크톱 응용 프로그램이 포함됩니다. 구체적인 예로 그리기 또는 그래픽 응용 프로그램, 데이터 입력 시스템, POS 시스템, 게임 등을 들 수 있습니다.

이러한 응용 프로그램은 모두 처리와 고성능 내용 표시를 데스크톱 컴퓨터의 성능에 의존한다는 공통점이 있습니다. 일부 Windows Forms 응용 프로그램은 완전히 독립적이며 모든 응용 프로그램 처리를 사용자 컴퓨터에서 수행합니다. 게임은 대개 이 방식을 사용하여 작성됩니다. 또한 다른 응용 프로그램은 상위 시스템의 일부가 되어 주로 사용자 입력을 처리하는 데 데스크톱 컴퓨터를 사용합니다. 예를 들어, POS 시스템은 종종 데스크톱 컴퓨터에서 구현되는 응답성이 강하고 복잡한 사용자 인터페이스를 필요로 하지만, 한편으로는 백 엔드 처리를 수행하는 다른 구성 요소에 연결됩니다.

Windows Forms Windows 응용 프로그램은 Windows 프레임워크를 중심으로 구축되므로 로컬 파일, Windows 레지스트리, 프린터 등과 같은 클라이언트 컴퓨터의 시스템 리소스에 액세스할 수 있습니다. 이러한 액세스의 수준을 제한하여 원하지 않는 액세스로 발생할 수 있는 모든 보안 위험이나 잠재적 문제를 제거할 수 있습니다. 또한 Windows Forms은 .NET FrameworkGDI+ 그래픽 클래스를 사용하여 데이터 마이닝 또는 게임 응용 프로그램 등에 필요한 화려한 그래픽 인터페이스를 만들 수 있습니다.

Web Forms을 사용해야 하는 경우

브라우저를 기본 사용자 인터페이스로 하는 응용 프로그램을 만들려면 ASP.NET Web Forms을 사용합니다. 이러한 응용 프로그램에는 전자 상거래 응용 프로그램과 같이 웹을 통해 공개적으로 사용할 수 있도록 디자인된 응용 프로그램이 포함됩니다. 그러나 Web Forms을 사용하면 단순한 웹 사이트 이상의 응용 프로그램을 만들 수 있습니다. 즉, 인트라넷 기반의 직원 업무 규정 또는 복리후생 응용 프로그램과 같은 "씬 프런트 엔드" 응용 프로그램을 만드는 데도 적합합니다. 배포 비용이 들지 않는다는 점도 Web Forms 응용 프로그램의 중요한 장점 중 하나입니다. 유일하게 필요한 응용 프로그램인 브라우저를 사용자가 이미 설치했기 때문에 배포 비용이 들지 않습니다.

Web Forms 응용 프로그램은 플랫폼으로부터 독립적인 "리치(reach)" 응용 프로그램입니다. 사용자는 사용 중인 브라우저는 물론 컴퓨터 종류에도 상관없이 응용 프로그램과 상호 작용할 수 있습니다. 또한 최신 브라우저(예: Microsoft Internet Explorer 6.0)에 기본적으로 제공된 기능을 사용할 수 있도록 Web Forms 응용 프로그램을 최적화하여 성능과 응답성을 향상시킬 수 있습니다.

참고:

대부분의 경우 이러한 최적화 기능은 사용 중인 Web Forms 구성 요소에 기본적으로 제공되어 있으며, 이러한 구성 요소는 자동으로 브라우저 수준을 감지하여 그에 따라 페이지를 렌더링합니다.

Web Forms 응용 프로그램은 웹이 아닌 컨텍스트에서도 유용한 일부 기능을 제공합니다. Web Forms 응용 프로그램은 HTML에 의존하기 때문에 모든 종류의 텍스트 중심 응용 프로그램, 특히 텍스트 서식 지정이 중요한 응용 프로그램에 적합합니다. 일반적으로 브라우저 기반 응용 프로그램은 사용자의 시스템 리소스에 대한 액세스가 제한되어 있지만, 응용 프로그램의 일부에 대한 사용자의 액세스를 제한해야 할 경우에는 이러한 제한 때문에 Web Forms 응용 프로그램이 도움이 됩니다.

Windows Forms과 Web Forms 비교

다음 표에서는 다양한 응용 프로그램 기준을 제시하여 Windows Forms과 Web Forms 기술을 비교 설명합니다.

기능/기준

Windows Forms

Web Forms

배포

Windows Forms을 사용하면 ClickOnce을 통해 응용 프로그램을 "손대지 않고(no-touch)" 배포할 수 있습니다. 즉, 사용자는 레지스트리의 변경 없이 응용 프로그램을 컴퓨터로 직접 다운로드, 설치 및 실행할 수 있습니다. ClickOnce에 대한 자세한 내용은 ClickOnce 배포 개요를 참조하십시오.

Web Forms은 클라이언트 배포가 없으며, 클라이언트에는 브라우저만 있으면 됩니다. 서버에는 Microsoft .NET Framework가 실행되고 있어야 합니다. 응용 프로그램의 업데이트는 서버의 코드의 업데이트를 통해 수행됩니다.

그래픽

Windows Forms에는 게임이나 아주 화려한 그래픽 환경에 사용되는 복잡한 그래픽을 구현할 수 있는 GDI+가 포함되어 있습니다.

Web Forms에 사용된 대화형 또는 동적 그래픽을 업데이트하려면 서버로의 라운드트립이 필요합니다. 서버에서 GDI+를 사용하여 사용자 지정 그래픽을 만들 수 있습니다.

응답성

Windows Forms은 클라이언트 컴퓨터에서 완벽하게 작동합니다. 즉 Windows Forms은 높은 수준의 상호 작용이 요구되는 응용 프로그램에 가장 빠른 응답 속도를 제공할 수 있습니다.

사용자가 Internet Explorer 5 이상을 사용하는 경우, Web Forms 응용 프로그램에서는 브라우저의 DHTML(동적 HTML) 기능을 사용하여 풍부하고 응답성이 뛰어난 UI(사용자 인터페이스)를 만들 수 있습니다. 사용자가 다른 브라우저를 사용하는 경우, 유효성 검사와 같은 UI 관련 작업을 포함하여 대부분의 처리에 웹 서버로의 라운드트립이 필요합니다. 이것은 응답성에 영향을 줄 수 있습니다.

폼 및 텍스트 방향 컨트롤

Windows Forms 모눈 위치 지정 기능은 컨트롤을 배치하는 데 정밀한 2차원 컨트롤(x, y 좌표)을 제공합니다.

Windows Forms에 텍스트를 표시하려면 Label, TextBox 또는 RichTextBox와 같은 컨트롤에 텍스트를 삽입해야 합니다. 서식 지정은 제한되어 있습니다.

Web Forms은 HTML 스타일 선형 레이아웃을 기반으로 하므로 웹 페이지 레이아웃의 모든 기능을 지원합니다. Web Forms은 특히 다양한 텍스트 서식 지정을 지원합니다.

컨트롤 레이아웃을 적절하게 관리할 수 있습니다. 그러나 컨트롤을 겹쳐 사용할 수 없는 것과 같은 약간의 제한이 있습니다. 사용자의 브라우저가 DHTML을 지원할 경우, 2차원(x, y좌표) 레이아웃을 사용하여 보다 정밀한 레이아웃을 지정할 수 있습니다.

플랫폼

Windows Forms을 사용하려면 클라이언트 컴퓨터에서 .NET Framework가 실행되고 있어야 합니다.

Web Forms을 사용하려면 브라우저만 있으면 됩니다. DHTML을 지원하는 브라우저를 사용하면 추가 기능을 사용할 수 있지만 Web Forms을 모든 브라우저에서 작동하도록 디자인할 수 있습니다. 웹 서버에는 .NET Framework가 실행되고 있어야 합니다.

로컬 리소스(파일 시스템, Windows 레지스트리 등) 액세스

허용된 경우 응용 프로그램은 로컬 컴퓨터의 모든 리소스에 액세스할 수 있습니다. 필요한 경우 응용 프로그램에서 특정 리소스를 사용할 수 없도록 세부적으로 제한할 수 있습니다.

브라우저 보안은 응용 프로그램이 로컬 컴퓨터의 리소스에 액세스하는 것을 막습니다.

프로그래밍 모델

Windows Forms은 클라이언트측 Win32 메시지 펌프 모드를 기반으로 합니다. 이 모드에서는 개발자가 구성 요소의 인스턴스를 작성, 사용 및 폐기합니다.

Web Forms은 대개 연결되지 않은 비동기식 모델에 의존합니다. 이 모델에서 구성 요소는 응용 프로그램 프런트 엔드에 느슨하게 결합됩니다. 일반적으로 응용 프로그램 구성 요소는 HTTP를 통해 호출됩니다. 이 모델은 사용자측에서 매우 많은 데이터를 처리해야 하거나 대용량 트랜잭션을 발생시키는 응용 프로그램에는 적합하지 않습니다. 이와 유사하게 Web Forms 응용 프로그램은 높은 수준의 동시성 제어(예: 비관적 잠금)가 필요한 데이터베이스 응용 프로그램에도 적합하지 않을 수 있습니다.

보안

Windows Forms은 사용 권한을 통해 코드 액세스 보안을 구현하여 컴퓨터 리소스와 중요한 정보를 보호합니다. 이렇게 하면 보안을 유지하면서 안전하게 기능을 노출할 수 있습니다. 인쇄 권한을 예로 들면 어떤 수준에서는 기본 프린터로만 인쇄할 수 있고 어떤 수준에서는 모든 프린터로 인쇄가 가능합니다. ClickOnce를 사용하면 응용 프로그램에서 클라이언트에 요구해야 할 권한과 요구하지 말아야 할 권한을 개발자가 쉽게 구성할 수 있습니다. 자세한 내용은 ClickOnce 배포 및 보안을 참조하십시오.

웹 응용 프로그램의 리소스에 대한 액세스 권한 인증은 대개 URL 단위로 요청자의 자격 증명(예: 이름/암호 쌍)을 인증함으로써 제어됩니다. Web Forms을 사용하면 개발자가 서버 응용 프로그램 코드를 실행하는 ID를 제어할 수 있습니다. 응용 프로그램은 요청한 엔터티의 ID로 코드를 실행할 수 있습니다. 이것을 가장이라고 합니다. 또한 응용 프로그램은 요청자의 ID 또는 역할에 따라 동적으로 내용을 수정할 수 있습니다. 예를 들어, 관리자는 사이트에 대한 액세스를 수신할 수 있습니다. 즉, 낮은 사용 권한을 가진 사람에 비해 더 높은 수준의 내용을 수신할 수 있습니다.

참고 항목

개념

ClickOnce 배포 개요

참조

Windows Forms 개요