SimpleIsBest.NET

유경상의 닷넷 블로그

WinFX와 닷넷 프레임워크 3.0

by 블로그쥔장 | 작성일자: 2006-07-24 오전 9:22:00
이 글은 오래된 전에 작성된 글입니다. 따라서 최신 버전의 기술에 알맞지 않거나 오류를 유발할 수 있습니다. 저자는 이 글에 대한 질문을 받지 않을 것입니다. 하지만 이 글이 리뉴얼 되면 이 글에 대한 질문을 하거나 토론을 할 수도 있습니다.

최근 수행하는 프로젝트로 인해 매우 바쁜 나머지 이제서야 경우 글을 쓰게 되었습니다. TechED 2006이 끝나자 마자 바로 이 글을 쓰려고 했는데... 개발자 교육이다 프로젝트다 뭐다 해서 이제 겨우... -_-;

필자주) 이 글은 월간 마이크로소프트웨어 2006년 8월호에도 동등한 내용이 실렸습니다.


WinFX and .NET Framework 3.0

우리는 변화의 시대에 살고 있다. 정치 사회적인 변화 같은 졸라 짜증나고 머리 아픈 이야기를 꺼내지 않더라도 우리 주위의 일상적인 생활 역시 매일매일 변해가는 것을 느낄 수 있을 것이다. 몇 년 전만해도 핸드폰은 구경하기도 힘들었으며 부의 상징인 고가 제품이었지만 지금은 길거리에서 몇 만원에 핸드폰을 살 수 있을 정도로 흔한 생활 필수품이 되어 버렸다.

우리의 춥고 배고프고 눈꼽 낀 불쌍한 개발자는 더욱 더 빠른 기술 변화 속에 내동댕이쳐 저 있다. Turbo C 정도만 다룰 줄 알면 취업에는 큰 지장이 없었던 몇 년 전의 상황과는 너무나도 다르게, 작금의 개발자는 기본적으로 PHP, JSP, ASP.NET와 같은 기본적인 웹 개발 지식은 당연 빤쑤요 AJAX니 ATLAS 니 하는 최신의 웹 관련 기술 역시 알아야만 어디 이력서도 넣어볼 수 있을 정도로 개발자들에게 요구되는 프로그래밍 지식은 늘어나 버린 상황이다.

특히 MS 기술을 다루는 개발자는 졸라 빠르게 변하는 MS 기술 속에 허우적대기 마련이다. 최근 1-2은 거의 가관일 정도로 혼란스러운 시간이 아닐까 한다. (뭐 필자만 그랬나? 아님말고... -_-;) WinFX라는 닷넷의 차기 기술에 대한 이야기가 2년이 넘도록 나오던 시점에서 뜬금없이 닷넷 프레임워크 3.0 버전이 등장했기 때문이다. 아니 C8, 뭐 장난하는 것도 아니고 '이건 아니잖아'를 연신 외치고 싶은 시츄에이션이 아닌가? 닷넷 프레임워크 2.0이 정식 발표된 지 채 6개월도 지나지 않아서 다음 버전인 3.0 이야기가 나온 것은 무슨 연유에서 일까? 그리고 WinFX와는 도대체 어떤 관계일까? 요번 글에서 닷넷 프레임워크의 차기 버전인 3.0은 무엇을 말하며 WinFX와는 어떤 관계가 있는지 살펴보고, 이들을 위한 개발환경은 어떻게 구축할 수 있는지 살펴보기로 하자. 물론 이 글은 정식 버전에 대한 내용이 아니므로 이 글의 내용이 최종 버전에서는 달라질 수 있음을 명심하자(아싸 면피 !!!!).

About WinFX

닷넷 프레임워크 3.0에 대해서 이야기를 하자면 WinFX 이야기를 하지 않을 수 없다. 그래서 먼저 WinFX에 대해 간략히 살펴보도록 하겠다. 닷넷 프레임워크 3.0에 대해 궁금하더라도 잠시만 참기 바란다. 나중에는 졸라 허탈한 결론이 쏟아질 테니 말이다. 흐흐흐...

WinFX는 2003년 마이크로소프트의 PDC(Professional Developers Conference)에서 처음 공식 언급된 개발 API 이다. 그 후 2004년 롱혼(Longhorn)이라는 코드명의 운영체제인 Windows Vista가 베타로서 일부 사용자에게 배포되면서 조금씩 그 실체를 들어 냈었다. 지금은 베타2 버전을 누구나 다운로드 받아 사용할 수 있는 상황이다.

