"Runtime" kelimesi yazılımda, derlenmiş bir kod parçasının çalışabilmesi için dışarıdan çağırılması gereken servis kümesi olarak düşünülebilir. Microsoft Foundation Class (MFC) ler yeni bir program yazmak için kullanıldığında, bu programın çalışabilmesi için arka planda mfc42.dll'ine ihtiyaç olması buna başka bir örnek olarak gösterilebilir. Bir başka örnek ise VB6 kullanılarak yazılan bir programda ise msvbvm60.dll'e ihtiyaç vardır veya Java'da yazılım yapıyorsanız Java Virtual Machine (JVM)'e ihtiyacınız vardır.
.NET platformunda bulunan runtime sistemi yukarıdakilere bir ek olarak gösterilebilir. Fakat .NET runtime ile birçok farklı runtime arasındaki en belirgin fark, .NET runtime .NET içerisinde bulunan tüm dilller için ortak 'bir' sistem olmasıdır.
CLR'in kalbi, mscoree.dll veya Common Object Runtime Execution Engine olarak da bilinen bir kütüphaneden oluşmaktadır. .NET içerisinde herhangi bir assembly çalıştırılacağı zaman, ilk olarak mscoree.dll yüklenir ve mscoree.dll de çalışması gereken assembly'i hafızaya yükler. Runtime engine, birkaç görevden sorumludur. Bu görevlerden en başta geleni ve belkide en önemli olanı, assembly'nin nerede olduğunu çözmekle beraber ****data'yı okuyarak istenen türü binary dosyasından bulmaktır. Bundan hemen sonra CLR bulduğu bu türü hafızaya yükler ve buna bağlı olan Common Intermediate Language (CIL)'i üzerinde bulunduğu platforma özel olarak derlemeye başlar, güvenlik karşılaştırmalarını yaptıktan sonra, derlediği kodu icra etmeye başlar.
Bunu adım adım yazacak olursak
1-.NET içesinde yazılım yaptığınız dilin derleyicisi, kodu derledikten sonra bir assembly (*.dll veya *.exe) elde edersiniz
2-.NET Execution Engine (mscoree.dll) içerisinde bulunan 'Class Loader' mscorelib.dll gibi kütüphaneden temel türleri çeker.
3- Just in Time (JIT) Compiler assembly'nizi bulunduğunuz platforma özel komutlar haline getirir.
4- Elde ettiğiniz komutların icrasi bu aşamada başlar.
.NET platformunda bulunan runtime sistemi yukarıdakilere bir ek olarak gösterilebilir. Fakat .NET runtime ile birçok farklı runtime arasındaki en belirgin fark, .NET runtime .NET içerisinde bulunan tüm dilller için ortak 'bir' sistem olmasıdır.
CLR'in kalbi, mscoree.dll veya Common Object Runtime Execution Engine olarak da bilinen bir kütüphaneden oluşmaktadır. .NET içerisinde herhangi bir assembly çalıştırılacağı zaman, ilk olarak mscoree.dll yüklenir ve mscoree.dll de çalışması gereken assembly'i hafızaya yükler. Runtime engine, birkaç görevden sorumludur. Bu görevlerden en başta geleni ve belkide en önemli olanı, assembly'nin nerede olduğunu çözmekle beraber ****data'yı okuyarak istenen türü binary dosyasından bulmaktır. Bundan hemen sonra CLR bulduğu bu türü hafızaya yükler ve buna bağlı olan Common Intermediate Language (CIL)'i üzerinde bulunduğu platforma özel olarak derlemeye başlar, güvenlik karşılaştırmalarını yaptıktan sonra, derlediği kodu icra etmeye başlar.
Bunu adım adım yazacak olursak
1-.NET içesinde yazılım yaptığınız dilin derleyicisi, kodu derledikten sonra bir assembly (*.dll veya *.exe) elde edersiniz
2-.NET Execution Engine (mscoree.dll) içerisinde bulunan 'Class Loader' mscorelib.dll gibi kütüphaneden temel türleri çeker.
3- Just in Time (JIT) Compiler assembly'nizi bulunduğunuz platforma özel komutlar haline getirir.
4- Elde ettiğiniz komutların icrasi bu aşamada başlar.
