TOPシステム開発> 第1回:再発見Visual Studioの魅力 (2/3)

今こそ聞きたいVisual Studio 2008の基礎の基礎

今こそ聞きたいVisual Studio 2008の基礎の基礎

第1回:再発見Visual Studioの魅力

著者:マイクロソフト 馬田 隆明

公開日:2008/02/05(火)

プログラミングの負担をなくす機能

.NET Frameworkには、プログラマの開発時の負担を減らすさまざまな機能が搭載されています。その1つがガベージコレクションによるメモリ管理からの解放です。

.NET Frameworkベースのコード(「マネージコード」と呼びます)では、開発者はポインタを意識する必要がありません。開発者の代わりに.NET Frameworkがアプリケーションのメモリ領域の管理を行う「ガベージコレクション」と呼ばれる機能を備えているからです。

メモリの割り当てはもちろん、オブジェクトの利用状況に応じた自動的なメモリ領域の解放についても、.NET Frameworkが自ら実施します。従来開発者が行ってきたメモリ管理の煩雑さをなくして開発の効率を向上するとともに、メモリ管理不全によるメモリリークをも防ぐことができます。

このガベージコレクションは、アプリケーションのセキュリティにも関わる重要な機能のため、後ほど改めて解説します。

さらに、完成された高機能な部品群であるクラスライブラリも用意されています。このクラスライブラリを活用することで、アプリケーション構築の際にプログラムのすべてを開発者が1から作成せずに済みます。さらに、すでに完成された高品質かつ実績のある機能を利用できるため、開発期間の短縮と品質向上を実現できます。

.NET Frameworkは複数の言語に対応していますが、それぞれの言語から同じクラスライブラリを利用可能です。このため開発者は言語間のクラスライブラリの差異を気にすることなく開発を進めることができます。

コンパイルと実行
図2:コンパイルと実行
(画像をクリックすると別ウィンドウに拡大図を表示します)

重要性が高まるアプリケーションの品質

ここまでは.NET Frameworkを活用した「開発」に着目して解説を進めてきました。続いては.NET Frameworkの「実行」面についてみていきましょう。

アプリケーションを迅速に開発できたとしても、そのアプリケーションを安心して利用できなければ意味がありません。特にソフトウェアが社会的インフラストラクチャにおいて重要な位置づけとなる中、ソフトウェアの品質についての要求も高まってきています。

さらに高品質なアプリケーション開発は、企業のブランドイメージや差別化にも関連する重要課題といえるでしょう。

.NET Frameworkはこの「品質の確保」を実現する機能も搭載しています。その1つが「誰が利用しても安全で、かつ長期間の運用に耐えるアプリケーション」を実現するセキュアなアプリケーションを開発するための機能です。

.NET Frameworkは大きく分けて2つの強力なセキュリティ機構を持っており、そのフレームワークの上で動作するアプリケーションも同様に強固なセキュリティに守られます。

まず、そのアプリケーションがどこから起動されたか、また適切な署名を持っているかといったコードのアイデンティティによるセキュリティチェックを行う「コードアクセスセキュリティ」機能があります。

さらに、管理者権限の有無など、その処理の実行権限を持っているロールに属しているかをチェックする「ロールベースセキュリティ」機能も搭載しています。

これ以外にも、前述したガベージコレクションもセキュアなアプリケーション開発を支援しています。従来のアプリケーションでは、メモリリークによるメモリ資源の枯渇を招いた場合、サービスそのものの運用が不能になるケースがありました。つまり、メモリ管理の不全がアプリケーションの脆弱性につながる、ということです。

しかし.NET Frameworkにはガベージコレクション機能が用意されており、この点においてもセキュアなアプリケーション開発が可能だといえるのです。 次のページ


前のページ  1   2  3  次のページ


マイクロソフト株式会社 馬田 隆明
著者プロフィール
マイクロソフト株式会社  馬田 隆明
2007年、マイクロソフト株式会社に入社。Visual StudioプロダクトマネージャとしてVisual StudioやPopflyのマーケティングに携わる。両製品を通して、開発者層の拡大と最新技術の普及に尽力する。


INDEX
第1回:再発見Visual Studioの魅力
  高品質なアプリケーションを迅速に作るための支援を行う開発ツール
プログラミングの負担をなくす機能
  異なる.NET Frameworkへの対応