본문 바로가기

IT 살이/04. 기술 - 프로그래밍

03 애플리케이션 타입(Application Type)

이 포스트는 MSDN 메거진에 실린 아티클을 번역한 글의 일부이다.

그림 1과 같은 간단한 예제 박스 애플리케이션을 생각해보자. 독립형의 메뉴 기반 애플리케이션으로서 사용자들은 필요한 박스들의 목록을 보고 주문하고 주문을 삭제할 수도 있다. 이런 사용자 경험을 제공하기 위해서, 애플리케이션 제작의 가장 기본적인 것부터 시작할 필요가 있다 : 애플리케이션 생성.

1006434244
그림 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 { ... }

1014322453
그림 2. VS2005 프로젝트


만약 이전 방식의 윈도우 기반 기술 Windows Forms, Win32
®의 프로그래밍 경험이 있다면, 조금 놀라지도 모르겠다. 얼른 보기에는 윈도우 기반의 애플리케이션 기반 구조를 마련해주기 위해 사용되는 엔트리 포인트가 없어 보인다. 이것은 Visual Studio 2005가 우리 대신에 애플리케이션 기반 구조를 자동으로 생성해주기 때문이다. Visual Studio 2005는 그림 3처럼 build action 속성을 ApplicationDefinition으로 설정한 Application 마크업 파일(App.xaml)을 이용한다. Visual Studio 2005ApplicationDefinition 값을 갖는 xaml 파일에 설정된 내용을 근거로 해서 애플리케이션 엔트리 포인트 및 기반 구조를 준비한다.

1061668314
그림 3. Application XAML 파일 설정


이런 설정은 다음 코드와 동등하다고 보면 된다.

// App.cs

using System;

public partial class App : Application

{

  [STAThread]

  public static void Main()

  {

  // Initialize and run the application

  App application = new App();

  application.Run();

  }

}

그러나 정확히 뭐가 생성되는지는 중요하지 않다. 개발자는 그 코드를 작성할 일도 그리고 그것의 복잡함을 꼭 이해할 필요도 없다. 마이크로소프트의 윈도우 프리젠테이션 기술이 시대에 따라 어떻게 추상화되는지는 개발자가 알 필요는 없다. 개발자는 다만 단 한줄의 마크업으로 실행될 수 있는 애플리케이션을 생성할 수 있고 그리고 Application의 기반 구조와 서비스를 이용할 수 있기만 하면 되는 것이다. 독립형 애플리케이션의 서비스에는 애플리케이션이 실행되기 시작하면서 하나의 윈도우를 보여주는 것도 포함한다.

'IT 살이 > 04. 기술 - 프로그래밍' 카테고리의 다른 글

04 Window  (0) 2009.04.23
02 사용자 경험(User Experience)  (0) 2009.04.23
01 WPF로 사용자 경험(User Experience) 높이기  (0) 2009.04.23