이 포스트는 MSDN 메거진에 실린 아티클을 번역한 글의 일부이다.
그림 1과 같은 간단한 예제 박스 애플리케이션을 생각해보자. 독립형의 메뉴 기반 애플리케이션으로서 사용자들은 필요한 박스들의 목록을 보고 주문하고 주문을 삭제할 수도 있다. 이런 사용자 경험을 제공하기 위해서, 애플리케이션 제작의 가장 기본적인 것부터 시작할 필요가 있다 : 애플리케이션 생성.
윈도우 기반의 애플리케이션은 몇가지 표준적인 기반 구조를 가지고 있다 : 엔트리 포인트와 메시지 루프. 그리고 다음과 같은 공통적인 애플리케이션 서비스가 필요할 수도 있다.
l 커맨드 라인 파라미터 처리
l 종료 코드(exit code) 반환
l 애플리케이션 영역의 상태
l 처리하지 않은 예외 처리
l 애플리케이션 생명주기(lifetime)관리
WPF 애플리케이션은 이런 기반 요소와 서비스들을 네임스페이스 System.Windows.Application에 모두 포함하고 있다. 개발자들은 이것들을 XAML, 코드(C#) 또는 둘을 조합해서 이런 애플리케이션 기본 인프라를 사용할 수 있다. 이런 애플리케이션 개념은 매우 유용한 개념으로 알려져 있고, Visual Studio 2005는 이런 애플리케이션 개념을 이용할 수 있도록 .NET 3.0 윈도우 애플리케이션 프로젝트를 생성할때마다 Application 인스턴스를 하나씩 추가한다.
<!--App.xaml (markup)--> <Application x:Class="BoxApplicationWindow.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml ShutdownMode="OnMainWindowClose" StartupUri="MainWindow.xaml" > </Application> // App.xaml.cs (codebehind) public partial class App : Application { ... } |
만약 이전 방식의 윈도우 기반 기술 Windows Forms, Win32®의 프로그래밍 경험이 있다면, 조금 놀라지도 모르겠다. 얼른 보기에는 윈도우 기반의 애플리케이션 기반 구조를 마련해주기 위해 사용되는 엔트리 포인트가 없어 보인다. 이것은 Visual Studio 2005가 우리 대신에 애플리케이션 기반 구조를 자동으로 생성해주기 때문이다. Visual Studio 2005는 그림 3처럼 build action 속성을 “ApplicationDefinition”으로 설정한 Application 마크업 파일(App.xaml)을 이용한다. 즉 Visual Studio 2005는 “ApplicationDefinition “ 값을 갖는 xaml 파일에 설정된 내용을 근거로 해서 애플리케이션 엔트리 포인트 및 기반 구조를 준비한다.
이런 설정은 다음 코드와 동등하다고 보면 된다.
// App.cs using System; public partial class App : Application { [STAThread] public static void { // Initialize and run the application App application = new App(); application.Run(); } } |
'IT 살이 > 04. 기술 - 프로그래밍' 카테고리의 다른 글
04 Window (0) | 2009.04.23 |
---|---|
02 사용자 경험(User Experience) (0) | 2009.04.23 |
01 WPF로 사용자 경험(User Experience) 높이기 (0) | 2009.04.23 |