CAG for WPF/CAG - 개요

P&P로부터의 복합 UI 의 성과물을 선택할 때의 가이드 라인

손병환 2009. 9. 25. 15:40

Composite Application Guidance for WPF - 2008년6월
Patterns & Practices 로부터의 복합 UI 의 성과물을 선택할 때의 가이드 라인

patterns & practices 팀에서는, 복합 어프리케이션(application)의 build에 관한 성과물을 몇인가 제공하고 있습니다. 이하의 일람은, 각 성과물을 사용할 때에 고려해야 할 시나리오를 내보이고 있습니다.

  • Windows 폼 복합 어프리케이션(application)을 개발 할 필요가 있을 경우는, 이하의 점에서 스마트 클라이언트 소프트웨어 팩토리(SCSF: Smart Client Software Factory)의 사용을 검토합니다.
    • 가장 완성도가 높은 플랫폼을 활용하고 있습니다.
    • 개발과 디버그의 조작성에 뛰어나고 있습니다 (툴, 컨트롤의 지원, 드랙 앤 드롭, 신속한 어프리케이션(application) 개발 경험등).
    • 코드 생성 기능이 있습니다 (이 기능에는 가이던스(guidance) 패키지의 지원과 레시피가 부속되고 있습니다).
    • 비연결형으로 접속하는 클라이언트에게 대한 기능도 있습니다.
  • Windows Presentation Foundation (WPF)컨텐츠를 호스트하는 Windows 폼 복합 어프리케이션(application)을 개발 할 필요가 있을 경우는, 이하의 점에서 스마트 클라이언트 소프트웨어 팩토리(SCSF: Smart Client Software Factory)과 WPF 상호운용 기능의 사용을 검토합니다.
    • 기존의 SCSF 인프라스트럭처와 병용할 수 있습니다.
    • 가이던스(guidance) 오토메이션이 포함되어 있습니다 (가이던스(guidance) 패키지와 레시피를 지원한 폼).
  • 기존의 Composite UI Application Block (CAB)어프리케이션(application)을 WPF 에 이행할 경우는, 이하의 점에서 SCSFContrib CodePlex 프로젝트의 WPFCAB 의 사용을 검토합니다.
    • CAB 을 사용하는 순수한 WPF 베이스의 어프리케이션(application)을 build할 수 있습니다. 
    • view를 제외하고, 기존의 SCSF 인프라스트럭처와 병용할 수 있습니다.
    • patterns & practices 팀에서는 유지 관리(maintenance)나 관리를 행하고 있지 않고, 커뮤니티에서의 지원을 받습니다.
    • CAB 로부터 WPF 에 단순에 이식되어, WPF 을 이용하기 위한 최적화는 행하여 지지 않습니다.
    • 가이던스(guidance) 오토메이션은 포함되어 있지 않습니다.
  • WPF 을 포함하는 복합 어프리케이션(application)을 작성할 경우,또는 기존의 WPF 어프리케이션(application)을 복합 어프리케이션(application)에 업그레이드할 경우는, 이하의 점에서 이 Composite Application Guidance for WPF 을 사용합니다.
    • WPF 복합 어프리케이션(application)의 개발을 목표라고 하고 있습니다.
    • WPF 의 기능을 최적에 사용하게 디자인되어 있습니다.
    • 경량의 라이브러리가 있어, 어프리케이션(application)에 포함시키는 라이브러리 기능을 선택할 수 있습니다.
    • 기존의 어프리케이션(application)이나 라이브러리와 통합됩니다.
    • 가이던스(guidance) 오토메이션은 포함되어 있지 않습니다.

Composite UI Application Block (CAB)과의 비교

