Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

닷넷! Ver 2.0~

.NET은 순식간(?)에 버전업 되었습니다. 이는 신기술의 탄생도 동반했습니다 .NET 2.0 , .NET 3.0, .NET 3.5 등 새로운 기능 및 확장된 기능에 대해 다룹니다

[WPF] WPF 란?

작성자 : 박종명
최초 작성일 : 2008-05-13 (화요일)
최종 수정일 : 2008-05-13 (화요일)
조회 수 : 6760

* WPF (WINDOW Presentation Foundation)

WinFX 의 핵심 구성요소 중 Presentation 측면 즉 어플리케이션의 표현되는 부분(User Interface, 그래픽,etc)
대한 새로운 대안인 WPF 는 최초 코드네임 Avalon (아발론) 으로 출발하였다.WinFX 가 닷넷 프레임워크 3.0
으로
완전한 하나의 개발 플랫폼으로 명명되면서 Window Presentation Foundation 으로 그 이름이 명명되었다.

 

WPF W Windows 의 약자인것과는 달리 윈도우 응용프로그램뿐만 아니라 웹응용프로그램의 Presentation 역시

WPF 의 적용범위로 포함하였다. 즉 더 이상 Presentation 은 어플리케이션과 웹의 경계를 뛰어넘겠다는 마이크로
소프트의
야심찬 전략이 있는 듯 하다. 응용프로그램의 여러 구성요소 중에서 사용자 UI가 차지하는 비중은 대단히 크다고 할 수 있다. 사용자 UI 를 넘어 사용자 UX(User Experience) 응용프로그램의 외관뿐만 아니라 사용자의 어플리케이션 사용 경험을 뜻하는데 외관이 이쁘고 다이나믹하고 화려한 것에 더불어 사용자의 편의성과 직관성 등도 고려되어야 좋은 어플리케이션이라고 볼 수 있다.

, 특정 작업이나 처리를 원활히 수행하는 어플리케이션의 기능적 요구사항 뿐만 아니라 사용자가 보기 좋고 사용하기 편한 비기능적 나아가 사용자의 감성적인 요구사항까지도 만족시켜야 한다는 것이다.(실제로 마이크로소프트와 같은 회사에서는 상용 어플리케이션의 버턴 같은 컨트롤의 위치가 어디에 존재 해야 편리하며 직관적인지를 연구하는데 많은 리소스를 투입한다고 한다. 심지어 인간 심리학에 근거하여 UI 의 전체적인 구성을 결정하기도 한다고 한다)

 

소프트웨어의 기술이 발전하고 산업이 복잡다변화 되어 가고 사용자의 서비스이용 경험과 비교체험이 증가하는 것과 더불어 서비스 어플리케이션의 UX 는 끊임없이 향상되고 있는 상태이다. 다시 말해서 UX UI 만을 의미하지는 않는다. 앞에서 살펴본 바와 같이 화려하고 동적이고 직관적인 UI 는 물론이거니와 Rich Client, 그러나 접근(사용)은 편하게 등 어플리케이션의 사용자 경험 전반에 걸친 요구를 만족시키기 위한 모든 개념을 포함한다.

 

최초 정보전달만을 목적으로 하던 웹은 단순 HTML에 의존하여 컨텐츠를 표현하는데 만족했지만 사용층의 다양성

과 적극적인 경험 및 참여, 이와 더불어 발전한 기술은 더 이상 웹을 정적인 페이지로만 표현하도록 내버려 두지

않았다. 자연스레 사용자는 어플리케이션과 상호작용하기를 원했으며 보다 동적이고 화려한 컨텐츠 표현을 원하게

되었다. 이에 발맞추어 DHTML(Dynamic Html) 과 같은 기술이 탄생했으며 스펙타클한 표현을 가능케 하는 플래쉬와

같은 그래픽 기술이 발전해 왔다. 웹뿐만 아니라 윈도우 기반의 응용프로그램 역시 Win32,VB,DirectX,Windows For

m 등의 계보를 이어오며 기술 발전을 거듭해 왔다.

 

뿐만 아니라 웹환경이 가지고 있는 배포의 용이성과 편리한 접근등의 장점과 윈도우어플리케이션이 가진 화려하

고 사용자와의 상호작용이 원활한 Rich Client 의 장점을 결합한 새로운 어플리케이션 모델이 등장했다. 이를 통

칭하여 X-Internet 이라 하는데 닷넷에서는 이를 위해 SmartClient 를 내놓았으며 비동기 웹 응용프로그램을 가

능케 하는 Ajax 등의 기술이 등장하였다.Ajax 는 완전히 새로운 기술의 등장이 아닌 기존 기술요소를 결합하여

웹어플리케이션의 개념을 재탄생 시켰다고 볼 수 있다. Ajax XML 을 기반으로 한다. 프로그래밍 세계에서

만국공통어와 같은 것이 바로 XML 이다.

 

마이크로소프트의 WPF 의 정의는 차세대 UX를 위한 개발플랫폼이라 한다.

'사용자 Experience 와 그래픽의 질적 향상 , 당신이 꿈꾸던 환상적인 어플리케이션의 해답은 바로 Windows Presentation Foundation’

이라고 강력한 메시지를 보낸다.

 

그래픽 및 표현기술의 발전으로 인해 예전에 비해 훨씬 화려하고 미려하고 동적인 UI 가 가능해 졌지만 그래도

여전히 극대로(?) 화려하고 다이나믹한 Presentation 을 구현하기에는 여전히 2% 부족한 면이 있다. 또한 어플리

