システムアーキテクチャデザインノート(80)-。NET

一連のオープンインターネットプロトコルに基づいて、Microsoft .NET戦略は一連の製品、テクノロジー、およびサービスを開始し、インターネットテクノロジーの変更を求める声を上げています。.NETに関して、Microsoft CEO Ballmerは次のように説明しています。「Microsoft.NETは、次世代のインターネットをサポートするプラットフォームとして使用できるコレクション、環境、およびプログラム可能な構造を表します。」この文は.NETを簡単に要約しています。外部特性。

1.NETプラットフォーム

.NETは最初の環境です。これは理想的な将来のインターネット環境です。Microsoftのビジョンは、「単一のWebサイトと単一のデバイスがインターネットに接続されているネットワーク環境に注意を払うのではなく、すべてのコンピューターグループ、関連機器、およびサービスプロバイダーが連携できるようにすること」です。コンピューティング環境。つまり、インターネットによって提供されるサービスは、より高度な自動化を完了できなければなりません。

将来的には、インターネットをサービス全体の形でエンドユーザーに提示する必要があります。ユーザーは、目標を達成するために段階的にインターネットを検索して操作するのではなく、必要なものを知るだけで済みます。このようなインターネット環境を構築するために最初に解決しなければならない問題は、既存のインターネットの欠陥に基づいて新世代のインターネット構造を設計および作成することです。この構造は、物理ネットワークレベルのトポロジ構造ではなく、ソフトウェアおよびアプリケーションレベル向けのプログラム可能なインターネットソフトウェア構造であり、静的に閲覧することしかできないブラウザとは異なります。したがって、.NETは、次世代のインターネットをサポートするためのプラットフォームとして使用できるプログラム可能な構造としての地位を確立しています。

.NETの最終的な目標は、ユーザーが必要な情報、ファイル、およびプログラムに、いつでも、どこでも、どのデバイスを使用してもアクセスできるようにすることです。ユーザーは、これらのものがどこに存在するか、またはそれらを取得する方法などの特定の詳細を知る必要はありません。彼らは要求をするだけでよく、それを受け取る責任があるだけで、背景の複雑さはすべて完全に保護されています。したがって、エンタープライズIT担当者の場合、ワークロードが大幅に削減され、複雑なプラットフォームを管理したり、さまざまな分散アプリケーション間で作業がどのように調整されているかを理解したりする必要がありません。.NETには、4つの重要な機能が含まれています。1つはサービスになるソフトウェア、もう1つはXMLに基づく共通言語、3つ目は複数のデバイスとプラットフォームの統合、4つ目は新世代のマンマシンインターフェイスです。これらの4つの特性は、基本的に.NETの技術的特性をカバーしています。

(1)ソフトウェア変更サービス

Ballmer氏は、ソフトウェアサービスについて語ったとき、「今日のソフトウェア製品は単なるコンパクトディスクです。ユーザーはソフトウェアを購入し、インストール、管理、保守します。しかし、ソフトウェアサービスはインターネットからのサービスであり、ユーザーのインストール、更新、追跡を行います。これらのソフトウェアは、ユーザーとユーザーが異なるマシン間を移動できるようにします。ユーザー向けに独自の情報と参考資料を保存します。これらは、ソフトウェアとソフトウェアサービスのさまざまなスタイルです。」この節では、ソフトウェアからサービスへのコアを要約します。ASP(アプリケーションサービス提供)業界の台頭に伴い、ソフトウェアはIT業界全体のトレンドである製品形態からサービス形態へと徐々に変化しています。

.NETでは、最終的なソフトウェアアプリケーションはWebサービスの形式で表示され、インターネット上で公開されます。Webサービスは、Web上で公開できるパッケージコンポーネントです。.NETは、WSDLプロトコルを介してこのWebサービス情報を記述および公開し、DISCOプロトコルを介して関連サービスを検索し、SOAPプロトコルを介して関連する単純なオブジェクトを実行します。パスして電話します。図1に示すように、.NETプラットフォームのOrchestrationビジュアルプログラミングツールは、XMLベースのXLANGコードを生成するために使用されます。これと、Biz Talkサーバー、.NETフレームワーク、およびVisual Studio .NETはすべて、WindowsD2000戦略の重要な部分です。