Composite Application Guidance for WPF 은, patterns & practices 팀의 Composite UI Application Block (CAB)의 단순한 새 버젼이 아닙니다. 라이브러리와 가이던스(guidance)의 세트는 새롭게 기초로부터 작성되고 있어, WPF 복합 어프리케이션(application)의 신규개발을 지원하게 디자인되어 있습니다. CAB 의 새 버젼이 아닙니다만, 모듈 방식, 사용자 인터페이스(UI)의 구성, 서비스, 의존 관계의 삽입, 이벤트 브로커등, CAB 의 중핵이 되는 개념을 받아들이고 있습니다. 복합 어프리케이션(application)을 빌드할 경우에는 이러한 개념이 불가결이 되기 위해서, Composite Application Guidance 에서도 이러한 개념을 받아들이고 있습니다만, 구현은 이하와 같은 이유로 CAB 과는 다른 것이 되고 있습니다.

  • Composite Application Guidance 은, 유저에게서의 피드백을 짜 넣고 있습니다 . patterns & practices 팀은 CAB 의 구현에 관해서, 긍정적인 것도 부정적인 것도 포함시키고, 오랜 세월에 걸쳐 많은 피드백을 받아 왔습니다. 부정적인 피드백에는, 지나치게 무거운, 지나치게 복잡한, 결부가 지나치게 긴밀한, 착수하기 위해서는 지나치게 어렵다고 한 것이 있었습니다. 또, 유저는 라이브러리를 서서히 도입해 갈 수 있는 어프로치나, 기존의 라이브러리와 연계할 수 있는 어프로치의 필요성도 쓰고 있었습니다. patterns & practices 팀은, 이러한 걱정 사항에 대처하고, 새로운 아이디어에 열을 올리는 최선의 방법은 CAB 을 버려 떠나는 것이라고 결단했습니다.
  • CAB 은 WPF 을 지원할 목적에서 빌드된 것이 아니었습니다 . CAB 로부터 WPF 에 이식할 수는 있습니다만, CAB 은 WPF 의 중핵기능을 이용하게 빌드된 것이 아니었습니다. CAB 이 도입하고 있었던 메커니즘은, 많은 경우, 현재 WPF 의 네이티브 메커니즘이 되고 있습니다. 예를 들면, WPF 에서는 UI 의 구성에 도움이 되는 첨부 프로퍼티를 도입하고 있습니다만, 이것은 CAB 에서 사용되어 있었던 방법에 비교해서 경량이 되고 있습니다. 또, WPF 의 파라다임(paradigm)은 Windows 폼과는 본질적으로 다릅니다. UI 을 구성하는 방법은, 종래의 컨트롤을 사용하는 방법에 비교해서 훨씬 유연합니다. WPF 에서는, UI 을 표시하는 방법을 제어하기 위해서, 템플릿을 사용하는 사고방식도 도입하고 있습니다.
  • CAB 은 Windows 폼의 개발 경험에 의존하고 있습니다 . CAB 의 개발 시나리오는, Microsoft Visual Studio 이 Windows 폼에 적합하게 제공하는 툴이나 생산성을 향상하는 조작성에 의존하고 있습니다. 현재의 WPF 개발 경험에는 크게 다른 파라다임(paradigm)이 있습니다. Visual Studio 2008에서는, WPF 어프리케이션(application) 개발이 상당한 부분으로, 여전히 XML 과의 연계를 수작업으로 행할 필요가 있습니다. Visual Studio.NET의 디자이너에서는, Windows 폼의 개발자가 익숙하는 기능의 조금의 subset밖에 제공하지 않았습니다. expression Blend 과 같은 툴이 이러한 기능의 일부를 제공합니다만, 개발자를 대상으로 삼은 것이 아니고, 개발 환경에도 통합되어 있지 않습니다. 이러한 조작성은, 금후의 버젼의 플랫폼에서 개선될 것입니다. WPF 개발의 현상에 근거하면, Windows 폼으로부터 WPF 에의 이행은 현시점에서는 상당한 작업을 필요로 하고, 개발자에게는 많은 학습이 필요하게 됩니다. 이러한 이유로, 이 가이던스(guidance)는 WPF 에서의 복합 어프리케이션(application)의 신규개발에 최적이어지도록 하고 있습니다.

'CAG for WPF > CAG - 개요' 카테고리의 다른 글

Composite Application Guidance for WPF  (0) 2009.09.25
개요  (0) 2009.09.25