.Netとは何ですか?主に何が含まれますか?この記事では、.NET に関する一般的な問題をいくつかまとめます。.NET プラットフォームは比較的初期のものであり、ここ数年で急速に発展しましたが、この記事で紹介されている概念は基本的に変わっていません。
この記事では、.NET に関するよくある質問と回答をいくつかまとめました。これらの .NET のよくある質問は、.NET の全体的な概念を理解したい読者にとって役立ちます。
1. .Net とは主に何ですか?
.Net は、第 3 世代インターネットの高度に分散された環境でのアプリケーション開発を簡素化するために構築された新世代のコンピューティングおよび通信プラットフォームであり、オープンなインターネット標準およびプロトコルに基づいており、異種言語およびプラットフォームでの高い対話性を実現します。
.Net には主に Common Language Runtime と .Net アーキテクチャ クラス ライブラリが含まれています。
2. ネットの主な利点は何ですか?
.Net の主な利点は、クロス言語、クロスプラットフォーム、セキュリティ、オープン インターネット標準とプロトコルのサポートです。
.Net は複数の言語での相互運用性をサポートしています。つまり、ある言語で開発されたコンポーネントは、オブジェクト指向の継承を通じて別のコンポーネントで再利用できます。
.Net は、まず各言語を中間言語 (IL) にコンパイルし、次に実行中にジャストインタイム (Just In Time) コンパイラーを使用してローカル プラットフォーム コードにコンパイルすることにより、異種プラットフォームでのオブジェクトの相互運用性を実現します。 .Net サポート Windows、Linux、Unix のプラットフォームのサポートは開発中です。
.Net は、共通言語ランタイムを通じてリソース オブジェクトとタイプ セーフティを実装します。
.Net は、HTTP、XML、SOAP、WSDL などのインターネット標準の強力なサポートを通じて、リモート サービスの取得、リモート デバイスの接続、異種ネットワーク環境でのリモート アプリケーションとの対話のためのプログラミング インターフェイスを提供します。
3. .Net の共通言語ランタイムは何を意味しますか?
CLR (Common Language Runtime) 共通言語ランタイムは、.net フレームワーク全体の基盤であり、クロスプラットフォーム、クロス言語、コード セキュリティなどの .Net の中核機能を実現するための鍵となります。これは実際にはメモリ内に常駐するエージェント コードの一部であり、.net の実行全体を通じてコード管理を担当します。代表的な例には、メモリ管理、スレッド管理、リモート管理、コード必須セキュリティ タイプなどが含まれます。これらは.net Frameworkの生命線とも言えます。実際、通常の言語ランタイムは、オペレーティング システムの管理機能の一部を委任します。
4. ネット アーキテクチャ クラス ライブラリには何が含まれていますか?
.Netl アーキテクチャ クラス ライブラリは、ランタイムのオブジェクト指向機能に基づいて構築されており、通常の言語ランタイムと緊密に統合された再利用可能なクラスのコレクションです。ソフトウェア開発が大幅に簡素化され、サードパーティのコンポーネントとシームレスに統合するのも簡単です。
.Net アーキテクチャ クラス ライブラリには、主に次のプログラミング モデルのサポートが含まれています。
1. コンソールアプリケーション。
2. スクリプトとホスト アプリケーション。
3. Windows フォーム アプリケーション (Windows デスクトップ GUI アプリケーション)。
4. ASP.Net アプリケーション。
5. Web サービス アプリケーション。
6. Windowsサービスプログラム
5. .Net でサポートされている開発言語は何ですか? .Net 言語の相互運用性とは何を意味しますか?
.Net は市場で 20 以上の言語をサポートしていると主張していますが、現在 Microsoft によって正式にリリースされているのは C#、Visual Basic.Net、マネージド C++、および Jsript だけです。他のメーカーは、開発中のサポート ツールには COBOL、Eiffel、Perl が含まれていると主張しています。 、Smalltalk、Python。
.Net 言語の相互運用性とは、共通言語ランタイム仕様に準拠した言語でのオブジェクト継承のサポートを指します。つまり、ある言語の .Net プラットフォームで開発されたクラスを別の言語で再利用できることによって実現されます。 Microsoft Intermediate Language MIL と呼ばれるもの。つまり、言語コンパイラはまず言語を Microsoft Intermediate Language にコンパイルし、次に対応するプラットフォームでネイティブ コードをコンパイルします。これらはすべて通常の言語ランタイムの仕様に従って行われます。
6. Net はどのプラットフォームをサポートしていますか? クロスプラットフォームの実装はどの程度進んでいますか?
現在 .Net をサポートしているプラットフォームには、Windows 2000、NT4 SP6a、Windows Me、および Windows 98 が含まれます。サポートすると主張するプラットフォームには、Unix、Linux などが含まれます。現在、Linux で .Net プラットフォームを開発しているプロジェクトは、Ximian の Mono プロジェクト、DotGNU、Potable .NET の 3 つです。
7. .Net と COM の関係は何ですか? .Net は COM の終わりを意味しますか?
COM は、コンポーネント オブジェクト間の通信のためのバイナリ標準を定義します。.Net は、コンポーネントの組み込み型システムを通じて同様のメカニズムを提供し、これに別の方法を提供します。 .Net は COM の終わりを意味するものではありませんが、開発者の COM への依存度は大幅に減少します。 .Net は、COM と .Net コンポーネント間の相互運用性をサポートしています。実際、Runtime Callable Wrapper (RCW) を通じて .Net で COM コンポーネントを取得したり、COM Callable Wrapper (CCW) コンポーネントを通じて COM で .Net を取得したりできます。
8. .Net の中間言語 (IL) とは何ですか? .Net プラットフォームで中間言語 (IL) はどのような役割を果たしますか?
.Net の中間言語は、通常の言語ランタイム仕様に基づいてジャストインタイム (Just In Time) コンパイラを通じてローカル コードに変換できる一連の命令を指し、CPU から独立しています。これは、.Net プラットフォームで言語の相互運用性を実現するための中心的なリンクです。すべての .Net プラットフォーム言語は、最初に中間言語 (IL) にコンパイルする必要があります。プログラマは中間言語 (IL) を直接使用してプログラミングすることもできますが、中間言語は .Net オブジェクトの特定の動作を理解したり、プログラムをデバッグしたりするのに非常に役立ちます。
9. .Net の自動ガベージ コレクションとは何ですか? .Net プラットフォームでのプログラミングにどのような変化をもたらしますか?
.Net ガベージ コレクターは、.Net ランタイム マネージド コード全体のメモリ割り当てとタスクの解放を担当します。特定の最適化アルゴリズムを通じて、収集するオブジェクトと時間を選択します。プログラマは、大量のマネージド リソースを解放する場合にのみ、強制的なガベージ コレクションを実行できます。アンマネージド リソースを解放する場合、プログラムの実行中に解放する必要があるリソースは、Dispose() メソッドを実装して処理する必要があります。それは明らかです。それ以外の場合、リソースのリサイクルは .Net ガベージ コレクションに任せられます。
10. Net のマネージド コードとアンマネージド コードは何を意味しますか?
.Net のマネージ コードとは、共通言語ランタイム仕様に準拠し、メモリ管理、スレッド管理、リモート管理、およびコード強制セキュリティ タイプのためにメモリ内のランタイム コード エージェントの対象となるコードを指します。アンマネージ コードとは、メモリ、ファイル、データベースなどのアンマネージ リソース上で動作するコードを指します。通常、これらはランタイム コード エージェントによって管理されず、安全ではありません。マネージ コードをプログラミングする場合は、プログラミング ロジックにのみ注目する必要があり、メモリなどのリソースの管理は共通言語ランタイムに任せられます。ただし、アンマネージ コードをプログラミングする場合、開発者は割り当てと再利用の各側面に注意深く対処する必要があります。管理されていないリソース。
上記の 10 の .NET に関するよくある質問を読んで、.NET プラットフォームについての理解を深めていただければ幸いです。
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/thy822/archive/2009/12/23/5061127.aspx
-