WinFX가 처음 언급되었을 때는 Windows Vista에서 Win32 API를 대체할 새로운 개발 API쯤으로 이야기 되었었다. 필자 역시 WinFX 자료를 처음 접했을 때 그런 인상을 강하게 받았으니 말이다. 정확하게 말하자면 그렇지가 않다. WinFX는 닷넷 프레임워크 상에서 작동하는 새롭게 추가된 어플리케이션 개발 프레임워크이다. 여기서 WinFX가 닷넷 프레임워크 상에서 작동한다는 말은 중요한 의미를 갖는다. 닷넷 프레임워크 없이는 WinFX가 작동하지 않는다는 것을 의미하며 이는 곧 WinFX가 Win32를 대체하는 API가 아니라는 의미이다. 물론 Windows Vista 에는 다양한 새로운 운영체제 요소들과 새로운 UI 기능이 많이 추가되었으며 이들과 관련된 새로운 수백 개의 API 함수가 추가되었음은 물론이다. 하지만 이들 API가 WinFX를 지칭하는 것이 아니라는 것이다. 실제로 베타2 버전의 Windows Vista는 WinFX를 기본으로 설치하지 않고 추가 옵션으로 설치할 수 있도록 되어 있었다.

그렇다면 WinFX란 정말 무엇이란 말인가? WinFX는 닷넷 프레임워크 2.0 상에 새로이 추가된 메시징(messaging) 프레임워크(WCF; Windows Communication Foundation), UI 프레임워크(WPF; Windows Presentation Foundation), 워크플로우 프레임워크(WWF; Windows Workflow Foundation)를 모두 합쳐서 지칭하는 말이 되겠다. 그림 1은 닷넷 프레임워크 2.0과 WinFX의 관계를 보여주고 있다.


그림1. WinFX와 닷넷 프레임워크 2.0의 관계

그림 1을 찬찬히 뜯어보면 WinFX가 구동되는 운영체제에는 Windows 2003과 Windows XP도 포함되어 있음을 알 수 있을 것이다. 그렇다. WinFX는 반드시 Windows Vista를 요구하지 않는다. 따라서 닷넷 프레임워크 2.0을 설치한 Windows XP, Windows 2003, Windows Vista에서 WinFX는 설치되고 작동될 것이다. (WinFX라고 쫄지 말자. 알고 보면 조또 아니다) WinFX는 닷넷 프레임워크 1.1에서 2.0으로의 변화와 같은 프레임워크의 변화가 아니다는 점에도 주목할 필요가 있다. WinFX는 순전히 닷넷 프레임워크 2.0에 애드온 되는 추가 프레임워크이다. 이제 WinFX를 구성하는 WCF, WPF, WWF 가 무엇인지 간단히 뜯어 묵어 보자.

Windows Communication Foundation

WCF(Windows Communication Foundation)는 인디고(Indigo)라는 코드네임으로 알려졌던 차세대 메시징 프레임워크를 말한다. WCF에 대응되는 현존하는 닷넷 기술은 XML 웹 서비스와 닷넷 리모팅이다. WCF는 웹 서비스가 제공하는 상호 운영성과 닷넷 리모팅이 제공하는 성능적인 우위를 모두 제공할 뿐만 아니라 웹 서비스와 닷넷 리모팅이 갖는 단점을 모두 보완한다.

닷넷이 원격 서비스 혹은 원격 컴포넌트/클래스를 호출하는 방법은 웹 서비스와 닷넷 리모팅으로 이원화 되어 있었다. 웹 서비스는 SOA(Service Oriented Architecture)를 지향하고 보다 높은 상호 운영성(inter-operability)이 요구되는 환경에서 주로 사용되고 있다. 닷넷 리모팅은 클라이언트와 서버가 모두 닷넷 플랫폼인 경우 사용되는 원격 컴포넌트 호출 메커니즘으로 상호 운영성 보다 성능이 중요시되는 환경에서 사용되었다. 웹 서비스와 닷넷 리모팅 이들 두 메시징 기술의 단점은 비슷한 기능을 수행함에도 불구하고 그 내부 메커니즘과 프로그래밍 방식에 공통점이 별로 없다는 점이다. 일단 두 기술 중 하나를 선택한 경우, 다른 기술로 어플리케이션을 바꾸는 것은 디자인부터 다시 생각해야 할 정도의 커다란 프로그래밍 방식의 변화를 가져오곤 했다. 또한 이들 두 기술은 트랜잭션 지원이나 신뢰도 높은 세션 기능(Reliable Messaging) 등 기능면에서도 부족하다는 단점을 가지고 있다.

