Skip to main content
評価してください: 

Microsoft .NET Framework 開発ガイド ブック

Microsoft .NET Framework 開発ガイド ブック

更新日: 2009 年 10 月 23 日

はじめに

2002 年に .NET Framework 1.0 をベースとした最初の製品である Visual Studio .NET (2002) が誕生して以来、.NET Framework は、アプリケーションのプラットフォームとして広く普及することになりました。そして 2007 年の末には、開発効率や配布効率がさらに向上した .NET Framework 3.5、およびこれに対応した開発環境の Visual Studio 2008 が登場しています。

開発生産性や、作成したアプリケーションの安全性、信頼性の高さから、多くの開発者に支持されるに至った .NET Framework ですが、Visual Studio を使って簡単に開発、配布が行えるため、その内部の仕組みの理解は後回しにされがちです。しかし、.NET Framework の機能を最大限に生かした最適な環境設定や運用の実現、アプリケーションの効率的なデバッグやスムーズなトラブル対応には、プログラミング テクニックやクラス ライブラリについての知識だけでなく、.NET Framework 自体についての知識が不可欠です。

本稿では、.NET 開発者としてステップ アップしたい方の手助けとなることを目指して、.NET Framework の内部について解説していきます。

なお、文中に掲載しているプログラム コードは、すべて C# で示しています。

1. .NET Framework の概要

.NET Framework の概要とバージョンについて説明します。.NET Framework は、アプリケーションの実行基盤である「共通言語ランタイム (CLR)」と「クラス ライブラリ」で主に構成されています。クラス ライブラリには、Windows フォームや ASP.NET などの各種フレームワークが含まれています。様々なプログラミング言語が使えるのも .NET Framework の大きな特長です。

2. アセンブリの仕組み

.NET のアプリケーションやコンポーネントは「アセンブリ」と呼ばれ、これまでの Windows の実行ファイルとは大きく異なる構造を持っています。これにより DLL Hell やセキュリティなどの従来の様々な問題を解決しています。その内部構造を具体的に見ていきます。

3. .NET アセンブリのバージョン管理

.NET 以前では、誤って DLL ファイルを更新してしまい、アプリケーションが正しく動作しなくなるという問題がありました。.NET ではバージョン番号によりアセンブリを識別でき、同一モジュールの複数バージョンを管理する仕組みを持っています。また、デジタル署名を用いて、アセンブリの改ざんを防ぐことが可能です。

4. セキュリティ機構

.NET では、アプリケーションを実行するユーザーのアクセス権に基づいたセキュリティに加え、そのアプリケーション自体の様々な情報に基づいて実行可能な処理を制限することが可能です。このセキュリティ機構は「コード アクセス セキュリティ」と呼ばれ、これにより出所の不明なアプリケーションなどからシステムを守ることができます。

5. CLR の機能

共通言語ランタイム (CLR) の主要な機能である「例外処理」と「メモリ管理」について説明します。これらの機能により、プログラミング時における開発者の負担は大きく軽減されています。また、安全かつ効率的なアプリケーションの実行を実現しています。

6. アプリケーションの実行までの流れ

.NET のアプリケーション (アセンブリ) がロードされ、実行されるまでの仕組みを解説していきます。通常、アプリケーションはクラス ライブラリなどの別アセンブリの機能を呼び出しながら動作しますが、実行時にそれがどのように検索されるかについても解説します。

7. アプリケーションの配置

開発が完了したアプリケーションは、配置 (配布) する必要があります。ここでは、XCOPY、インストーラー、ClickOnce の 3 つの配置方法について解説します。ClickOnce は .NET のセキュリティ機構をベースにして、Windows アプリケーションに Web アプリケーションと同様な配置の手軽さをもたらしました。

8. Side-by-Side 実行

.NET では、アプリケーションは、開発時に使用されたバージョンのコンポーネントを実行時にも使い続けることができます。これはバージョンの異なる同一コンポーネントを Side-by-Side で (並行して) 配置および実行することが可能となっているためです。実行環境である .NET Framework ランタイムも複数のバージョンを同時インストール可能です。

ページのトップへ