Last Updated 2011/09/21
2010 年に Windows 7 がリリースされ、.NET Framework のバージョンは 4.0 になりました。
NET 3.0 の頃から WPF に Microsoft の主力が投入されていることから、WPF の進歩はありますが、一般的な .NET Framework の機能の向上は限定的です。
このページでは .NET Framework 初心者も対象にするために、.NET Framework の概要についても触れます。
なお、XML 関係は専用のページを用意しましたので、寄ってください。
2011 年初頭における .NET Framework のバージョンは 4.0 です。
.NET Framework のライタイムライブラリは無料で頒布されていますから .NET Framework 4.0 はすでにインストールされているはずです。ただし、.NET Framework 4.0 対応のアプリケーションを開発するには Visual Studio 2010 が必要です。
.NET Framework を利用する開発言語には実は制限はありません。詳しいことは専門書を見てもらうとして、C++ でも Pascal でも Perl でもいいのです。Microsoft は Visual C++、Visual C#、Visual Basic の 3 種類、Borland は Delphi と Borland C# の 2 種類のツールを発表しています。しかし、.NET Framework と相性のいいのは C# であることは間違いありません。というのは、C# は .NET Framework のために新たに開発されたものだからです。
.NET アプリケーションに興味のある人は C# を選択すべきでしょう。Visual Basic ユーザーに対しても強くすすめます。Visual Basic.NET はもはや、初心者向け言語ではありません。
私も元来 Visual Basic プログラマでしたが、なにかと限界を感じて Borland C++ Builder に乗り換え、その後、.NET Framework & C# に移行しました。
【以後、開発言語として、C# を前提として解説します】
人名です。アンダース・ヘルスバーグと読むようです。1960 年のデンマーク生まれの人で、.NET Framework と C# の基本の仕組みを作った人です。現在は Microsoft な人ではあるのですが、実は、Delphi と VCL を作った人でもあります。1996 年に Microsoft に引き抜かれ、現在のタイトルは Microsoft 社に数人しかいない Distinguished Engineer だそうです。経営には関係していませんが、特別な待遇を受けているということなのでしょう。
さて、なぜ、.NET Framework と C# の開発者を紹介したかというと、これが重要な意味を持つからです。特に、VCL プログラマに対しては決定的に重要です。
VCL は "Visual Component Library" の略です。.NET Framework のクラスライブラリと基本的には同じと考えてください。Delphi が急速に支持を集めたのは、VCL があったからです。
.NET Framework のクラスライブラリを知っている人は、その構造が VCL とそっくりであることに気付くと思います。そっくりというより、まったく、同じと言っていいでしょう。たとえば、フォームオブジェクトの継承関係を以下に示します。
VCL | .NET Framework |
---|---|
TObject | System.Object |
. TPersistent | . System.MarshalByRefObject |
... TComponent | ... System.ComponentModel.Component |
..... TControl | ..... System.Windows.Forms.Control |
....... TWinControl | ....... System.Windows.Forms.ScrollableControl |
......... TScrollingWinControl | ......... System.Windows.Forms.ContainerControl |
........... TCustomForm | ........... System.Windows.Forms.Form |
............. TForm |
どうです。名前が微妙に違うだけで、基本的な構造は同じですね。同じだからよくないという意味ではありませんよ。ただ、この事実を知っておいてほしいのです。
次に、C# のほうですが、これは Object Pascal を C++ 風にアレンジしたものです。開発者本人がどういうかは分かりませんが、そう断言していいと思います。C++ ではありません。たとえば、C++ では複数のクラスからの多重継承を許しますが、C# も Object Pascal もできません。ただし、C# も Object Pascal も 1 つのクラスと複数のインターフェースとであれば多重継承は可能です。また、派生クラスからのコンストラクタの呼び出しの順序も C++ とは異なり、C# と Object Pascal とは同じです。つまり、C# は C++ の改良版であるかのように見せてはいますが、実際は Object Pascal を C++ 風の構文に変えたものです。これも、これがよくないという意味ではありません。念のため!
C/C++ は歴史があるだけに、ツギハギだらけの仕様になってしまったり、文法上の問題についても指摘されることが多いと思います。そこで、新しい枠組み(.NET Framework のことですが)への移行を機に、新しい開発言語を提案することは自然な流れではあります。C# は開発言語としては新しい言語ですから、既存の言語が持っている欠点を少なくし、長所をより生かしていると考えていいでしょう。ベストであるかどうか は分かりませんが、C/C++ にありがちな文法上のあいまいさにイライラする機会が少ないことは間違いありません。特に、初心者には!
C# ではコンパイル時にデータ型を厳密にチェックしますので、今までなら何でもなかったところで怒られる機会が多くなってきました。それも安全性を高めるためと理解するべきなんでしょう。
−以上−