WinFX의 요소인 WCF는 이러한 단점들을 극복하고자 등장한 차세대 메시징 프레임워크이다. WCF는 W3C 표준을 준수하는 웹 서비스 스타일의 메시징과 더불어 닷넷 리모팅과 같은 성능적인 면을 모두 지원할뿐더러, WCF를 통해 분산 트랜잭션, 신뢰도 높은 세션 기반의 통신, MSMQ와 같은 레거시 시스템 통합을 모두 지원하고 있다. 무엇보다도, WCF는 단일한 프로그래밍 방식으로 웹 서비스 스타일 혹은 닷넷 리모팅 스타일의 통신을 지원한다는 점이다. 간단한 예제코드만 보여주면 금방 이해할 수 있을 것이라 생각되지만 필자의 귀차니즘으로 인해 이는 다음 기회로 미루기로 하겠다. 정말 궁금하다면 Learn The ABCs Of Programming Windows Communication Foundation 이란 글을 읽어 보기 바란다. (졸라 미안하지만 영문 문서이다. -_-;)


화면1. Visual Studio 2005 에서 지원하는 "WCF 서비스 참조" 기능

WCF는 원격 통신의 서버 역할을 수행하는 서비스(service)를 작성하고 이 서비스를 호출하는 클라이언트를 위한 다양한 클래스들을 System.ServiceModel 네임스페이스에서 제공한다. 이 네임스페이스 및 하위 네임스페이스에서 제공되는 다양한 특성(attribute)과 클래스를 통해 서비스를 작성하고 이 서비스를 ASP.NET 웹 어플리케이션 혹은 호스트 어플리케이션(닷넷 리모팅의 호스트처럼)을 작성하여 서비스할 수 있으며, 클라이언트는 Visual Studio 2005의 서비스 참조(화면 1 참고)를 통하거나 svcutil.exe(wsdl.exe 를 사용하는 것 처럼) 유틸리티를 이용하여 손쉽게 개발할 수 있다. 예제 코드는 앞서 말한 대로 다음 기회에... 텨텨텨...

Windows Presentation Foundation

WPF(Windows Presentation Foundation)은 아발론(Avalon)이라는 코드 네임으로 유명(?)했던 WinFX에서 지원하는 차세대 윈도우 UI 프레임워크이다. WPF가 제공하는 UI가 어떤 것인지 가장 빠르게 이해하는 방법은 가장 비슷한 UI를 제공하는 Flex 류의 기술을 생각하면 쉽다(WPF가 Flex류의 기술을 배꼈는지는 알 바가 아니다. 필자에게 중요한 것은 닷넷 환경에서 Flex류의 기술을 사용할 수 있다는 것이다. 요런 것을 가지고 시비 거는 독자는 잽싸게 이 사이트틀 떠나서 게시판 놀이나 하길 바란다. 즐~~~).

WPF의 가장 큰 특징은 UI를 정의할 때 윈폼(WinForm)처럼 코드를 사용하지 않고(Visual Studio의 디자이너는 코드를 생성하는 도구일 뿐 실제는 코드에 의해 UI가 정의된다), XAML(eXtensible Application Markup Language; Zammel 이라고 읽는다.) 이라는 XML 을 이용하여 UI를 정의한다는 점이다. XAML을 이해하는 가장 빠른 방법은 ASP.NET이 작동하는 방식을 비교해 보면 된다. ASP.NET의 WebForm 페이지(.aspx)는 런타임에 <asp:Button>, <asp:Label> 과 같은 ASP.NET 태그들이 웹 서버 컨트롤과 관련된 C# 혹은 VB.NET 코드로 변환되고 컴파일 되어 수행된다. 마찬가지로 XAML은 윈도우 UI를 정의하는 드로잉 객체를 정의하고 이것이 WPF 컨트롤과 코드로 변환되어 수행되도록 하는 UI 프레임워크인 것이다. 그렇다면 ASP.NET 과 비슷하게 코드 비하인드(Code-Behind)와 같은 것도 있을까? 물론 그렇다. 이벤트 핸들러와 같은 UI에 관련된 코드는 별도의 .cs 혹은 .vb 파일 내에 별도로 존재하며 XAML과 함께 작동한다.

리스트 1은 간단한 XAML의 예를 보여준다. 마치 HTML로 웹 페이지의 UI를 기술하듯이 XAML을 이용하여 윈도우 UI를 정의하고 있는 것을 볼 수 있을 것이다. 화면 2리스트 1이 수행될 때 나타나는 모습을 보여주고 있다.

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Title="Hello WPF" >

  <Grid>

    <Button Name="button1" Margin="124,73,20,80" Width="160" Height="30">

      This is Button !

    </Button>

    <Button Name="button2" Margin="131,141,236,0" Width="160" Height="80">

      <StackPanel>

        <Ellipse Fill="Green" Stroke="Yellow" Width="30" Height="20" />

        <TextBlock>This is Button !</TextBlock>

      </StackPanel>

    </Button>

  </Grid>

