Webアプリケーション: ASP.NET
最近では、デスクトップ・アプリケーションよりも、Figure 4に示すような、インストール不要でブラウザさえあればどこからでも利用できるWebアプリケーションが増えてきました。
特に、ゲームやSNS(ソーシャル・ネットワーキング・サービス)などのコンシューマー向けのアプリケーションでは、「専用のデスクトップ・アプリケーションをダウンロードしてインストールしてください」というとその時点で9割9分の人が帰ってしまうといわれるほどで、Webアプリケーションが非常に重要になっています。
ただし、開発者視点でいうと、Webアプリケーションの構築にはHTTPなどの知識が追加で要求され、デスクトップ・アプリケーションよりも高いスキルが要求されます。そこでまたフレームワークの出番ですね。.NET Frameworkには、ASP.NETと呼ばれるWebアプリケーション開発フレームワークがあり、Figure 5に示すように、煩雑な部分を隠ぺいしてくれて、デスクトップ・アプリケーションと同じ感覚でWebアプリケーション開発を行えます。
データ操作: LINQ
アプリケーションの行う仕事の多くは、何らかのデータの収集・分析・表示です。一例として、流通業務なら以下のようなこと行っています。
- 収集: 商品の受発注情報を記録したり
- 分析: 集計して会計情報にしたり、分析して次月の販売戦略に生かしたり
- 表示: 帳票として出力したり、分析結果を可視化したり
また、娯楽分野においても、最近ではランキング機能を持たせたりといった、データの収集・分析・表示が行われています。
このようなデータ操作にはある程度決まったパターンがあります。典型例を挙げると、Figure 6に示すような条件選択と集計などです。
パターンが決まっているならフレームワーク化が非常に有効です。.NET FrameworkにはLINQ(Language Integrated Query)と呼ばれるデータ操作用のフレームワークが存在します。LINQは、開発者の負担軽減のため、異なる種類のデータ・ソースに対する操作を共通化(Figure 7)するなどの工夫が盛り込まれています。
特に、データベースに対するデータ操作では、Figure 8に示すように、(データベースのデータ記録方式として主流になっている)リレーショナルデータベースのデータ構造と、(プログラミング言語として主流な)オブジェクト指向のデータ構造の差が問題になります。データベース向けのLINQであるLINQ to Entitiesでは、このデータ構造の差異を吸収するための仕組みを持っています。