Microsoftの.NET戦略は、MicrosoftとMicrosoftプラットフォーム上の開発者が、ソフトウェアではなくサービスを製造することを意味します。今後数年間で、Microsoftは.NETに関連するプラットフォームとツールを継続的にリリースし、インターネット上でWebサービスを開発します。当時、.NETに取り組んでいるユーザー、開発者、ITスタッフは、ソフトウェアの購入、インストール、保守を停止していました。代わりに、サービスをカスタマイズし、ソフトウェアを自動的にインストールし、すべてのメンテナンスとアップグレードをインターネット経由で実行します。

(2)XMLに基づく共通言語。

XMLは、SGML言語から発展したマークアップ言語です。メタ言語として、さまざまな種類のアプリケーションのデータ交換言語を定義できます。.NETアーキテクチャでは、XMLはアプリケーション間のシームレスな接続の手段として使用され、複数のアプリケーション間のデータ収集とマージに使用され、異なるアプリケーション間の相互運用性と共同作業に使用されます。具体的には、.NETは、XML言語を介してSimple Object Access Protocol(Simple Object Access Protocol、SOAP)、Web Services Description Language(WSDL)、およびWebサービス検出プロトコルを定義します。SOAPプロトコルは、分散環境でXMLを使用して構造化データと型付きデータを交換するためのシンプルで軽量なメカニズムを提供します。WSDLプロトコルは、タイプ、メッセージ、ポートタイプ、ポート、サービス自体など、サービス記述ドキュメントの構造を定義します。Web Service Discovery Protocolは、リソースまたはリソースコレクションからサービス記述ドキュメントおよび関連するサービス検出アルゴリズムを抽出する方法を定義します。

(3)複数のデバイスとプラットフォームの統合

インターネットが徐々に情報とデータの中心になるにつれて、さまざまなデバイスやサービスがインターネットに接続され、統合され、その一部になろうとしています。.NETは、主にワイヤレスデバイスとホームネットワークデバイス、および関連するソフトウェアとプラットフォームに焦点を当てて、さまざまなインターネットアクセスデバイスとプラットフォームとの統合を目指しています。

(4)新世代のマンマシンインターフェース

新世代のマンマシンインターフェースは、主に「インテリジェンスとインタラクション」の2つの側面で具体化されています。.NETには、自然な音声、視覚、手書きなどのさまざまなモードによる入力および表現方法が含まれています。XMLベースの編集可能な複合情報アーキテクチャ-一般的なキャンバス、パーソナライズされた情報エージェンシーサービス、マシンによる処理の自動化の向上スマートタグおよびその他のテクノロジー。

.NETプラットフォームとフレームワークは、Microsoftソフトウェア業界基盤の別のアップグレードと進化に基づいています。ただし、.NETは、Windowsシステムと一連の製品を.NETと統合できるように最善を尽くし、Microsoftの元のソフトウェア資産に基づいて.NETがインターネットの中心になり続けるようにする必要があります。

2.NETフレームワーク

Microsoft.NET開発フレームワークを図2に示します。ユニバーサル言語ランタイムとそれが提供する一連の基本クラスライブラリは、開発フレームワーク全体の基盤です。開発テクノロジに関して、.NETは、新しいデータベースアクセステクノロジADO.NETと、ネットワークアプリケーション開発テクノロジASP.NETおよびWindowsプログラミングを提供します。 Technology Win Forms;開発言語に関しては、.NETはVB、VC ++、C#、およびその他の言語のサポートを提供しますが、Visual Studio.NETは.NETを完全にサポートする開発ツールです。

2.1ユニバーサル言語ランタイム