</Window>

리스트1. WPF의 예제 XAML


화면2. Windows XP 상에서 리스트1이 수행되는 모습

WPF는 단순히 윈도우의 UI 컨트롤을 XAML을 통해 기술하는 것만을 의미하지 않는다. WPF에서 제공하는 컨트롤은 윈폼에서 제공하는 컨트롤과 전혀 다르며, 화면에 렌더링(Rendering) 되는 것도 GDI를 사용하지 않는다. WPF의 컨트롤들은 새로이 제공되는 UI 렌더링 인프라(infra)인 MilCore라는 것을 사용한다. MilCore는 DirectX(!!!)를 직접 제어하여 UI 요소들을 렌더링 하는 역할을 담당하고 있다. 즉, WPF는 Win32의 윈도우와 윈도우 메시지(WM_SIZE, WM_PAINT 등)에 의존하지 않고 직접적으로 화면에 UI를 렌더링하고 있다. (MilCore란 이름가지고 필자에게 시비 걸지 말기 바란다. 왜 이따구 이름인지 필자도 모르고 이 이름이 뭘 의미하는지도 잘 모르니깐 말이다... ^^)

이런 이유로 WPF는 윈폼에서는 구현하기 힘들거나 불가능한 작업을 수행할 수 있다. 예를 들어 하나의 윈폼 라벨 컨트롤에서 여러 종류의 폰트를 사용하거나 굵은 서체, 이탤릭 서체를 사용할 수는 없다. 하지만 WPF는 다음과 같이 단일 TextBlock 컨트롤을 통해 이러한 작업을 간단히 수행할 수도 있다(화면 3 참조). 이외에도 WPF는 Flex 류의 기술처럼 애니메이션 등을 XAML 통해 표현할 수 있으며 2D 그래픽 요소들에 대한 회전, 확대, 축소 뿐만 아니라 3D 그래픽적인 요소들도 쉽게 표현할 수 있다.

    <TextBlock FontFamily="Calibri" FontSize="11pt">

      Hello, <Bold>world!</Bold>

      <Span FontFamily="Old English Text MT"

          FontSize="24pt">This</Span>

      is a

      <Italic>single</Italic>

      <Span FontFamily="Consolas" Foreground="Blue">

        &lt;<Span Foreground="DarkRed">TextBlock</Span>/&gt;

      </Span>

      <Hyperlink>element</Hyperlink>.

    </TextBlock>



화면3. 단일 TextBlock을 이용하여 다양한 서체를 사용한 모습

또한, WPF는 스마트 클라이언트와 비슷한 Web Browser Application(WBA) 기능을 지원한다. 플래시나 Flex와 같이 브라우저 상에서 보다 역동적이고 화려한 UI를 제공하고자 하는 경우, XAML 과 코드를 컴파일 하여 웹 서버를 통해 배포할 수 있다. WPF의 이러한 기능은 닷넷 스마트 클라이언트와는 달리 WinFX가 설치되어 있다면 브라우저에 관계없이 표시될 수 있을 것으로 예상된다.


화면4. WPF의 Web Browser Application 예제 화면 (MSDN에서 뽀리친 화면임다... -_-;)

그렇다면 WinFX를 사용하면 윈폼 대신 WPF로 어플리케이션을 작성해야 하는가? 그렇지 않다. 그림 1에서 보인바 대로 윈폼과 WPF는 병렬적으로 존재한다. 즉, 윈폼을 이용할 것인가 WPF를 이용할 것인가는 순전히 여러분의 손에 달려있다는 말이다. 어떤 윈도우 UI 프레임워크를 사용할 것인가의 결정은 해당 어플리케이션이 어떤 UI를 요구하는가에 따라서 결정하면 된다. 기업의 업무 화면을 다루는 UI라면 윈폼이 좀 더 적당할 것이지만, 3차원 그래픽을 포함한 애니메이션이나 보다 미려한 UI를 요구한다면 WPF가 대안이 될 것이다. WPF를 위해 윈폼을 포기하지는 말자. (포기할 윈폼이 없을 수도 있겠다... -_-; )

Windows Workflow Foundation

WCF나 WPF는 그에 대응되는 닷넷 기술이 있다. WCF는 XML 웹 서비스와 닷넷 리모팅에 대한 차세대 프레임워크로서, WPF는 윈폼에 대한 차세대 프레임워크로서 간주할 수 있다. 이에 반해 WWF(Windows Workflow Foundation)는 이전의 마이크로소프트 기술에서 찾을 수 없는 새로운 워크플로우 프레임워크이다.

