はじめに
Windows Vistaに合わせて導入された.NET Framework 3.0の新コンポーネントであるWPF/WCF/WFは、より豊かなUIや、通信機能の標準化、汎用的なワークフローのサポートなど、さまざまな機能を提供しました。しかし、Visual Studio 2005でのサポートは限定的なものであり、これらのフレームワークをより生かせる開発環境の登場が待望されていました。
Visual Studio 2008では、ついに.NET Framework 3.5がサポートされ、WPF/WCF/WFについても、統合開発環境を活かしたサポートが行われるようになりました。
Visual Studio 2008入門シリーズでは、本記事から数回分を用い、Visual Studio 2008でのWPF/WCF/WFサポートについて解説していきます。
対象読者
- VS 2008に興味がある方
- WPF/XAMLに興味がある方(&Visual Studioでのサポートを待望していた方)
必要な環境
シリーズ第1回を参考に、Visual Studio 2008のインストールを行ってください。
Visual Studio 2008とWPF/WCF/WF
Visual Studio 2008は.NET Framework 3.5をサポートする統合開発環境です。Visual Studio 2005が.NET Framework 2.0をサポートしていた時点から、.NET Frameworkは2回のメジャーバージョンアップを経ています。
.NET Framework 3.5の新機能であるLINQについては第3回で、ASP.NET AJAXについては第4回で扱いましたので、ここでは一つ戻って、.NET Framework 3.0で導入されたフレームワーク群について少し見ておきましょう。
.NET Framework 3.0はWindows Vistaと同時期にリリースされ、Vistaで追加されたさまざまな機能の土台となっています。
その実体は、.NET Framework 2.0をベースとし、WPF(Windows Presentation Foundation)、WCF(Windows Communication Foundation)、WF(Windows Workflow Foundation)、WCS(Windows CardSpace)を追加したものです。
それぞれのコンポーネントは、次のような機能を持っています。
コンポーネント名 | 略称 | 機能 |
Windows Presentation Foundation | WPF | 3DグラフィックをサポートしたUIフレームワーク |
Windows Communication Foundation | WCF | さまざまな通信方式を統一的に扱うための通信フレームワーク |
Windows Workflow Foundation | WF | Windows向けの共通ワークフローフレームワーク |
Windows CardSpace | WCS | ユーザーのデジタルIDを統一的に管理するためのフレームワーク |
.NET Framework 3.0はWindows Vistaに含まれているほか、Windows XP / Windows Server 2003にもランタイムが提供され、.NET Framework開発の新たな標準となりました。
しかし、開発環境という面では、前述の通りVisual Studio 2005は.NET Framework 2.0対応で、.NET Framework 3.0については、拡張ソフトウェアであるVisual Studio 2005 Extensions for WPF/WCF/WFの追加によって対応する、という状況でした。
なお、Visual Studio 2005 ExtensionsによるWPF/WCF/WF開発については、以前の記事を参照してください。
Visual Studio 2008の登場により、ついにWPF/WCF/WFを標準サポートした開発環境を利用することができます。
Visual Studio 2008では、.NET Framework 3.0を抜かして一挙に.NET Framework 3.5がサポートされました。.NET Framework 3.5では、前述のLINQ / ASP.NET AJAXといった主要機能に加え、次のようにWPF/WCF/WFについても機能が追加されています。
コンポーネント | 機能説明 |
WPF | XAMLブラウザアプリケーション(XBAP)のFirefoxサポート |
3Dオブジェクトでの入力/フォーカス/イベントのサポート(UIElement3D/ContainerUIElement3D/ModelUIElement3D) | |
3Dオブジェクトへの2Dオブジェクトの配置(Viewport2DVisual3D) | |
データバインディング機能でのLINQのサポート | |
WCF | WCFによるWebサービス開発が可能に(WCF Webプログラミングモデル) |
Atom 1.0 / RSS 2.0によるサービスの配信機能の追加 | |
JSONのサポートにより、ASP.NET AJAXとの連係が容易に | |
WS-I(Web Services Interoperability)サポートの強化 | |
WCF/WF | WCF/WFを統合した機能が追加され、WCFサービス内でWFを使用したり、WFワークフローをWCFサービスとして公開可能に |