Microsoft.NETは、開発者にまったく新しい開発フレームワークをもたらします。CommonLanguageRuntime(C ommon Language Runtime、C LR)は、このフレームワークの下部にあり、このフレームワークの基盤です。読者は、いわゆるCランタイム、VBランタイム、およびJava仮想マシンの概念をすでに理解しているかもしれませんが、共通言語ランタイムは、複数の言語に統合されたランタイム環境を提供します。

さらに、統合された簡素化されたプログラミングモデルなど、より多くの機能と機能を提供します。ユーザーはWin32APIとC OMに混乱する必要はありません。これにより、DLLのバージョンと更新の問題が回避され、アプリケーションのリリースとアップグレードが大幅に簡素化されます。 ;複数の言語間の相互作用。たとえば、C ++で記述されたクラスは、VBでも使用できます。自動メモリおよびリソース管理など。

Microsoft.NETは、これらの開発者が夢見る機能を実現する共通言語ランタイムに基づいています。ユニバーサル言語ランタイムに基づいて開発されたコードは、制御コードと呼ばれます。実行手順は、おおまかに次のとおりです。最初にユニバーサル言語ランタイムでサポートされているプログラミング言語を使用してソースコードを記述し、次にユニバーサル言語ランタイムのコンパイラを使用して独立したコードを生成します。マシンのMicrosoftIntermediate Language(MIL)は、同時に、操作に必要なメタデータを生成し、Just In Timeコンパイラ(JITC)を使用して、コードの実行中に実行する対応するマシンコードを生成します。

2.2基本クラスライブラリ

もちろん、開発者にとっては、共通言語ランタイムによって提供される新機能に加えて、開発者に提供するプログラミングインターフェイスにも関心があります。これが基本クラスライブラリです。この基本的なクラスライブラリのセットには、入力と出力からデータアクセスまですべてが含まれ、統合されたオブジェクト指向の階層的で拡張可能なプログラミングインターフェイスを提供します。ドット区切りのメソッドを使用しているため、クラスライブラリを簡単に見つけて使用できます。たとえば、基本クラスライブラリのルート、その名前はSystem、データアクセスを提供するクラスライブラリの名前はSystem.Dataです。これを使用する場合、開発者は自分のアプリケーションで必要な基本クラスライブラリへの参照を追加するだけでよく、このクラスライブラリのすべてのメソッドやプロパティなどを使用できます。従来のWindowsプログラミングと比較して、基本クラスライブラリの使用と拡張は非常に簡単であり、開発者は次世代のインターネットに基づいてネットワークアプリケーションを効率的かつ迅速に構築できます。

2.3 ADO.NET

ほとんどすべてのアプリケーションは、単純なテキストファイルから大規模なリレーショナルデータベースまで、さまざまなタイプのデータにアクセスする必要があります。Microsoft.NETのデータベースにアクセスするためのテクノロジーはADO.NETです。

ADO.NETは、データベースに接続し、コマンドを実行し、レコードセットを返すためのクラスライブラリのセットを提供します。以前のADO(Active Xata Object)と比較すると、ConnectionオブジェクトとCommandオブジェクトは非常に似ており、ADO.NETの革新が主に反映されています。次の側面で:

まず、ADO.NETはXMLの強力なサポートを提供します。これは、ADO.NETの主要な設計目標でもあります。ADO.NETでは、XMLリーダー、XMLライター、XMLナビゲーター、XMLドキュメントなどを使用して、XMLデータを簡単に作成および使用でき、W3CのXSLT、DTD、XDRおよびその他の標準をサポートします。ADO.NETのXMLのサポートは、XMLがMicrosoft.NETでのデータ交換のための統一された形式になるための基盤も提供します。

次に、ADO.NETは、データセットの概念を導入しました。これは、メモリ内に存在し、データのリレーショナルビューを提供するデータバッファです。データがリレーショナルデータベースからのものかXMLドキュメントからのものかに関係なく、人々は統合プログラミングモデルを使用してデータを作成および使用できます。これは、元のRecordsetオブジェクトを置き換え、プログラムの対話性とスケーラビリティを向上させ、特に分散アプリケーションに適しています。