WWF는 전자결재와 같이 워크플로우 방식을 따르는 다양한 어플리케이션을 위한 워크플로우 엔진을 제공한다. WWF는 워크플로우를 처리하기 위한 다양한 액티비티(Activity)를 기본 제공하고 이러한 액티비티에 의해 정의되는 워크플로우를 수행하는 워크플로우 엔진을 제공한다. 개발자는 특정 워크플로우를 기본 액티비티들과 커스텀 액티비티를 통해 정의할 수 있고 정의된 워크플로우는 워크 플로우 엔진에 의해 구동되게 된다. 이러한 워크플로우를 설계하기 위해 Visual Studio 2005에서 사용할 수 있는 워크플로우 디자이너와 윈폼에서 사용할 수 있는 워크플로우 디자이너 컨트롤이 제공될 것이라고 한다(화면 5 참조).

WWF는 그 자체로서는 아무짝에도 쓸모 없다. WWF만 있으면 전자결재 엔진을 작성하지 않아도 되는 것이 아니다. WWF를 기반으로 전자결재 워크플로우를 설계하고 개발해야만 WWF 기반의 전자결재 엔진이 생성되는 것이다. 이처럼 WWF는 다양한 워크플로우 기반 어플리케이션이 사용할 수 있는 워크플로우 프레임워크일 뿐이지 그 자체로서 특정 워크플로우를 처리할 수 있는 것이 아님을 명심해야 한다. WWF를 사용하는 최초의 상용 제품은 아마도 Microsoft Office Sharepoint Server 2007(MOSS 2007)이 될 것 같다. MOSS 2007은 기본적으로 간단한 결재(approval)를 처리하는 기능을 탑재하고 있는데 이 결재 기능이 WWF를 사용하여 작성된 것이다.

WWF가 상당히 생소하기 때문에 어렵게 생각할 개발자들이 많을 것이다. 필자 역시 그랬으니까... 하지만 전혀 어렵게 생각할 필요가 없다. 일단 WinFX 개발환경이 갖추어지면 WWF를 이용하여 워크플로우를 개발하는 것이 얼마나 쉬운 일이 되어 버리는가를 실감하게 될 것이다.

멀티 쓰레드 방식으로 작동하는 WWF의 워크플로우 엔진은 워크플로우의 상태를 저장하는 능력을 갖고 있으며, Visual Studio 2005가 제공하는 워크플로우 디자이너는 워크플로우를 설계하는 직관적인 UI를 제공한다. 필자의 개인적인 생각으로 WWF는 기업 고유의 워크플로우를 구축하고자 하는 많은 기업들을 위한 희소식이 될 듯 싶다. WinFX 에서 가장 돈 냄새가 많이 나는 것이 요놈의 WWF 이다. 얌얌...


화면5. WWF의 기본 Activity 들과   Visual Studio 2005의 워크플로우 디자이너

예제 코드는 역시 귀차니즘에 의해 여기서 제공하지 않는다. 궁금한 독자는 MSDN을 디비보기 바란다. 왜 앞서 처럼 예제 URL을 주지 않냐고? 필자도 먹고 사는데 바쁘다. 웬만하면 스스로 찾아보는 수고도 해보기 바란다. 손 안대고 코 풀려는 심보가 심하면 궁댕이에서 뿔이 날 수도 있다. ^^

.NET Framework 3.0 ???

지금까지 WinFX에 대해서 간단히 살펴보았다. WinFX만으로도 벅찬 작금의 상황에서 쌩뚱맞게 닷넷 프레임워크 3.0은 웬 말인가?

결론부터 말하자면 지난 2006년 6월 마이크로소프트는 WinFX의 이름을 닷넷 프레임워크 3.0으로 지칭하기로 했다. 좀 허탈하지만 닷넷 프레임워크 3.0은 정확하게 WinFX가 이름만 바꾼 것이 되겠다. 물론 WinFX에 포함되기로 했었지만 포함되지 않았었던 WCS(Windows CardSpace; InfoCard라 불렸었다)가 명시적으로 닷넷 프레임워크 3.0에 포함된 것 외에는 WCF, WPF, WWF는 WinFX의 그것과 전혀 다르지 않다.

필자주) WCS에 대해서는 얼렁 뚱땅 넘어가는 이유는 필자가 아직 WCS에 대해 어디에 내놓고 이야기할 정도로 지식이 풍부하지 않기 때문이다. 대충 넘어가 주기 바란다... 텨텨텨

