Microsoft Visual Studio 와 Blend 의 WPF

Programs/Blend 2015. 3. 14. 22:48 by 일레븐 테크놀로지


반응형

.NET 기반의 WPF(Windows Presentation Foundation)는 MVVM(Model-View-ViewModel) 패터을 사용함으로써 디자이너와 개발자의 사이에서 협업을 위한 최고의 선택성을 제공합니다. 기존의 Visual Studio 2010 까지는 Expression Blend라는 Tool로서 따로 판매하였으나, Visual Studio 2012 이후 부터는 Blend for Visual Studio 2012 로 제품명이 바뀌었습니다. Visual Studio 2012 부터는 제품 업데이트를 통해 Blend를 무상으로 사용할 수 있습니다.

 

단, Blend의 고급 기능을 사용하기 위해서는 Visual Studio의 구입 버전이 높아야 합니다. (ex SketchFlow)

 

 

 

1. 기존의 개발 방법

 

 

기존의 개발방법을 보게되면 기획자가 열심히 기획을 통해 전체 디자인 컨셉 방향과 개발 방향, 개발 내용 등을 확정한 후 디자이너와의 협업, 개발자와의 협업을 통해 개발을 진행하게 되는데, 이 때 디자이너, 개발자, 기획자 사이에는 서로 갖는 컨셉과 구현 방법에 대하여 어느정도의 갭(Gap)이 발생합니다. 수많은 시행착오와 미팅을 거쳐 점점 프로젝트 구성원 사이에 개발 결과물에 대한 이해가 확립이 되었을 때 프로젝트는 성공적으로 끝낼 확률이 높아지죠.

이러한 상황에서 디자이너와 개발자는 디자인 된 이미지를 개발자에게 전달하고, 개발자는 디자인을 적용하고 다시 기획자 및 디자이너 기획자와 함께 검토를 합니다. 문제가 생기거나 의도한 대로 구성이 되지 않았거나 등의 상황이 발생된다면 기획자는 디자이너에게 수정을 요구하고, 개발자는 해당 디자인이 적용될 수 없는 기술적 문제에 대해 토론하는 등의 과정을 거처 프로젝트를 진행하게 됩니다. 대부분의 경우에 이러한 상황에서 생각보다 너무 많은 시간과 노력이 들어가며 전체 프로젝트의 비용이 증가하게 되는 주범이 됩니다.

 

 

 

2. WPF에서의 개발 방법 

 

WPF는 위에서 나타나는 일련의 과정에서 디자이너와 개발자의 영역을 명확하게 구분함으로써(즉, 디자이너가 사용하는 영역과 개발자가 사용하는 영역) 디자인 측면에서는 기획자와 디자이너가 협업을 통해 개발자를 통하지 않고도 디자인을 적용하고 바로 확인 할 수 있도록하였습니다. 개발자에 종속되지 않으면서도 소프트웨어에 직접 자인을 쉽게 적용하기 때문에 생산성이 높아집니다.

 

또한 개발자 역시 디자이너와 기획자에 종속되지 않도록 디자인 적용을 위한 프로그래밍과 검토 과정에서 한발짝 물러남으로써 본연의 데이터 구성과 기능 구현에 집중할 수 있게 되며 이러한 개발 방법은 전체적인 생산성이 높아집니다.

(물론 실제 개발에 착수해보면 어느정도의 협업과 함께 디자이너가 구현하기 불가능한 방법이기 때문에 개발자를 통해야 한다거나, 개발자가 보다 더 편하게 개발하기 위하여 디자이너에게 수정을 요구하는 등의 상황은 언제나 발생합니다. 다만 전반적인 비용이 낮아집니다.)

 

 

 

3. Visual Studio와 Blend for Visual Studio 

 

WPF는 기본적으로 .NET 기반 위에서 XAML(한국어로는 '재믈' 정도로 읽음) 과 C# 으로 이루어져 있습니다. XAML은 마크업 언어로 UI를 구성하고 데이터의 표현 방법을 다루는 등의 역할을 수행합니다. 이를 프로그램 내에서는 프론트(Front)단이라고 부르기도 하죠.

 

 

 


 

 

 

