.NET Frameworkでできること
.NET Frameworkの全体像
ソフトウェア開発で使えるフレームワークやツールには、いろいろなものが存在しますが、.NET FrameworkにはWebアプリケーションやクライアントアプリケーションを作るために必要な開発コンポーネントがすべて揃っています。また、RIA(Rich Internet Application)やクラウドなど、今流行りの環境での開発もサポートしています。この全体像をFigure 2に示します。
各々は次節以降で説明しますが、キーワードだけを先に列挙すうと以下のとおりです。
- デスクトップ・アプリケーション:WPF(Windows Presentation Foundation)
- Webアプリケーション:ASP.NET
- サービス化:WCF(Windows Communication Foundation)
- データ・アクセス:LINQ(Language Integrated Query:リンクと読みます)
- RIA:Silverlight
- クラウド・コンピューティング:Windows Azure(ウィンドウズ アジュールと読みます)
このように、幅広いアプリケーション開発機能を提供する.NET Frameworkですが、いずれの開発コンポーネントでも、統一的で一貫性のある開発モデルになっています。開発モデルが一貫しているため、ある形態での開発経験がある人が他のコンポーネントでの開発を学びやすくなっています。
フレームワーク全体を俯瞰し、フレームワークを活用して開発効率を向上するための学習教材として、.NET Frameworkはうってつけです!
デスクトップ・アプリケーション: WPF
いわゆる、Windowsにインストールして利用するアプリケーションを(後述するWebアプリケーションと区別して)デスクトップ・アプリケーションと呼びます。
要するに、Microsoft WordやMicrosoft Excelなどのようなタイプのアプリケーションです。普段からよく目にするものなので、特に説明は不要かと思いますが、近年の傾向として、1つキーワードとなっているのは「リッチ化」というものです。
「リッチ化」というのは簡単にいうと、「見た目のわかりやすさや操作性、対話性などの視覚的デザイン上の工夫でユーザー体験(ユーザー・エクスペリエンス)を向上しよう」というものです。Figure 3にその一例を示しましょう。期間や地域を指定したい場合、図の左のような文字だけのインターフェイスよりも、右のようなカレンダーや地図を使ったものの方がより直観的で、ユーザーが快適に利用できます。
このような「ユーザー体験の向上」は今に始まったものではなく、鉄道路線図など、IT化が進む以前から行われてきました。しかし、ITシステム上では、実装するのが大変という技術的な理由で貧弱なユーザー体験になってしまうことが多々あります。
技術的な問題の解消はフレームワークの出番です。.NET Frameworkには、リッチなデスクトップ・アプリケーション開発技術として、WPF(Windows Presentation Foundation)というフレームワークがあります。WPFでは「リッチ化」実現のため、以下の特徴を持っています。
- GPUなどのハードウェア・リソースを有効活用できる
- 2Dビットマップ、ベクターグラフィックス、3Dグラフィックス、動画像などに対して統一的な開発モデルを提供する
- 柔軟なスタイル・カスタマイズ機能を提供する
- 開発者とUIデザイナーの協業まで考慮に入れた作りになっている