그렇다면 닷넷 프레임워크 3.0은 닷넷 프레임워크 2.0에서 돌아가게 되는 것인가? 그렇다. 닷넷 프레임워크 3.0이 설치되기 위해서는 닷넷 프레임워크 2.0이 필요하다. 대개의 경우 새로운 버전이 등장하면 이전 버전과 하위 호환성을 갖지만 이전 버전을 요구하지 않았었다. 닷넷 프레임워크 2.0이 닷넷 프레임워크 1.0/1.1과 무관하게 설치되고 사용될 수 있었듯이 말이다. 하지만 닷넷 프레임워크 3.0은 반드시 닷넷 프레임워크 2.0이 설치되어 있어야만 한다. 이는 닷넷 프레임워크 3.0이 사용하는 CLR의 버전이 2.0임을 의미하며 닷넷 프레임워크 3.0이 사용하는 클래스 라이브러리 역시 2.0의 클래스 라이브러리임을 말한다. 이것이 복잡하게 느껴지거나 혼란스럽게 여겨진다면 닷넷 프레임워크 3.0이 단순히 WinFX의 이름을 바꾼 것으로만 생각하면 좀 더 자연스러울 것이다. 그림 2 역시 혼란스러운 독자에게 도움이 되리라 생각한다.


그림2. 닷넷 프레임워크 3.0 구조

왜 마이크로소프트는 WinFX의 이름을 닷넷 프레임워크 3.0으로 바꾼 것일까? 게이츠 형한테 물어보지 않아서 정확하진 않지만, 일단 WinFX라는 그 이름에서 WinFX가 닷넷과 어떤 연관이 있을 것이라는 생각을 갖기가 매우 어렵다. 필자 역시 Win32의 후계자 쯤으로 생각했으니까 말이다. 게다가 WinFX가 닷넷 프레임워크를 기반으로 하는 차세대 어플리케이션 프레임워크 이기 때문에 보다 직관적인 이름으로 닷넷 프레임워크 3.0 이라는 이름을 가지게 되었을 것으로 생각한다. 하지만 닷넷 프레임워크 3.0 이 이전 버전으로 생각되는 닷넷 프레임워크 2.0에서 작동하는 것은 여전히 개발자나 IT 프로에게는 혼동을 주게 될 것임은 분명한 것으로 보인다.

.NET Framework 3.0 Development Environment

닷넷 프레임워크 3.0에 대해 자료를 찾고자 한다면 닷넷 프레임워크 3.0 개발자 센터 에 가보는 것이 좋다. 자료도 중요하지만 개발자라면 개발환경을 갖추고 WCF, WPF, WWF에 대한 HelloWorld 프로그램이라도 작성해 보는 것이 더욱 더 중요하다고 본다. 닷넷 프레임워크 3.0을 위해서 Windows Vista가 필요하지 않다. Windows 2003 SP1 혹은 Windows XP SP2를 갖고 있다면 충분하다. 사전에 필요한 소프트웨어로서 닷넷 프레임워크 2.0이 설치되어 있다면 충분하지만 개발 환경을 꾸미기 위해 Visual Studio 2005를 설치하는 것이 좋다. 정식 제품이 아니더라도 Visual Studio 2005 Express Edition을 설치해도 된다(공짜 아닌가 !!!).

3.0을 위한 개발환경을 갖추기 위한 베타 버전들은 http://msdn.microsoft.com/windowsvista/downloads/products/getthebeta/ 에서 다운로드 받을 수 있다. 다음 순서대로 설치를 하면 문제 없이 개발 환경을 꾸밀 수 있을 것이다.

  • .NET Framework 3.0 Runtime
  • Windows SDK
  • CodeName “Orcas” Add-in (Visual Studio 2005 용 WPF 디자이너)
  • Visual Studio 2005 Extension for WWF (WWF 디자이너 및 디버거 등)
  • Microsoft Expression Interactive Designer May 2006 CTP (옵션)

Windows SDK는 예전에 플랫폼 SDK라 불리던 SDK가 이름이 바뀐 것이다. WPF, WCF, WWF에 대한 도움말과 빌드 환경(VS 2005와 무관하게)을 갖추기 위해서는 Windows SDK를 반드시 설치해야 한다. 이외에 Visual Studio 2005에서 WPF와 WWF에 대한 디자이너 등의 기능을 사용하고자 한다면 두 개의 애드인을 추가 설치해야 한다. 마지막으로 Microsoft Expression 은 WPF를 위한 디자이너로서 Visual Studio 2005의 디자이너가 제공하지 않는 애니메이션이나 진보된 기능을 손쉽게 디자인하도록 해주는 도구이다. 반드시 필요하지는 않지만 WPF의 다양한 기능을 체험해보고 싶다면 설치를 두려워하지 말자.