케이션의 UX측면에서의 사용자 만족도 역시 아직 만족시킬 여지가 많이 남아 있는 것 같다. WPF는 다음과 같이 외친다.더 이상 평면의 UI 는 사양하라. 2D,3D 어플리케이션을 가능케 하겠다!’

 

WPF 의 내부 아키텍처를 살펴보자



WPF 는 자체적인 Control 들을 가지고 있으며 컨트롤의 스타일링,레이아웃,데이터 바인딩등의 기술을 포함하며

2차원 3차원 그래픽 및 멀티미디어,에니메이션 기법을 적용할 수 있는 하부구조를 가지고 있다. 또한 일반적인

문서 폼이 아닌 실세계의 책 처럼 표현하는 활자체 글씨,페이징,검색,문서확대 등을 지원하는 Documents ,

기존 윈폼과 WPF 의 상호 연동을 위한 Interop 을 포함하고 있다. WPF 의 아키텍처를 대충만 훓어 봐도 개발자로써는 정복하기 까다로울수 있음을 암시한다.

 

WPF 는 이와 더불어 갈수록 대두되고 있는 협업,통일성,표준기술사용 등 개발 및 유지보수, 확장 등 개발적인 요

소들 까지 고려하여 설계 되었다.WPF는 디자인을 위한 XML 기반의 마크업 언어를 탄생시켰다.(XAML) , WPF

응용프로그램의 UI 를 구성하기 위해 더 이상 닷넷을 알 필요가 없도록 설계하였다. 한 예로, 웹사이트의 UI

표현하기 위해서는 기본적으로 HTML이 사용된다.HTML 코더나 디자이너는 서버측 스크립트를 알지 못해도 HTML

드만 알면 디자인을 할 수 있다.

 

이와 유사한 개념으로 WPF 에서는 디자인을 위한 마크업 언어를 지원하는데 이것이 XAML (자멜) 이라고 한다.

프로그램 세계에서 만국 공통어인 XML 기반의 XAML 를 사용하여 UI 를 구성할 수 있다. , 이것은 HTML 의 내부

해석과정이나 파싱로직을 알지 못해도 디자이너가 HTML 코드를 짜면 의도한 디자인이 나오는 것처럼 WPF 역시 CL

R 의 내부 해석과정이나 개념 또는 C# 문법적인 개념이 없어도 XAML 로 개발자 혹은 디자이너가 쉽게(?) UI

구성할수 있도록 해준다. (XAML 코드는 CLR이 내부적으로 객체로 생성한다) 또한 디자이너 입장에서 보면 XAM

L 코드를 세세히 알지 못해도 그래픽 툴을 이용하여 자동으로 XAML 코드를 생성할 수 있기 때문에 XAML 문법에

대한 부담감을 느낄 필요도 없다.

이전의 웹 개발에서의 웹 디자이너가 드림위버와 포토샵만으로도 원활히 디자인을 할 수 있는 것과 같은 원리이

. 하지만 여전히 HTML 코드를 알고 툴을 사용하는 것이 여러모로 좋긴 하다.

 

마찬가지로 XMAL 문법도 디자이너 입장에서 어느 정도는 해석할 수 있어야 원활한 처리가 가능할 때도 있을 것이다. 프로그래머 입장에서 보면 디자이너 보다 XAML 코드를 더 많이 알고 있어야 한다.

아무리 UI 구성은 XAML로 하고 비즈니스 로직은 C#으로 한다고 해도 XAML 문법을 제대로 알지 못하고서는

제대로 된 WPF 프로그래밍을 하기에 많은 어려움이 있으리라 예상된다.

 

WPF UI 다지인을 위해 마이크로소프트는 MS Expression 이라는 도구를 내놓았다. 다음 그림은 WPF 어플리케이션 개발 과정에서 다지이너 ? 웹 디자이너 ? 개발자 사이의 개발도구 구성을 나타낸다.

 

마이크로 소프트가 예기하는 각 분야별 개발도구는 다음과 같다.

1) Expression Interactive Designer (“Sparkle”)

: 전문 디자이너 용 

2) Visual Studio WPF Designer (“Cider”)

: 전문 개발자 용



각 분야별 적절한 도구의 사용으로 개발 생산성을 극대화 하고 서로의 범위를 침범하지 않는 개발환경을 상징하는 개발자와 디자이너의 효율적인 협업을 가능하다.(여러모로 의문이지만.. --;)

아래 그림 처럼...



참고로 디자이너와 프로그래머의 서로의 작업영역을 침해 당하지 않는 WPF 개발환경에는 닷넷 2.0 partial 클래스 개념이 그대로 사용된다. UI 를 위한 XAML 코드는 파일.xaml 에 위치하고 로직 처리를 위한 C#코드는 파일.xaml.cs 에 위치하게 된다.

 

마지막으로 현 시점에서의 WPF는 심각한 실행상 단점을 가질 수 밖에 없는데 바로 고사양의 클라이언트 환경을 요구한다는 것이다. 또한 완벽한 동작을 위해 Vista 운영체제를 요구하기도 한다. WPF 기술을 사용한 화려하고 다이나믹한 그래픽환경은 고사양의 pc가 아니면 원활히 돌아기지 않을 수 있다. 심지어 Vista 의 내장된 IE7.0 에서 정상작동하는 WPF 웹 페이지가 XP IE7.0에서는 돌아기지 않을 수도 있다.

(XP 에 설치한 IE7.0 vista ie7은 완전히 동일하지 않다)



So Gooooooooooooooooooooood, But Believe Or Not --;

∵Commented by 행인 at 2011-02-26 오후 9:13:19  
잘봤습니다!
이름
비밀번호
홈페이지
BD <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요