참고로 테스트를 위해 아래와 같은 것들을 설치하였습니다.
Windows Vista
Microsoft .NET Framework Version 3.5
Microsoft .NET Framework Version 3.5 Service Pack 1
Microsoft Visual Studio Team System 2008
Visual Studio 2008 Service Pack 1
Microsoft Expression Blend2
Microsoft Expression Blend2 Service Pack 1
1. WPF 시작하기
WPF시작하기 에서는 WPF가 무엇인지에 대해 몇 가지 주제로 이야기하려 합니다. 혹시 각각의 주제 중에서 간단히 넘어간 내용들은 차후 강좌를 통해 자세히 알아볼 예정이니 이런 것들이 있구나 하고 넘어가시면 될 것입니다.
그럼 이제 WPF란 무엇인지 알아보도록 하겠습니다.
- WPF란?
2002년 정식으로 출시된 .NET Framework 1.0에서 Windows Forms이라는 좋은 기술이 등장했지만 사용자들의 눈높이가 높아지면서 Window Application에서 풍부한 비디오와 다양한 컨텐츠를 요구하기 시작했고, 미디어, 애니메이션, 2D 3D그래픽 등을 사용할 수 있기를 원하게 되었습니다. 또한 기존의 주요 윈도우 플랫폼(User32/GDI32, Ruby, Windows Forms)은 사용자들의 요구를 상당부분 만족시켜 주었지만 모두 각각 독립된 기술들로 분산되어 있었습니다. 만약 윈도우 환경하에서 위에서 나열한 모든 기능을 포함하는 프로그램을 만들어야 한다면 개발자들은 여러 가지 다른 기술에 대한 이해가 있어야만 만들 수 있을 것이며 각각의 기술들을 이해하기위해 많은 노력이 필요로 하였을 것입니다.
그래서 하나의 기술의 범위에서 위의 모든 기능을 구현할 수 있도록 각각의 기술들을 광범위하게 연결하고 통합하도록 하는 기술이 필요하였고 그래서 만들어진 기술이 바로 WPF(Windows Presentation Foundation)인 것 입니다.
WPF는 .NET Framework 3.0부터 추가된 기술로 2008년 초에 출시된 비주얼 스튜디오 2008(한글판의 경우 2008년 초, 영문은 2007년 11월)에서 사용하는 .NET Framework 3.5를 살펴보면 Windows® Communication Foundation (WCF), Windows® Workflow Foundation (WF) 그리고 Windows CardSpace™ (WCS)등의 4가지 기술이 포함된 것을 볼 수 있습니다.
WPF는 .NET Framework 3.x에 추가된 새로운 기술중 하나로, Windows Vista의 새로운 UX를 제공하기 위해 탄생되었습니다.
WPF에서는 그 핵심이 UX에 있다보니 기존 Window 프로그래밍과 다르게 디자인적인 측면이 많이 요구되어 디자이너와 협업을 하여 작업을 해야 합니다.
이 때 개발자와 디자이너가 소통할 수 있는 중간언어를 사용해서 디자인과 코딩 작업을 병행할 수 있다면 커뮤니케이션 면, 생산성 면에서 좋은 효과를 거둘 수 있을 것입니다. 이를 위해 Microsoft사는XAML(Extensible Application Markup Language)이라고 하는 새로운 MarkUp Language를 발표하여 UI를 표현하기 위한 XAML언어를 이용하여 개발자와 디자이너가 모두 사용 가능한 형태의 중간 언어를 제공하게 되었습니다.
정리를 하자면 WPF는 Windows vista의 새로운 UX(User Experience:사용자 경험)를 제공하기 위해 탄생되었으며 이를 위해 개발자와 디자이너의 협업을 위한 XAML이라는 MarkUp Language로 개발자와 디자이너가 공동으로 작업할 수 있는 환경이 만들어지게 된것 입니다.
- Hello World 만들기
이제 본격적으로 WPF를 다루기 전에 간단한 WPF 프로그램을 만들어 보겠습니다
먼저 VisualStudio 2008을 실행 시킵니다.
새로운 프로젝트를 만들기 위해 상단 메뉴에서 파일 -> 새로 만들기 -> 프로젝트를 클릭합니다.
새 프로젝트 대화상자가 열리면 아래 그림과 같이 템플릿과 프로젝트 이름을 설정합니다.
프로젝트가 생성되면 HelloWorld라는 프로젝트 아래 App.xaml, Window1.xaml이라는 파일이 생성되는데 Window1.xaml파일에서 다음 작업을 진행 하도록 하겠습니다.
Window1.xaml파일을 보면 XAML파일 편집기(이하 디자인뷰어)와 XAML 코드 창(이하 XAML뷰어)으로 나뉘어 보이는데 우선 XAML뷰어 쪽 XAML코드를 보도록 하겠습니다.
★ XAML(Extensible Application Markup Language)에 대해서는 따로 언급하지 않도록 하겠습니다.
제일 윗줄에 최상위 요소인 Window가 정의 되어있고 그 안에 (xmlns : XML 네임스페이스 문법을 이용하여 "x" 접두어를 덧붙인) XAML의 XML네임스페이스로부터 Class특성에 지정된 이름의 클래스의 일부를 사용하기 위해 사용되었고, 그 아래 두 개의 XML 네임스페이스 선언은 XAML이 동작하기 위해 필요한 요소들을 사용하기 위해서인데 두 번째 줄의 네임스페이스는 WPF를 사용하기 위한 것이며 세 번째 줄은 XAML자체를 선언해 놓은 것입니다.
그리고 Gird라는 것이 있는데 후에 Grid에 대해서 자세히 배우도록 하고 우선 지금은 Grid안에 작업을 한다는 것 정도로만 생각하시면 되겠습니다.그러면 화면에 "HelloWorld"라는 글씨를 출력하기 위해 다음 코드를 작성하시기 바랍니다.
<Label Name="label1" FontSize="30" >HelloWorld</Label>
이제 출력을 위한 모든 작업은 끝났습니다.
실행 결과를 보기 위해 <Ctrl> + F5를 눌러 실행결과를 보세요……
WPF 창에 우리가 작성한 "HelloWorld"가 멋지게 출력 된것을 볼 수 있습니다... ㅋㅋ
- WPF 디자이너를 이용한 XAML 편집하기
WPF에서는 Windows Forms디자이너와 유사하게 동작하는 XAML파일 편집기(디자인뷰어)를 가지고 있다. 솔루션탐색기에서 XAML파일을 오른쪽 마우스 클릭해 [연결프로그램]메뉴를 클릭하면 아래그림과 같이 Windows Presentation Foundation Designer가 기본값으로 설정 되어있는 것일 볼 수 있습니다.
이 편집기는 기존에 Windows Forms 디자이너 사용 방법과 같게 도구상자에서 컨트롤들을 마우스 드래그 앤 드롭하여 Window 위에 올려 쉽게 배치하여 자동으로 XAML파일을 구성 할 수 있으며, 속성 창에서 컨트롤들의 속성을 쉽게 설정 변경할 수 있습니다. 그리고 디자인뷰어에서 수정된 내용을 XAML뷰어에서 수정된 XAML을 바로 볼 수 있음은 물론 반대로, XAML뷰어에서 수정한 XAML코드를 바로 디자인뷰어에 반영되어 확인이 가능합니다.
이번 강좌에서는 "WPF 시작하기"라는 내용으로 WPF란 무엇이며 WPF프로젝트생성과 디자인뷰어와 XAML뷰어에 대해 간단히 알아보았습니다.
다음 강좌는 "WPF 시작하기" 두 번째 시간으로 XAML Browser Applications(XBAPs), 레이아웃, 컨트롤, 데이터바인딩에 대해 알아보도록 하겠습니다.
출처: <http://dotnetmvp.tistory.com/22>