さらに、いくつかの新しいオブジェクトがADO.NETに導入されました。たとえば、データリーダーを使用して、データを効率的に読み取り、読み取り専用のレコードセットを生成できます。

つまり、ADO.NETは、一連の新しいオブジェクトとプログラミングモデルを通じて、Microsoft.NETでのデータ操作を非常に便利で効率的にし、XMLと緊密に統合します。

2.4 ASP.NET

ASP.NETは、Microsoft.NETのネットワークプログラミング構造であり、ネットワークアプリケーションの構築、実行、および公開を非常に便利かつ効率的にします。ASP.NETについては、次の側面から学ぶことができます。

(1)Webフォーム。

ASP.NET WEBフォームの設計目的は、開発者がWebフォームを非常に簡単に作成できるようにすることです。これにより、VBの迅速な開発モデルがネットワーク開発に導入され、ネットワークアプリケーションの開発が大幅に簡素化されます。具体的には:ASP.NETは、スクリプト言語だけでなく、複数の言語をサポートできます。ユニバーサル言語ランタイムでサポートされているすべての言語をASP.NETで使用できます。現在のASP(アクティブサーバー)では、コードとコンテンツが分離されています。ページ)開発中、コンテンツとスクリプトはインターリーブされ、メンテナンスとアップグレードは困難です。これらを分離することで、開発者と設計者はより適切に連携し、開発効率を向上させることができます。さらに、ASP.NETにサーバー側のコントロールを導入することで、 VBと同様の迅速な開発がWeb開発に適用されるため、Webフォームの作成効率が大幅に向上し、サーバー側のコントロールは拡張可能であり、開発者は必要なサーバー側のコントロールを作成できます。

(2)ASP.NETWebサービス。

Webサービスは、次世代のプログラム可能なネットワークの中核です。実際には、今日のCOMオブジェクトを使用するのと同じように、インターネット内のオブジェクトを便利に表現および使用するために使用できる名前付きのネットワークリソースです。違いは、ネットワークの使用と表現です。サービスは、SOAPまたはHTTPを介して実装されます。ASP.NETでは、ネットワークサービスを構築して使用すると非常に便利です。ASP.NETでWebサービスを構築するには、サフィックスが.ASMXのファイルを作成します。このファイルに表示するメソッドを追加します。Webサービスのビルダーは、SOAPとXMLの詳細を理解する必要はありませんが、焦点を当てるだけで済みます。独自のサービス自体に焦点を当てることは、独立したソフトウェアサービス開発者に良い機会を提供します。ネットワークサービスを使用する最も簡単な方法は、HTTPプロトコル(HTTPGETまたはHTTPPOST)を使用することであり、ユーザーはネットワークサービスに直接アクセスするだけで済みます(。 ASMXファイル)URL;もちろん、ユーザーは、SOAPを介して独自のアプリケーションでWebサービスをより柔軟に使用することもできます。

(3)ASP.NETアプリケーションフレームワーク。

ASP.NETアプリケーションは解釈されたスクリプトではなくなりましたが、コンパイルして実行し、柔軟なバッファリングテクノロジと組み合わせることで、パフォーマンスが大幅に向上しました。ASP.NETアプリケーションフレームワークは共通言語ランタイムに基づいているため、ネットワークを公開します。アプリケーションは、コンポーネントのリリースであっても、ファイルをコピーするプロセスにすぎません。Webアプリケーションを更新および削除するには、ファイルを直接置換/削除できます。開発者は、アプリケーション構成情報をXML形式のファイルに保存できます。開発者は、アプリケーションプログラムを個別に管理でき、より多くの種類の認証およびセキュリティ管理方法を提供し、信頼性やその他の側面を大幅に向上させます。

2.5 WinForms

