何ですか.Net, IL, CLI, BCL, FCL, CTS, CLS, CLR, JIT
4023 ワード
何ですか.NET?
起源:ビル・ゲイツは2000年のProfessional Developers ConferenceでNext Generation Windows Serviceという新しいプラットフォームを紹介した.NET.
ソフトウェア層:.NETはオペレーティングシステムとプログラミング言語の間のソフトウェア層と見なすことができ、C#,VBを含む多くのプログラミング言語をサポートすることができる.NET、C++、F#、など.
管理コードを生成するためのフレームワーク、プラットフォーム:従来のコンパイル方式は「ソースコード→コンパイル→実行可能ファイル」である.NETでのコンパイル方式は「ソース→コンパイル→プログラムセット→実行可能ファイル」です.コンパイルされたプログラムセットにはILコードとメタデータが含まれ,実行時にマシンコードに再変換される.
開発から実行までの段階では、開発段階である.NETは膨大なクラスライブラリを提供し、プログラムの実行段階で、NETはCLRランタイム環境を提供して、リアルタイムでプログラムをコンパイルして、安全検査を行って、ごみの回収を実行して、メモリなどを管理します.
规范:.NETには、CIL、BCL、FCL、CTS、CLSなど、多くの仕様が含まれています.
ILとは?
IL,Intermediage Language,中間言語,CPUが直接実行できるローカルマシン言語ではなく,コンピュータが認識できる命令に変換する前に,「Just in time」と呼ばれる二次コンパイルプロセスを行う.はい.NETのフレームワークの下で、いかなる言語、例えばC++、VB.NET,C#,などは,それぞれのコンパイラによってコンパイルされた後,中間言語に変換される.ILには、CIL、Common Intermediate Languageという2つの呼び方があります.MSIL, Microsoft Intermediate Language.
ILコードを表示します.ここを参照してください.http://www.cnblogs.com/darrenji/p/3967669.html
CLIとは?
CLI,Common Language Infrastructure,共通言語基礎,.NETの様々な規範はこの基準に従っている.
BCLとは?
BCL, Basic Class Library, .NEが提供するベースクラスライブラリ.
コンソールプロジェクトを作成します.
コンソールにマウスを止め、F 12を押します.
ConsoleがSystemのメンバーであることを発見し、Systemをクリックします.
Systemがmscorlibのメンバーであることを発見し、mscorlibをクリックします.
発見mscorlibはC:Program Files(x 86)Reference AssembliesMicrosoftFrameworkにあるプログラムセットです.NETFramework\v4.5\mscorlib.dll
つまりmscorlibは含まれています.NETのベースクラスライブラリ.
stringタイプはベースクラスライブラリに属していますか?
stringキーにマウスを止め、F 12を押します.
stringは実際にSystemであることが分かった.Stringタイプ、もとは.NETはキーワードstringとCLI標準SystemをStringがマッピングされました.
このようにbtyeはSystemをマッピングする.Byte,shortはSystemをマッピングした.Int 16など.
string、byte、shortなど、これらはすべてベースタイプです.したがって,言語本省のキーワードとCLIのタイプをマッピングするものは,すべてベースタイプと呼ぶ.
FCLとは?
FCL、Framework Class Library、フレームクラスライブラリ、提供されるクラスライブラリはもっと多く、BCLはFCLのサブセットです.例えば、ASP.NET MVCではSystemが提供されている.Web.MVC.
CTSとは?
CTS,Common Type System,パブリックタイプシステム.CTSは、クラス、構造、依頼、クラスのメソッド、フィールド、属性、イベントなど、プログラミング言語で定義可能な態様を規定し、すべてのタイプが暗黙的にSystemから継承するなどの制約も定義する.Objectタイプ.
CLSとは?
CLS、Common Language Specification、共通言語仕様は、CTSの基準に完全に合致しなければならない.CTSのサブセットである.例えばC#コンパイルで生成されたプログラムセットには多くのクラスがあり、VBコンパイルで生成されたプログラムセットにも多くのクラスがあります.今、VBコンパイルではC#プログラムセットのあるクラスを参照する必要があります.どうすればいいですか.
C#プログラムセットを必要とし、参照されるクラスがCLS仕様に合致する必要があります.NETはCLSCompliant特性を用意してくれた.
[assembly:CLSCompliant(true)]
public class SomeClass
{
}
CLRとは?
CLR,Common Language Runtime, .ILコードをマシンコードに するにはCLRによる コンパイルが である. まかな は のとおりです.
プログラミング コードコンパイル プログラムセット.プログラムセットのPE/OFFヘッダには、Windowsオペレーティングシステムの と のための が まれています.CLRヘッダはオペレーティングシステムにこれが1つであることを す.NETプログラムセット;プログラムセットリストには、プログラムセット 、プログラムセットに まれるリソース、プログラムセットを するファイルなど、プログラムセット の が されています.メタデータは、モジュール、タイプ、タイプメンバー、タイプメンバーの など、プログラムセットに まれる を します.
CLR :アプリケーションドメインの 、プログラムセットのロードと 、セキュリティチェック、ILコードJITをマシンコードにコンパイル、 、ゴミ など.
:
CLRがどのようにプログラムセットをロードするか、およびプログラムセットバージョンポリシーhttp://www.cnblogs.com/darrenji/p/4179916.htmlがインストールされているかを する.NET Framework、.NET Frameworkのバージョン 、CLRバージョン http://www.cnblogs.com/darrenji/p/3977406.html CLRがどのようにロードされて するかのhttp://www.cnblogs.com/darrenji/p/4159259.html
JITとは?
JIT,just in time,インスタントコンパイル.CLRではILをマシンコードに する をJITコンパイラに せる.インスタントコンパイルは、メソッドが に び されたときにのみ します.