English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
.NET
Colin Fahey

1. の定義を.NET

という用語は、次のコレクションを参照して「.NET」の技術:
( 1 ) Framework Class Library (FCL)
( 2 ) Intermediate Language (IL)
( 3 ) Common Language Runtime (CLR)

1.1 Framework Class Library (FCL)

Framework Class Library (FCL)のクラスは、大規模なセットをサポートする:
*容器(Array, String, List, ...)
*マルチスレッディング(スレッド、スレッドプール)
*ネットワーキング(ソケット、プロトコル、クライアント、サーバー)
*ファイル操作
*データストリーム
*パース(正規表現、 XML取扱)
*数学のオペレーション
*例外処理
*言語機能(反射、スタックトレースは、動的なコード)
Framework Class Library (FCL) 、多くの異なるプラットフォームが実装さ( Windows, Linux, MacOS, ...  )です。
したがって、これを使用して、 1つのプログラムを開発できるFramework Class Library (FCL)なしの違いは重要なの知識をターゲットとするプラットフォームです。
Framework Class Library (FCL)の有用なモデルの基本的な概念が含まれ、コンピュータサイエンス(例えば、 「スレッド」 、 「ソケット」 、 「ストリーム」 、等) 。
ある意味では、各Framework Class Library (FCL)によりサポートされるオペレーティングシステムを近代的、高レベルでは、一貫したプログラミングインターフェイスです。
1つのFramework Class Library (FCL)は、最も先進的、包括的、均一的に設計、ドキュメントのコレクションを十分に利用できるようにプログラマーの機能とデータの種類です。
残念ながら、マルチメディアの側面は、次の部分はないのFramework Class Library (FCL) :オーディオ録音、オーディオ再生、ビデオ録画、ビデオの再生、 3Dレンダリング、ジョイスティックの入力、デバイスコントロール( CD/DVD, ...  )など
Microsoftには、 DirectXライブラリのバージョンの.NETにWindowsオペレーティングシステムです。
C#ラッパーOpenGLには、 OpenAL 、 GLUT 、 SDL 、等が、これは非常に便利されていないようなマルチメディア機能が含まれているコアに含まれてFramework Class Library (FCL)とエンドユーザー「ランタイム」ライブラリです。
のいずれかの開発途上の問題を特定のライブラリを使用するプログラムが意図したのは、エンドユーザが必要とのセットのサポートを選択したライブラリです。
便利されていない場合に必要なライブラリをダウンロードしてインストールは、エンドユーザーが選択していないかもしれないこれらのライブラリを使用するプログラムを必要とします。
エンドユーザーにも消極的であるかもしれないのライブラリをダウンロードするまで待つより、オンラインの場所です。
プログラムを開発する必要がある場合、エンドユーザーを見つけ、取得、およびインストールライブラリは、すべてを支援し、特定のプログラムから、入力し、エンドユーザーが使用してプログラムを選択していない。
たとえば、多くのオープンソースプロジェクトを必要とエンドユーザを見つけ、ダウンロード、およびインストールするには、多くの異なるライブラリから他のオープンソースプロジェクト(例: openssl 、 zlib 、 libpng 、 libjpg 、 glut 、 ...),これは時間がかかり、複雑な、イライラする、との可能性がでエンドユーザを選択して別のプログラムや製品を検索します。
どうやら「Windows Update」サービスを展開するのに役立ちます.NETバージョン1.1をWindowsのランタイムライブラリを利用します。
これらのランタイムライブラリが含まれているオペレーティングシステムWindows XPです。
したがって、 Windowsプログラムの作成が必要.NET 1.1完全に合理的なようです。
また、 Microsoft'sのランタイムライブラリを実装するために、再配布が自由に.NET年5月Framework Class Library (FCL)ように、開発者はこれらのライブラリを供給エンドユーザのライブラリを既にお持ちのwhoはありません。
Windows Vistaオペレーティングシステムの.NET 3.0には、ランタイムライブラリ( .NET Framework Class Librariesとを組み合わせて、ライブラリなどのいくつかの新しい「Windows Presentation Foundation」 (WPF) ) 。
したがって、 .NET 2.0と.NET 3.0のプログラムを導入する必要はありませんWindows Vistaの.NETのインストーラのランタイムライブラリです。