필자주) 아직까지 .NET Framework 3.0이란 이름의 베타 버전, 정확히 말해 CTP 버전은 약간의 문제가 있어 보인다. 필자은 아직도 WinFX Beta 2를 사용하고 있다. .NET Framework 3.0 CTP 버전들에 대해서는 필자도 경험이 없으므로 발생하는 문제에 대해선 책임질 수 없다. 적어도 Beta2 버전은 필자의 시스템에서 매우 잘 작동하며 다른 닷넷 개발 도구들과 충돌을 일으키지 않는다. 다만, Windows SDK에 의해 설치되는 도움말 덕에 몇몇 도움말 토픽이 안보이곤 한다(Configuration 관련 도움말 등). 하지만 MSDN Online을 통해 도움말을 찾을 수 있으므로 그럭저럭 버틸 만은 하다. ^^

Be Prepared !!!

세상에는 두 종류의 개발자가 있다. 변화를 귀찮게 생각하고 현재의 기술에 안주하려는 개발자와 변화를 새로운 기회로 삼고 자신의 가치를 높이는 기회로 삼는 개발자.

일찍 일어나는 새가 벌레를 잡는다는 말이 있듯이 개발자들의 세계에서도 빨리 준비하는 개발자가 몸값을 올린다는 말이 있다(필자가 지어낸 말이다. ^^). 짬짬이 시간을 내서 먼저 준비하는 개발자는 그렇지 못한 개발자에 대해서 보다 높은 가치를 갖게 될 것임은 당연하지 않은가?



Comments (read-only)
#re: WinFX와 닷넷 프레임워크 3.0 / king's / 2006-07-24 오후 12:10:00
좋은 정보 감사합니다.
#re: WinFX와 닷넷 프레임워크 3.0 / 블로그쥔장 / 2006-07-24 오후 1:16:00
도움이 되셨다니 기쁩니다.

더 좋은 글들을 올릴 수 있도록 노력하겠습니다... (말이라도... -_-; )
#re: WinFX와 닷넷 프레임워크 3.0 / 배움이 / 2006-07-24 오후 2:10:00
저도 지금 열심히 공부하고 있습니다.
일단 향후 Vista에 기본적으로 탑재될 것이기 때문에 미리 배워두는 것도 나쁘지 않을것 같습니다.
VS 2005에 연동하여 사용중인데, 아직은 실력이 미천하여 심도있는 개발이 힘들지만 좀 더 노력해볼려구요
지금은 .NET 2.0에서 스마트 클라이언트로 업무를 개발완료한 상태입니다.
어쨌든 좋은 정보 감사합니다.
#re: WinFX와 닷넷 프레임워크 3.0 / 땡초 / 2006-07-24 오후 8:06:00
한번씩 어떤 아티클이 올라오는지 구경많이 왔습니다만,
올때마다 가뭄이 가시는듯 하네요.. 정말 좋은 정보 감사합니다.