디자이너는 이 XAML로 이루어진 마크업 언어를 Blend 툴(쉽게 말해서 프로그램)을 이용하여 마치 포토샵 또는 일러스터를 사용하는 것 처럼 디자인 할 수 있습니다. 예를 들면, 포토샵과 일러스터 및 3D MAX의 파일을 읽어와서 작업이 가능합니다. 이런 것들의 다양한 활용 방법은 천천히 이야기 하겠습니다.

 

 

 

 

 

개발자는 Visual Studio 툴을 사용하여 C# 언어로 프로그램을 구현합니다. 백그라운드 단에서 다양한 데이터 처리와 작업을 통해 프론트단의 XAML의 UI에 데이터를 표현하게 됩니다. 물론 소프트웨어의 성격에 따라 네트워크, 데이터베이스, 내부 프로세싱 등의 수많은 작업이 이루어집니다.

 

Visual Studio와 Blend는 개발중인 프로젝트를 동일한 수준에서 보고 컨트롤 할 수 있습니다. 단, Blend는 디자이너에게 최적화 된 UI와 작업환경을 제공하고, Visual Studio는 개발자에게 최적화 된 UI와 작업환경을 제공합니다. 이를 통해 개발자와 디자이너는 같은 프로젝트에서 같은 기능을 구현 할 때, 각자의 일을 진행하면서 서로에게 종속성 없이 작업을

진행 할 수도 있으며 UI, 데이터, 프로세스를 엮는 과정도 진행할 수 있습니다.





 

  

4. 그럼 WPF의 매력속으로 떠나 볼까요?

 

이렇게나 강력하다니!! 그렇다면 WPF가 무적일까요?

 

소프트웨어는 항상 '누가 언제 어디에서 무슨기능을 어떻게 사용하려고 하는가?'에 따라 적용될 다양한 방법들이 존재합니다. 필자의 경우 WPF는 단일 Client에서의 동작이나 CS(Client - Server) 환경에서 매우 강력하다고 생각됩니다. 개발 과정에서 MSDN을 경험해 본 개발자는 '역시 MS!!'라는 소리가 절로 나올 정도로 굉장히 막강한 수준에서의 지원과 레퍼런스가 있으며, MS 파트너를 인정 받은 공식 서드파티군의 여러가지 컴포넌트를 이용하면 개발 속도가 매우 빨라집니다.

 

 

다만, 일반 기업체의 경우 대부분의 툴이 유료라는 점과 WPF의 경우 기존의 프로그램 개발 방법에 대비하여 컴퓨터의 자원을 상당히 많이 차지하는 단점이 존재합니다(굳이 .NET 때문이 아니더라도 UI에서 소모되는 컴퓨터 자원도 꽤나 큽니다). 또한 오히려 너무나도 체계적으로 잘 구성된 여러가지 추상화 된 (UI 조차도) 기능들을 학습하기 위해서 꽤나 노력을 기울여야 합니다(이는 초기 진입장벽으로 느껴질 정도로 이해를 위한 공부가 필수적이고 힘이 듭니다. 다만, 익숙해진다면 개발의 생산성이 매우 높아집니다).

 

외국의 경우 C#의 점유율이 Java와 거의 비슷한 수준을 유지하고 있습니다만, 국내에서는 Java에 매우 편향되어 프로젝트가 진행되고 있습니다. 그러나 WPF는 Java가 할 수 없는(할 수 있다고 하더라도 매우 큰 비용이 들어가는) 아주 매력적인 UI를 가지고 있으며 생산성을 높일 수 있는 방법이 무궁무진 합니다.

 

Windows 8.1을 넘어서 Windows 10으로 나아가게 될 이 시점에 올 수 있는 기회를 잡으시려면 지금부터 슬슬 이 매력적인 WPF에 한 발을 내딛어 보는 것은 어떨까요?

 




 



반응형
Nav