1.2 Intermediate Language (IL)

Intermediate Language (IL)は、小型のシンプルなセット、プロセッサに依存しない、オペレーティングシステムに非依存の指示を完全に表現するのに十分なデータ構造と機能の異なる多くの( C++, C#, F#, Visual Basic, Java, Ocaml, ...  )高レベルのプログラミング言語です。
ソースコードの高レベルな言語で書かれてコンパイルできるフォーム「Intermediate Language」ダウンして対応する。
コードを「Intermediate Language」フォームで簡単に他のコードを組み合わせて「Intermediate Language」フォームです。
コンピュータプログラム( 「ソフトウェア」にも名前)を含めることができますいくつかの異なるソースコードで書かれ、高レベルの言語(例えば、 C# 、 C++ 、およびVisual Basic ) 。
すべてのソースコードをコンパイル(変換)を「Intermediate Language」のフォーマットを組み合わせることにより、簡単に他のコードをコンパイルします。
のプログラムを「Intermediate Language」フォームに変換されるマシンは、通常の具体的な手順(例えば、 CPU指示)非常に少し前に実行される(例えば、 「Just-In-Time」 (JIT)の変換を指示ILをCPU ) 。
しかし、プログラムで実行されることもあります。 Virtual Machine (VM)の文脈の中で解釈Intermediate Language (IL)の指示に設計されています。
コード様々な高レベルの言語で書かれて( C#, F#, Ocaml, C++, Visual Basic, ...  ) 、コンパイルできるIntermediate Language (IL)フォームを任意のコンパイラを使用して、適切なサポートされたプラットフォーム( Windows, Linux, MacOS X, ...  ) 、およびその結果のファイルは、埋め込まれたIntermediate Language (IL)コードは、プラットフォームに依存しないと、どのプラットフォームで実行さを持つこと.NET Common Language Runtime (CLR)の実装です。
Intermediate Language (IL)のコンパイラによって生成されたコードは本質的に独立しては、コンパイラのプラットフォーム上で実行されます。

1.3 Common Language Runtime (CLR)

Common Language Runtime (CLR)は、機構の責任を負うコードを実行するに提出さIntermediate Language (IL)フォームです。
Common Language Runtime (CLR)の様々なサービスを提供します。
Common Language Runtime (CLR)年5月のIntermediate Language (IL)のコードを変換する手順では自生しているプラットフォーム(例えば、 CPU指示) 。
Intermediate Language (IL)からのコンバージョンをプラットフォーム固有の(例えば、固有のCPU )の指示に事前にいかなる事態が起こる場合が実行される(つまり、 「Ahead-Of-Time」 (AOT)変換) 、または徐々に事態が起こる場合、そのプログラムを実行する(すなわち、 「Just-In-Time」 (JIT)変換)です。
コンバージョンを使用Just-In-Time (JIT)の進化の統計情報をプログラムの実行を動的に最適化して、変換コード(例:よく使われるループとブランチを識別し、行動を最適化して観測によると、 (それ自身に依存して現在のデータとイベント) ) 。
割り当てられたメモリのCommon Language Runtime (CLR)に代わって管理するプログラムです。
したがって、このプログラムはありませんCLR確実に割り当てられたメモリのアクセスに失敗するようなメモリを参照しながら続く、と確実にメモリの割り当ては、予約のキャンセル、および将来のメモリの割り当てが利用可能にした後、再び処分のすべてのプログラムを参照してこのような配分です。
Common Language Runtime (CLR)プログラムを検出するときに参考にするには、もはやメモリの割り当て、およびメモリの割り当ては、スパムを解除します。
Common Language Runtime (CLR)のいずれかを使用し、様々な「ガーベジコレクション」のアルゴリズム(例: 「mark-and-sweep」 )を識別してメモリブロックを取り戻すにアクセスできなくなるプログラムです。
プログラムの例外をハンドルのCommon Language Runtime (CLR)です。
Common Language Runtime (CLR)の安全保障政策を強化します。
Common Language Runtime (CLR)のメカニズムを使用して「P/Invoke」プラットフォーム固有のライブラリをロードすると起動(呼び出し)関数にこれらのライブラリです。

2. .NET ( FCL, IL, CLR )実装されMicrosoft

2.1 はじめに

( FCL, IL, CLR )の.NETパラダイムをMicrosoftが実装されています。
の最新バージョン、 「3.0」 、 2006.10に公開された。
.NET 2.0 Framework Class Librariesと.NET 3.0で構成するいくつかの新しいライブラリなどの「Windows Presentation Foundation」 (WPF)に関連付けられて「Silverlight」 (旧WPF/Eは、以前Sparkle 、 ...  )ブラウザのプラグインをFirefoxとInternet Explorerです。
Microsoft分割して.NET 2.0して異なる2つのソフトウェアパッケージ:
( 1 ) .NET Framework Version 2.0 Redistributable Package
再頒布可能パッケージが必要とされ、エンドユーザプログラムを実行する.NETパラダイムを構築します。このパッケージの開発者によってインストールされる必要がありますをインストールする前に、使用して、下記の.NET Software Development Kit (SDK)です。
( 2 ) .NET Framework Version 2.0 Software Development Kit
(SDK)のソフトウェア開発キットは、開発者が必要となります。 C#のソースコードをコンパイルするプログラムファイルをIntermediate Language (IL)です。
このパッケージに含まれ、さまざまな開発ツール、およびドキュメントです。

2.2 .NET Framework Version 2.0 Redistributable Package

再頒布可能パッケージが必要とされ、エンドユーザプログラムを実行する.NETパラダイムを構築します。
このパッケージの開発者によってインストールされる必要がありますをインストールする前に、使用して、下記の.NET Software Development Kit (SDK)です。
は、次のインターネットページは、メイン.NETダウンロードページ:
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
このセクションのリンクを名前「.NET Framework Version 2.0 Redistributable Package」は、 3つのハードウェアプラットフォーム: 「Download x86 version」 、 「Download x64 version」 、 「Download IA64 version」です。
たとえば、以下のリンク「Download x86 version」 、リードしてページの権利「Microsoft .NET Framework Version 2.0 Redistributable Package (x86)」
(ファイル名: dotnetfx.exe ;バージョン: RC1 ;公開された日付: 3/22/2006 ;言語:英語;ダウンロードサイズ: 22.4 MB )
ローカルにキャッシュされたバージョン(参考のためにのみ;潜在的に旧版) :
microsoft_dot_net_runtime_libraries_v2_0.exe
.NET Framework Version 2.0 Redistributable Package
23510720 バイト
MD5: 93a13358898a54643adbca67d1533462
(ファイル名が変更されて、ここからは、元のファイルの名前を「dotnetfx.exe」それに付属するバージョンの混乱を避けるためにも1.1インストーラ「dotnetfx.exe」名前です。 )

2.3 .NET Framework Version 2.0 Software Development Kit (SDK)

(SDK)のソフトウェア開発キットは、開発者が必要となります。 C#のソースコードをコンパイルするプログラムファイルをIntermediate Language (IL)です。
このパッケージに含まれ、さまざまな開発ツール、およびドキュメントです。
は、次のインターネットページは、メイン.NETダウンロードページ:
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
このセクションのリンクを名前「.NET Framework Version 2.0 Software Development Kit」は、 3つのハードウェアプラットフォーム: 「Download x86 version」 、 「Download x64 version」 、 「Download IA64 version」です。
たとえば、以下のリンク「Download x86 version」 、リードしてページの権利「.NET Framework 2.0 Software Development Kit (SDK) (x86)」
(ファイル名: setup.exe ;バージョン: 2.0 ;公開された日付: 11/7/2005 ;言語:英語;ダウンロードサイズ: 354.0 MB )
ローカルにキャッシュされたバージョン(参考のためにのみ;潜在的に旧版) :
microsoft_dot_net_sdk_v2_0.exe
.NET Framework Version 2.0 Software Development Kit (SDK) (x86)
371230904 バイト
MD5: 1a52cb6000c4390b6265671e031f9d64
(ファイル名が変更されて、ここからは、元のファイルの名前を「setup.exe」混乱を避けるためにそれを「setup.exe」のすべてのインストールファイルの名前です。 )

3. Microsoft Visual C# : Integrated Development Environment (IDE)プログラム

3.1 はじめに

Integrated Development Environment (IDE)するプログラムのソースコードを編集する開発者を有効にすると様々なツールを実行(例:コンパイラ、デバッガ、 ... )の文脈の中で、シングルルーム、統合プログラムでは、視覚表示やコントロールをいっぱいに役に立つ。
「Microsoft Visual C# 2005 Express Edition」はノーコスト(なし支払い方法が必要となります。 ) Microsoftからダウンロードできます。 IDEがご利用いただけます。
以外のデータベースの開発、これを区別することはほぼ不可能ノーコスト製品からの小売対向、 「Microsoft Visual C# 2005」です。
私頻繁に使用する両製品は、プロとrecreationally 、と私はまだ気づい任意の実用的な製品の違いは。
microsoft_vcsharp_2005_express_ide.gif

3.2 公式リンク

インターネットのサイトのメインページ:
http://msdn.microsoft.com/vstudio/express
このページに関する「Visual C# Express Edition」 :
http://msdn.microsoft.com/vstudio/express/visualcsharp
「Download Now」 ]ボタンをクリックして、ページの右側のダウンロードを選択するオプションを選択します。
( 1つの方法はインストーラプログラムを起動するには、各ファイルのダウンロード中にMicrosoftからインストールを開始します。
2番目の方法は、フルCD-ROM 「ISO」のイメージをダウンロードするには、これにより将来のオフラインインストールを開始します。
ISOのイメージは、 「VCS.iso」 ( 451,837,952バイト; CRC 55884F2C )を32ビットx86英語、 5月にやけどを負った「Nero 7 Ultra」してCD-ROMを使用して、たとえばです。 )

4. .NET ( FCL, IL, CLR )実装されたMono Project

4.1 はじめに

.NETパラダイム( FCL, IL, CLR )され、参加者のグループによって実装さMono Projectとして知られています。

4.2 公式リンク

プロジェクトのサイト内検索:
http://www.mono-project.com
ソフトウェアのダウンロードページ:
http://www.mono-project.com/Downloads

4.3 ローカルにキャッシュされたバージョン

ローカルにキャッシュされたバージョンのインストーラ(参考のためにのみ;潜在的に旧版) :
mono-1.2.4-gtksharp-2.8.3-win32-3.exe
Mono 1.2.4 with Gtk# 2.8.3 Installer for Windows 2000 and above
51323790 バイト
MD5: 95cbd476c0555a9a40f47e58e2283cbe

4.4 .NET 2.0で開発をMono

の「mcs」コンパイラ、およびドキュメンテーション、 11月2006として、主に関係がC# 1.0とFCL 1.1です。
しかし、 「mcs」コンパイラをコンパイルすることができますC# 2.0コードが含まれていませんジェネリックまたはベースの汎用的な特徴は、しかし、 APIを制限して1.0です。
これを行うにフルC# 2.0開発、 FCL 2.0ライブラリ、コンパイラを使用して「gmcs」です。
詳細については、以下のページを参照してMonoサイト内検索:
http://www.mono-project.com/CSharp_Compiler

5. SharpDevelop : Integrated Development Environment (IDE)オープンソースプログラム

5.1 はじめに

Integrated Development Environment (IDE)するプログラムのソースコードを編集する開発者では、様々なツールを実行する(例:コンパイラ、デバッガ、 ... )の文脈の中で、シングルルーム、統合プログラムでは、視覚表示やコントロールをいっぱいに役に立つ。
SharpDevelopは、優れた、オープンソースのIDEプログラムをC# / .NET開発します。
Microsoft Visual C# IDEこのIDEによく似ていると、いくつかの点で、 SharpDevelop IDEが改善さMicrosoft時の製品です。
しかし、 Microsoft Visual C#は、いくつかの機能(例:デバッグ)は、 SharpDevelopプログラムの必要はありません(この文書を執筆している時点) 。
sharp_develop_2_ide.gif

5.2 公式リンク

単純なインターネットサイトのメインページ:
http://www.sharpdevelop.com
このページに関する「The Open Source Development Environment for .NET」 :
http://www.sharpdevelop.com/OpenSource/SD/Default.aspx
のダウンロードページに、これは、詳細については、 1.1と2.0のバージョンのSharpDevelop :
http://www.sharpdevelop.com/OpenSource/SD/Download

5.3 ローカルにキャッシュされたバージョン

ローカルにキャッシュされたバージョンのインストーラ(参考のためにのみ;潜在的に旧版) :
SharpDevelop2_2.0.1.1710_Setup.exe
SharpDevelop2 (2.0.1.1710)
4338287 バイト
MD5: 6626832c202a6c25a399c9e9081f20d4

6. 役に立つC# / .NET / ILツール

6.1 SciTech Software 「.NET Memory Profiler」

dot_net_memory_profiler_graph.gif
dot_net_memory_profiler_table.gif
このプロファイラを示してメモリの割り当て、およびその他のリソースの割り当て、コンパイルしてアセンブリを実行中のプログラムや.NETです。
をリアルタイムでグラフを有効にする人には、を詳細に、どのようにアクションプログラム(行動によって誘発されるなど、ユーザの入力やその他のイベント)に影響を与えるメモリの割り当てとガーベジコレクションです。
テーブルのリストをリアルタイムで表示を有効にするの詳細についてはメモリの割り当てを学ぶ人です。
このプロファイラを即座に、劇的に、明らかに無駄なメモリを使用するプログラムをリアルタイムでDirect3D私は発達している。
ランプのパターンを上方修正すると突然の知らせてください( 「ごみ収集」のために)は、メモリ使用量のグラフを定期的に完全にマッチした、非常に簡単な3次元描画の一時停止は、私のプログラムです。
プロファイラ有効になって私を発見するオブジェクトは一時的な配分を頻繁に大量のメモリを蓄積する、トリガごみ収集頻繁にし、撮影に十分な時間をそれぞれのごみ収集期間を原因で、いくつかの図面をお見逃しなく。
プロファイラのリアルタイムテーブルを明らかに割り当てられたオブジェクトの種類のオブジェクトの種類で最もメモリを消費し、どのメモリを割り当て、最も高かったの消費量(バイト1 2番目) 、および処理を配分率が最も高い。
勉強をリアルタイムでグラフとは、リアルタイムテーブル、有効になって私に焦点を当てる方法を検討して、特定のデータ型は私のコードで使用されています。
頻繁に割り当てを変更するコードを避けるために一時的なオブジェクトは全体の率を大幅に軽減するメモリの割り当てと処分をし、そのための頻度を軽減することごみ収集トリガします。
(私は非常に明らかに信じ「Bytes/sec」統計により、リアルタイムでのメモリの使用に加えて、 「Live instances」です。
)見て非常に急速にこれらのすべてのでは、テーブルの更新フォーマット、および行がどのように選択できるように並べ替え、並べ替えのパラメータを変更すると、いつでも経験により、プログラムの勉強をリアルタイムで非常に魅力的で有益です。
メモリの割り当て応答をユーザーの相互作用は、実行中のプログラムを検討し、急速に適応することのテストにフィードバックして、最も興味深い側面の絞込み検索します。
http://memprofiler.com/download.aspx
(たとえば、 2006 Julyバージョンは、次の属性:バージョン2.6.89 ; 4.3 MB ; USA $127.00 ;ダウンロード14日間の制限版は、費用をかけずに、評価のために。 )

6.2 FxCop : .NETコードアナライザ/評論家

FxCop分析.NETプログラムをコンパイルする(またはコンパイルアセンブリ)と報告書のリストを生成する可能性のある問題で、オリジナルのソースコードです。
可能性、パフォーマンスの問題や安全保障上の問題が識別されます。
符号化条約違反の可能性が識別されます。
FxCopにアクセスする必要はありません、オリジナルのソースコードを行うには、分析します。
プログラムをコンパイルするだけ.NET ( ILを含む)が必要です。
にもかかわらず、報告書FxCop特定の行番号のハイパーリンクを提供し、オリジナルのソースコードです。
の場合、 Microsoft Visual C# 2005 IDEがアクティブには、ハイパーリンクをクリックして、報告書は原因IDEをFxCopワープして関連性の高いソースファイルや行番号です。
FxCopは、私の意見では、むしろぶざまな統合をMicrosoft Visual C# 2005 IDEです。
しかし、セットアップすることは一度、 FxCopを生成するのがとても面白いと潜在的に貴重な報告書です。
この報告書に詳細なアドバイスをする方法については、オリジナルのソースコードを向上させるためです。
と思うことはやりがいのあるプログラムを分析するには、定期的に使用してFxCopです。
私としても驚かないねいくつかのソフトウェア開発プロジェクトや企業の場合に必要なすべてのコードを書いた開発者FxCop収率の警告や批判されています。
ルールを追加またはデータベースから削除さFxCopによると、必要です。
FxCopは、オープンソース、無料、フリープログラムです。
http://www.gotdotnet.com/team/fxcop

6.3 「Reflector for .NET」 : decompiler /アナライザ

インターネットのサイトからLutz Roeder's :
"Reflector is the class browser, explorer, analyzer and documentation viewer for .NET. Reflector allows to easily view, navigate, search, decompile and analyze .NET assemblies in C#, Visual Basic and IL."
勉強できるよう手助けをする人「Reflector」サードパーティ製のライブラリはどのように書き込まれます。
時にはそれ正確に知っておくのは非常に有用なアセンブリがどのようにメソッドを実装します。
予期せぬ場合の動作をする方法や神秘的な方法で、入力し「Reflector」を使用して実装を参照してください。
見て実装され、プログラマは、特定の実装によって生じる諸問題を回避するためのライブラリの方法を使用します。
「Reflector」する友人に送ると教えて助けてくれたの動作の詳細については、不十分なMicrosoftの実装方法を記載された文書のFramework Class Libraries (FCL)です。
「Reflector」のマニュアルをするときに役立つかもしれないライブラリのメソッドにはいくつかの単語で構成さなど、または「イベントハンドラの値を設定する」 。
ライブラリ関数の呼び出しが失敗した場合には、未知の理由(時のすべての有効なパラメータのように見える) 、 「Reflector」を見て入力し、使用しての実施には、ライブラリ関数の失敗の理由を明らかにするかもしれない。
「Reflector」いくつかの「リバースエンジニアリング」を実行するプログラムまたはアセンブリ.NETです。
他のユーティリティ、おそらく「Reflector」自体を含め、収率は、プログラムのソースコードを難読化またはアセンブリソースコードに基づいて構築します。
これは明らかにいくつかのソースの開発者とその投資家の懸念をします。
http://www.aisto.com/roeder/dotnet
( 2006 July : Reflector.zipは、バージョン4.2.45.0 )

7. インターネットのディスカッションフォーラム

Google検索する最良の方法は具体的な質問の回答を探すに任意の件名は、以下の繰り返しが、サイトを検索結果に表示さC#と.NET質問です。
以下のサイトは多くのクールawesome物事を探求する人々が行わC#と.NETです。
面白いと「The Code Project」サイトでは数千人の役に立つの記事、 C# 、 C++ 、およびその他の言語やプログラミングパラダイムです。
http://www.codeproject.com
「MSDN Code Gallery」サイトのサンプルコードには多くの興味深い記事と関連してMicrosoft技術です。
http://code.msdn.microsoft.com
他のインターネットサイトに関連するC#と.NET :
http://www.c-sharpcorner.com
http://www.dotnetfun.com
http://www.programmersheaven.com

8. 一般的なノート

8.1 プラットホームからの独立性

Intermediate Language (IL)は、 「バイトコード」のようなJavaは、プラットフォームに依存しない。
.NETに準拠した任意のコンパイラはプラットフォームに依存しないIntermediate Language (IL)のコードを生成するプログラムやアセンブリのフォームです。
プログラムの実行可能ファイルとしてパッケージされ( 「*.exe」ファイル)必要がありますいくつかのプラットフォーム非依存のコードに固有のオペレーティングシステム、を目的として開始が適切に解釈すると、コンテキストで実行可能なソフトウェアを、特定のオペレーティングシステムです。
しかし、ネイティブの実行可能ファイルのソフトウェア部分のサービスを起動するだけの.NET CLRエンジン、 ILに提出するコードに含まれるソフトウェアファイルを実行されるCLRエンジンです。
Microsoftの実装のオファーの.NETユーティリティ(コンパイラ、 ...),とのFramework Class Libraryの実装の(FCL) 、オペレーティングシステムのみをWindowsです。
.NET実装するために、 Mono Project提供するユーティリティ(コンパイラ、 ...),および実装するために、 Framework Class Library (FCL)のは、次のオペレーティングシステム: Windows 、 Linux 、 MacOS X 、およびBSDです。

8.2 速度に比べてnon-CLR C / C++

Common Language Runtime (CLR)の側面.NETはC#のコンテキストでは、プログラムが実行されます。
「ごみの収集」とCLRを実行するプログラムを起動する機能を有効に「アンマネージ」ライブラリ(ライブラリに実装され、すべてのIntermediate Language (IL) ) 。
すべての機能を超えるのは純粋な数学、純粋な文字列を操作するか、または純粋なメモリコピー、ライブラリが「アンマネージ」関数を呼び出す。
全てのファイル操作、ソケットの操作、描画操作、入力操作(マウス、キーボード) 、出力オペレーション(コンソール) 、プラットフォームのスレッドの操作、高精度、タイマーの操作は、ウィンドウの操作などの関数を呼び出す「アンマネージライブラリ」です。
残念ながら、そのメカニズムのCLRから「アンマネージ」関数を呼び出すには、かなりの量の時間です。
したがって、全体の速度を実行するプログラムのコンテキストでは、 CLR noticablyよりも遅くなることは、プログラムを直接「アンマネージ」関数を呼び出すことができる。
特定の種類のソフトウェアを、速度が重要です。
特定の種類のソフトウェアを、速度は、主観的に重要なの違いは、心理的な経験をする人やソフトウェアを使用しています。
特定の種類のソフトウェアを、スピードの違いを指定して、目標を達成するとエラーが発生します。
マルチスレッド、 CPU増加速度、およびCLRコードを生成する施設の改善を、ソフトウェアの実行に役立つCLRのコンテキストでは、より速く実行します。
しかし、外のCLR任意のコードを実行し、ライブラリを直接呼び出すプラットフォームは必然的に実行するよりも大幅に高速化するソフトウェアについては、 CLRのコンテキスト内で実行します。
CLRの保証をC#ソフトウェアで作られるなど、安全にマネージコードとの間の溝を埋めてアンマネージドコードではないが、コストが削減される。
したがって、任意のプログラムを集中的には非常にプラットフォーム(例: 3次元シミュレーションやゲーム、ファイルのプロセッサ、ネットワークサーバー、等)は、命令を実行する可能性の大きさよりも速くCLR外のCLRときに実行します。
その違いが非常に大きい。
また、任意のプログラムを実行するとかなりの量の低レベルの操作が実行さのデータを外部のCLRよりも大幅に高速にCLRです。
プログラムを実行するCLRのコンテキストで実行するのに有用であることを十分に迅速に多くの実用的な目的のためです。
CPU速度の増加として、および複数の利点としてコードは、より良いCPUs 、プログラムのコンテキストで実行することができるのCLRの他のタスクを使用する場合は、高い割合で計算を必要とします。
しかし、 2008の真ん中のCLRはまだ3Dゲームのあらゆる適切な洗練された、非常に積極的な努力が行われない限りの数を減らすの関数の呼び出しを3次元ライブラリ( OpenGLまたはDirect3D ) 、などの可能性の概念を使用して「シェーダのプログラム」や「ディスプレイリスト」 ;何かの関数呼び出しの数を減らすことです。
colinfahey.com
連絡先情報
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية