今時のアプリケーション開発に欠かせない「フレームワーク」
学生、あるいは就職したての新人開発者のみなさん。大学でプログラミングの基礎(四則演算や条件分岐)やアルゴリズムとデータ構造(コレクションやソート)などを習ったり聞きかじったりしたと思います。でも、「プログラミング言語やアルゴリズムは習ったけど、実際に世の中で使われているようなアプリケーション(mixi、ニコニコ動画、Windows Media Playerなど)を作れる気がしないなぁ」なんてことはありませんか。
もちろん、単にプログラミング言語やアルゴリズムを覚えただけではアプリケーションは作れませんね。現在開発されている多くのアプリケーションでは、他人が用意してくれた何らかのフレームワークを使って、その上にアプリケーションを構築することになります。
現在のアプリケーション開発では従来の開発と異なり、自分で一からすべて開発することはまれです。画像の描画、動画の再生、データベースアクセスといったお決まりの処理を一から実装するのは非常に手間がかかります。.NET Frameworkの機能を活用することで、典型的な処理を簡単に記述することができます。
例えば、ビットマップ画像を描画するコードを考えてみましょう。C++などの従来の開発環境では、描画領域のメモリ管理といった煩雑な処理を逐一記述する必要がありました(Figure 1左側)。最近では、煩雑な部分はフレームワーク側で行ってくれるため、非常にシンプルな記述でアプリケーション開発を行えます(Figure 1右側)。
本連載で取り扱う開発環境
現在、アプリケーション開発では「プログラミング言語」「フレームワーク」「開発ツール」の3つが不可分なものとなっています。この3つのうちのどれか1つでも欠けると効率的な開発が行えません。
本講座では、以下のプログラミング言語、フレームワーク、開発ツールを用いて説明を行います。
フレームワーク: .NET Framework
前述のとおり、アプリケーション開発の土台となる部分です。Microsoftの.NET Frameworkは分野的にも技術層的にも広範囲をカバーするフレームワークです。
プログラミング言語: C#
.NET Framework上でのアプリケーション開発を前提として作られているプログラミング言語で、.NET Frameworkの機能を最大限活用できます。
開発ツール: Visual Studio
Windowsにおけるアプリケーション開発の支援ツールです。コード補完などの入力支援機能やアプリケーションのテンプレートが充実しています。機能が一部限定された無償版(Express Edition)も提供されています。