근데, 설치도 오래걸릴뿐더러, 설치 순서에 반드시 유념해야 한다고 하는데..
Win FX 를 설치후에 비쥬얼 스튜디오를 다시 설치 해야 하나요??
#re: WinFX와 닷넷 프레임워크 3.0 / 블로그쥔장 / 2006-07-24 오후 9:13:00
땡초님 아닙니다. WinFX 설치와는 Visual Studio 2005와는 무관합니다.
나중에 달랑 WinFX만 Uninstall 할 수도 있습니다.
저의 경우는 깨끗하게 Uninstall 되더군요... (그렇게만 보이는 건지 몰라도...)
설치는 그다지 오래 걸리지 않습니다. Windows SDK가 설치에 약간 시간이 걸리지만
사실 다운로드(1.2G)하는데 시간이 더 걸리지요. 일단 다운로드만 다 받아 놓으면 설치는 잘되는 편입니다.
#re: WinFX와 닷넷 프레임워크 3.0 / 땡초 / 2006-07-24 오후 9:52:00
빠른 답변.. 정확한 정보 감사드립니다^^
이번주말에는 프레임워크 3.0 삼메경에 빠져볼랍니다^^
#re: WinFX와 닷넷 프레임워크 3.0 / 조나단 / 2006-07-25 오후 1:10:00
아티클 재미있게 봤습니다.예전 마소의 유경상님 아티클을 보고 COM+에 대한 이해를 했었는데
다시 WinFX와 닷넷 프레임워크 3.0 을 보고 대략이라도 이해가 되네요..
항상 좋은 글 올려주셔서 감사합니다.
수고하세요
#re: WinFX와 닷넷 프레임워크 3.0 / 이경원 / 2006-07-27 오전 11:51:00
잘 보고 갑니다~~~
#re: WinFX와 닷넷 프레임워크 3.0 / 찌유니아빠 / 2006-07-27 오후 5:13:00
호~~~~!!!!
#re: WinFX와 닷넷 프레임워크 3.0 / zframe / 2006-08-02 오후 5:27:00
제가 Adobe Flex 베타버젼으로 몇가지 만들어 보았는데
자바에서의 데이터 관련 개발을 지원하더군요.
UI가 너무나 예쁘고 xml로 프로그래밍을 하듯 웹페이지를 구성할 수 있기에
상당히 매력적이었습니다. 닷넷3.0에서 이게 되려나 봅니다. 기대되네요.
#re: WinFX와 닷넷 프레임워크 3.0 / 블로그쥔장 / 2006-08-03 오전 11:55:00
네.. 그렇습니다.
WPF로도 Flex 와 같은 기능들을 구현할 수 있습니다.
저도 상당히 기대되지만 기존의 WinForm과 너무나도 다른 프로그래밍 모델 때문에
배울것이 많아서 걱정도 됩니다.
열심히 준비해야죠... ^^
#re: WinFX와 닷넷 프레임워크 3.0 / 희태 / 2006-09-04 오후 5:30:00
잘 읽었습니다. *^^*
좋은 정보 ㄳ
#re: WinFX와 닷넷 프레임워크 3.0 / 장정일 / 2006-09-08 오후 2:06:00
SmartClinet 조회하다 우연희 들어왔는데
정말 좋은 정보 잘 보고 갑니다.
더 많은 자료 부탁합니다.
#re: WinFX와 닷넷 프레임워크 3.0 / 워너비 / 2006-09-20 오후 5:23:00
안그래도, 최근에 닷넷 프레임웍 3.0이란 얘기가 오가서 혼란스러운 마음에 자세히 알아보려 했었는데,
가뿐히 정리해주시는 군요. 감사합니다.
#re: WinFX와 닷넷 프레임워크 3.0 / 이도한 / 2006-09-26 오전 2:10:00
정말 정신없이 쏫아지는 정보 따라가기 버거울 정도입니다. 하지만 "짬짬이 시간을 내서 먼저 준비하는 개발자는 그렇지 못한 개발자에 대해서 보다 높은 가치를 갖게 될 것임은 당연" 말에 용기를 가져 봅니다. 오늘도 열공~~ ^^ 바로 다운로드 들어갑니다.

내공에 대하여 생각하다보니 쥔장님은 해모수정도 되시고 전 "다물군 1 " 정도 되는것 같군요. ^^

좋은 글 항상 감사드립니다.
#re: WinFX와 닷넷 프레임워크 3.0 / 강동훈 / 2006-10-04 오후 4:17:00
WPF는 어도브 플렉스의 화려함과 닷넷환경의 개발이 만난듯한 느낌!!!!
정말 앞서가시는 유수석님 ^^: 감사합니다.
아직 여기에 있는 아티클을 소화해 내지 못하고 있어서 부끄럽네요.

좋은글 감사합니다.
#re: 늦게나마 잘봤습니다. 역시 명쾌한 설명 굿 굿 입니다. / 강희기 / 2006-11-21 오후 1:16:00
왜? re:다음에 있는글자 안지우고 올리쥐? 안지우는게 정상인가? ㅋㅋ
언제쯤 제대로 사용될수 있을까요? 기술이 환경을 너무 앞질러 가는건 아닌지??
#re: 환경은 곧 기술을 따라 오던데요... / 블로그쥔장 / 2006-11-21 오후 7:33:00
몇년 전만 해도 핸드폰은 사치품이자 부의 상징이였습니다만
지금은 초글링들도 핸드폰을 들고 다니는 상황입니다.
기술이 발전하면 환경 역시 금방 그 기술을 요구하는 상황으로 바뀌기 마련이지요.
우리와 같은 개발자는 그런 시점에 새로운 기술을 배우려고 하면 이미 뒤쳐져 버리기 십상입니다.
열악한 개발자 환경에서 살아 남으려면 부단히 새로운 기술을 습득하고 익숙하려 해야 한다고 생각합니다.
그것이 고수로서 롱~런하는 길이라고 생각합니다.
#re: WinFX와 닷넷 프레임워크 3.0 / 최영일 / 2007-09-05 오후 6:31:00
덕분에 쉽게 이해가 되었습니다. 감사합니다.
#re: WinFX와 닷넷 프레임워크 3.0 / 개발자 / 2007-11-02 오후 1:51:00
잘보고갑니다. 3.0 개념을 잡고 가네요.
개발해보고 얼마나 쓸모있는 기술인가 확인해 봐야 겠습니다.