従来のWindowsベースのアプリケーション(Win Forms)は、依然としてMicrosoft.NET戦略の不可欠な部分です。Microsoft .NETで従来のWindowsベースのアプリケーションを開発する場合、Active Xコントロールや豊富なWindowsインターフェイスなどの既存のテクノロジを使用するだけでなく、共通言語ランタイムに基づいて開発することもでき、ADO.NETとネットワークサービスを使用することもできます。など、DLL地獄の回避や多言語サポートなど、.NETの新機能も実現できます。

2.6開発言語

上記の紹介から、Microsoft .NET開発フレームワークが複数の言語をサポートしていることはすでにわかっています。現在のベータ版では、VB、C ++、C#、Jscriptの4つの言語と、それらの間の深い相互作用をサポートしています。さらに、MicrosoftはMicrosoft .NET用のコンパイラと開発ツールのサードパーティ製をサポートしています。つまり、市場に出回っているほとんどすべてのプログラミング言語をMicrosoft.NET開発フレームワークに適用できます。このようにして、開発者は好きな言語を自由に選択できます。このオープンでインタラクティブな機能は、まさに開発者が気に入っている機能です。

MicrosoftがMicrosoft.NETにまったく新しいC#言語を導入したことを指摘する必要があります。このまったく新しいオブジェクト指向言語により、開発者は低レベルのシステムレベルから高レベルのビジネスコンポーネントまでさまざまなアプリケーションをすばやく構築できます。C#は、強力な機能と柔軟性を確保しながら、VBと同様の迅速な開発をCおよびC ++にもたらし、.NET用に特別に設計されています。たとえば、C#ではXMLデータの直接マッピングが可能です。データタイプなどに関して、これらの機能の組み合わせにより、C#は優れた次世代ネットワークプログラミング言語になります。同時に、Microsoft.NETは元のVBとC ++に大幅な改善を加え、Microsoft.NET開発フレームワークのニーズにより適したものにしました。たとえば、Visual Basic .NETでは、継承、構造化エラー処理などのオブジェクト指向の機能が追加されました。管理可能なC ++拡張機能により、C ++を使用してMicrosoft.NETアプリケーションを開発する効率が大幅に向上します。

Visual Studio .NETは.NET開発フレームワークと緊密に統合されており、インターネットアプリケーションを構築するための優れたツールです。Visual Studio .NETは、統合された統合開発環境とツールを提供することにより、開発者の効率を大幅に向上させます。複数の言語サポートを統合します。サーバー側の開発を簡素化します。ネットワークサービスを効率的に作成および使用する方法を提供します。

.NETフレームワークの主な目的の1つは、COM開発を容易にすることです。COM開発プロセスで最も難しい部分は、COMの基本構造です。したがって、COM開発を簡素化するために、.NETフレームワークは、参照計算、インターフェイスの説明、登録など、開発者の目から見てCOMに密接に関連するすべてのタスクを実際に自動的に処理します。これは、.NETフレームワークコンポーネントがCOMコンポーネントではないことを意味するものではないことを理解する必要があります。実際、Visual Studio 6.0を使用するCOM開発者は、.NETフレームワークコンポーネントを呼び出すことができます。彼らの意見では、後者はiUnknownデータを使用するCOMコンポーネントに似ています。対照的に、Visual Studio .NETを使用する.NETフレームワーク開発者は、COMコンポーネントを.NETフレームワークコンポーネントと見なします。

誤解を避けるために、この関係をここで具体的に説明する必要があります。COM開発者は、.NETフレームワーク開発者が実行時に自動的に実行できるほとんどのことを手動で実行する必要があります。たとえば、COMコンポーネントのセキュリティモジュールは手書きである必要があり、モジュールが占有するメモリを自動的に管理することはできません。COMコンポーネントをインストールするときは、登録エントリをWindowsレジストリに配置する必要があります。.NETフレームワークの場合、これらの機能は実行時に自動化されます。たとえば、コンポーネント自体は自己記述型であるため、Windowsレジストリに登録せずにインストールできます。

