내보내기(0) 인쇄
모두 확장

Windows Forms 및 Web Forms 권장 사항

Visual Studio .NET 2003

사용자 인터페이스가 포함된 응용 프로그램을 디자인할 때 Windows Forms 또는 Web Forms을 사용할 수 있습니다. 두 가지 폼 모두 개발 환경 내에서 완벽한 디자인 타임을 지원하며 업무 관련 문제를 해결할 수 있는 풍부한 사용자 인터페이스와 고급 응용 프로그램 기능을 제공할 수 있습니다. 그러면 특정 응용 프로그램에 어떤 기술이 적합한지 결정하는 방법을 알아보겠습니다.

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

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

Windows Forms

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

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

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

Web Forms

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

Web Forms 응용 프로그램은 플랫폼에 의존하는 개념이 아닙니다. 다시 말해서 Web Forms 응용 프로그램은 "리치" 응용 프로그램입니다. 사용자는 사용 중인 브라우저는 물론 컴퓨터 종류에도 상관없이 응용 프로그램과 상호 작용할 수 있습니다. 또한 가장 최신의 브라우저(예: Microsoft Internet Explorer 5)에 내장된 기능을 사용할 수 있도록 Web Forms 응용 프로그램을 최적화하여 성능과 응답성을 향상시킬 수 있습니다. 대부분의 경우 이러한 최적화 기능은 사용 중인 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을 사용하면 응용 프로그램을 "손대지 않고(no-touch)" 배포할 수 있습니다. 즉, 사용자는 레지스트리의 변경없이 응용 프로그램을 컴퓨터로 직접 다운로드, 설치 및 실행할 수 있습니다. Web Forms은 클라이언트 배포가 없으며, 클라이언트에는 브라우저만 있으면 됩니다. 서버에는 Microsoft .NET Framework가 실행 중이어야 합니다. 응용 프로그램의 업데이트는 서버의 코드의 업데이트를 통해 수행됩니다.
그래픽 Windows Forms은 GDI+를 포함합니다. 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은 코드 액세스 보안을 구현하는 데 정교한 사용 권한을 사용하여 컴퓨터 리소스와 중요한 정보를 보호합니다. 이렇게 하면 보안을 유지하면서 안전하게 기능을 노출할 수 있습니다. 인쇄 권한을 예로 들면 어떤 수준에서는 기본 프린터로의 인쇄만 허용되고 어떤 수준에서는 모든 프린터로의 인쇄가 허용됩니다. 웹 응용 프로그램의 리소스에 대한 액세스 권한 인증은 대개 URL 단위로 요청자의 자격 증명(예: 이름/암호 쌍)을 인증함으로써 제어됩니다. Web Forms을 사용하면 서버 응용 프로그램 코드를 실행하는 ID를 제어할 수 있습니다. 응용 프로그램은 요청한 엔터티의 ID로 코드를 실행할 수 있습니다. 이것을 가장이라고 합니다. 또한 응용 프로그램은 요청자의 ID 또는 역할에 따라 동적으로 내용을 수정할 수 있습니다. 예를 들어, 관리자는 사이트에 대한 액세스를 수신할 수 있습니다. 즉, 낮은 사용 권한을 가진 사람에 비해 더 높은 수준의 내용을 수신할 수 있습니다.

참고 항목

Visual Basic 및 Visual C#의 새로운 기능 | Web Forms 페이지 소개 | Windows Forms 소개 | Windows Forms 및 컨트롤의 새로운 기능 | 웹 개발의 새로운 기능

표시:
© 2014 Microsoft