Microsoft .NET
MAKURAISHI
.NETは、2000年6月にMicrosoftが発表した次世代インターネット戦略(マーケティング用語)である。MicrosoftはCUI(MS-DOS)からGUI(Windows)への革新に際して主導的な役割を果たした。今度は.NET をキーワードに、WindowsからN/Wをベースとする分散S/W環境へのパラダイム・シフトを進めようとしている。
.NETは、新しいコンピューティング環境(XML Webサービス)と新しい開発環境(.NET Framework)の2つの意味で使われている。.NETは特定の製品や技術を指すものではない。OSやサーバー製品にも.NETの名を冠する動きがあったが、現在はない。Microsoftは、ユーザーの情報、人、システム、およびデバイスの世界を接続するための、S/Wテクノロジのセットを提供する。
.NET Frameworkは.NET対応のS/Wを開発し、実行するためのプラットフォーム(土台)となるベース・フレームワークである。Frameworkは「枠組み」「骨組」の意で、.NET対応S/Wを実行するための下層構造を提供する。XML Webサービスの実装を容易にする機能を提供するが、多彩な機能の中の一つに過ぎない。
FrameworkはCLRと、クラス・ライブラリ群から構成される。.NET Frameworkの一部はCLI: Common Language Infrastructureとして標準化されている。CLIは以下のOS環境で動作する(豊田孝「.NETでWebサービスを始めてみよう1」IT Pro 2003.1.23)。
・ Windows 2000/XP (Windows XP推奨)
・ FreeBSD (バージョン4.7推奨)
・ Mac OS Xバージョン10.2
.NET FrameworkやJ2EEでの開発は、それ以前とは全く異なる。開発環境の開発に大きなコストがかかる仕組みだったため、Framework以前のMicrosoftの開発環境は、Javaと比較すると劣っていた。今は一つの環境を用意するだけで事足りるので、後から追加したり整合性を保ったりする作業は不要である。
Frameworkの仕組みはJavaに似ているが、設計思想は大きく異なる。前者は局面毎に最適な解を選択することで、効率の良い開発を実現する。後者は手法をオブジェクト指向に絞ることで、シンプルな開発を実現する。一長一短ではあるが、.NET Frameworkの方が現実的でビジネス・アプリケーションとの親和性が高い。
.NET FrameworkはJavaと比べ圧倒的に少ないコード量で済む。J2EEのAPIが非常にシンプルであるのに対し、.NET FrameworkのAPIは非常に高機能。
CLRはプログラム実行エンジン(仮想マシン)である。. NET対応プログラミング言語(ex. C#, Visual Basic)を使って記述したソースコードをコンパイルすると、バイナリコード(Microsoft中間言語MSIL: Microsoft Intermediate Language)が生成される。
CLRはこのバイナリコードを実行する。MSILは共通中間言語CIL: Common Intermediate LanguageとしてECMA: European Computer Manufacturer's Association標準の一部になっている。どの言語からでも作成可能である。
実行時(Just In Time)に仮想マシンのバイナリから実行マシンのバイナリにコンパイルする。実行時の方がコンパイル時よりも情報が多いので、高度な最適化が可能になる。
.NET Frameworkでは、CLRの制御下で実行されるマネージコード向けの各種S/Wコンポーネントがクラス・ライブラリとして提供されている。全ての言語から利用可能で、開発者を広く深くサポートする。エンタープライズ部分では、Windowsの機能(COM+)を活用している。Microsoftが全て実装している。
・ ベース・フレームワーク・クラスは.NET APの基本的な機能(データの入出力、ネットワーク機能、スレッド管理、セキュリティ管理)を実現する。
・ データ/XMLクラスは、DB操作機能やXMLデータの操作機能を提供する。DBアクセスを含む.NET Frameworkにおけるデータ・アクセスのためのテクノロジはADO.NETと呼ばれる。
・ 「XML Webサービス」「Webフォーム」「Windowsフォーム」は、それぞれWebサービス・プログラム向け、Web AP向け、Windows AP向けのサービス・クラスである。GUIとイベント・ハンドラをVisual Basicライクに開発可能である。
VS .NETはFrameworkという土台の上に誕生した開発環境製品である。一般に統合開発環境IDE: Integrated Development Environmentと呼ばれ、グラフィカルな操作を通して、.NET対応ソフトウエアを効率的に開発するためのS/W製品である。
但し.NET対応S/Wを開発するにはVS .NETは必須ではない。Microsoftは仮想マシン、コマンドライン・コンパイラ、簡易版GUIデバッガ、テクニカル・ドキュメント、各種サンプル・コード一式を.NETフレームワークに含め、インターネットから無料でDLできるようにしている。
VS .NETで開発した.NET対応S/WはCLRで実行される。
Webサービスは.NETの世界の通信手段である。. NET対応のS/WやH/Wデバイスは、N/W(インターネット)を介して通信し、それぞれが分散する部品の1つとして連携しながら様々な処理を行う。Web サービス(相互に、又は他の大きなAPと接続できる小さな独立したビルディングブロックAP)を利用することにより、インターネット上で従来とは一線を画す高レベルのS/W統合が可能となる。
Webサービスはオープン・プロトコルである。Webサービスは既存のトランポート・プロトコル(ex. HTTP, SMTP)を使い、XML仕様のデータをやり取りすることで、AP連携を可能にする。最終的にはインターネット空間に公開されるため、従来のWebサーバー開発と同様、比較的新しいプロトコル(XML, SOAP)に加え、実績のあるインターネット標準プロトコルの実装環境(TCP/IP, HTTP, HTML)も必要となる。
MicrosoftがWindows OS上に実装した.NETプラットフォームが、このWebサービス・プロトコルを利用したAP連携の基盤となる。Webサービス対応機能自体は、Microsoft以外のプラットフォーム(ex. IBM, Sun Microsystems)に対しても実装が進められている。
具体的にはXMLメッセージの交換によって、ネットワーク上の自律したアプリケーションを連携させる技術、又はそのアプリケーションを指す。UDDI(Universal Description, Discovery and Integration)でサービスを検索し、WSDL(Web Services Description Language)でサービスの内容を調べ、SOAPでXMLメッセージを送る。
Webサービスを使用すれば、インターネットを介してB to B連携を実現したり、イントラネットを介してアプリケーション統合を実現したりすることが可能になる。
ASP .NETは.NET Frameworkの一部機能で、Webサービスを開発し、公開するための基盤infrastructureである。フォームとコントロールとイベント・ハンドラで、Webフロント・エンドを作成するためのAPIである。フォームにコントロールを貼り付け、イベント・ハンドラを定義する。インターネットに必要なプロトコルを実装している。
VS .NETを利用してWebサービスを開発する場合、プロジェクト「ASP .NET Webサービス」を選択する。普通のメソッドをXML Webサービスだとマークするだけでできる。ASP .NETは.NET Frameworkの一部であるため、「ASP .NET Webサービス」で開発されるWebサービスは、あくまでも「.NET対応Webサービス」である(豊田孝「10行のサンプル・プログラムで分かる.NETの基礎最終回」IT Pro 2002.9.26)。