COMをMicrosoftTransaction Server(MTS)およびDistributed COM(D COM)と組み合わせると、COM +になります。COM +は、中間層に一連のサービスを提供します。特に、COM +は、プロセス管理機能とデータベースおよびオブジェクト接続プール処理機能を提供します。将来のバージョンでは、パーティショニングと呼ばれる機能も提供する予定です。これは、アプリケーションサービスプロバイダー向けに特別に設計された、より強力なプロセス分離機能です。COM +サービスは、主に中間層アプリケーション開発用であり、主に大規模分散アプリケーションに信頼性とスケーラビリティを提供します。これらのサービスは、.NETフレームワークによって提供されるサービスを補足するものです。これらのサービスには、.NETフレームワーククラスを介して直接アクセスできます。

2.7その他の機能

言及する価値のある.NETフレームワークのいくつかの要素があります。1つ目は、セキュリティシステムと構成システムです。2つのシステムは連携して、安全でないコードを実行する可能性を効果的に抑制し、アプリケーションを構成するときに「DLL地獄」が直面する課題を大幅に軽減します。

セキュリティシステムは、開発者と管理者に複数のコード処理権限(「オン」または「オフ」だけでなく)を与える非常に詳細な事実ベースのシステムです。将来的には、コード自体のコア要素に基づいて、上記の権限を実装する方法を決定します。たとえば、.NETフレームワークアプリケーションが特定のシステムにダウンロードされると、一連のアクセス許可(一時ディレクトリへの書き込みアクセス許可など)が適用されます。ランタイムは、アプリケーションに関する事実情報(ダウンロード元、有効な署名を使用しているかどうか、システムへのアクセスの正確さなど)を収集し、管理ポリシーに従ってアプリケーションの実行を許可するかどうかを決定します。ランタイムは、要求されたすべてのアクセス許可を承認できないことをアプリケーションに通知し、アプリケーションが実行を続行するかどうかを決定できるようにすることもできます。この種のセキュリティシステムを保証することで、多くのアプリケーション構成の問題が解決されます。

開発者と管理者(そして最終的にはユーザー)が直面する最大の課題の1つは、バージョン管理です。新しいアプリケーションのインストール後にすべてが麻痺し、その前にシステムが非常に良好に実行されている場合、最も可能性の高い理由は、新しくインストールされたアプリケーションがいくつかの共有ライブラリを書き換え、修正されている可能性が高いことです。既存のアプリケーションで使用されているプログラムが間違っています。この状況は非常に頻繁に発生するため、人々はそれを「DLL地獄」と呼びます。.NETフレームワークのいくつかの高度な機能により、「DLL地獄」現象を完全に排除できます。まず第一に、それは非常に強力な内部命名システムを持っており、同じ名前のために2つのライブラリが互いに間違われるのを効果的に防ぐことができます。

さらに、「並列」構成と呼ばれる新機能も提供します。前の例で新しくインストールされたアプリケーションが共有ライブラリを上書きする場合、既存のアプリケーションはライブラリを修復できます。既存のアプリケーションを再起動すると、すべての共有ファイルがチェックされます。ファイルが変更されており、変更に互換性がないことが判明した場合は、ランタイムに使用可能なバージョンを抽出するように要求できます。強力なセキュリティシステムのおかげで、実行時に安全に操作を実行できるため、アプリケーションは独自の修復作業を完了します。

つまり、Microsoft.NET開発フレームワークは、共通言語ランタイムに基づいて、完全な基本クラスライブラリ、次世代のデータベースアクセステクノロジADO.NET、およびネットワーク開発テクノロジASP.NETを開発者に提供します。開発者はさまざまなものを使用できます。言語とVisualStudio.NETにより、次世代のネットワークアプリケーションを迅速に構築できます。関連するインターネット標準および技術の普及に伴い、ますます多くの開発者がこの開発構造を採用し、豊富で多様な次世代インターネットアプリケーションを開発することが予測されます。


おすすめ

転載: blog.csdn.net/deniro_li/article/details/108807959