Soru CLR ve CLI - Fark nedir?


Ben oldukça yeni .NET framework, bu yüzden CLR & CLI arasındaki farkın tam olarak ne olduğunu bilmek istiyorum? Şimdiye kadar okuduğum her şeyden, CLI'nin CLR'nin bir alt kümesi olduğunu gösteriyor. Ama CLR'deki her şey zorunlu değil mi? CLI oluşturmak için CLR'den tam olarak ne kalmış olabilir?


44
2018-01-26 18:04


Menşei




Cevaplar:


CLR Microsoft’un uygulanması CLI standardı.


66
2018-01-26 18:06



Bunu yapar, sadece hedef mimariyi 'sıvı' olarak ayarlamanız gerekir. - Cody Brocious
Hızlı cevap için teşekkürler. Bu, en azından teorik olarak, farklı işletim sistemlerinde çalışabilen ve JVM'ye benzer .NET bileşenlerini destekleyen CLI'nin üçüncü taraf uygulamasına sahip olabiliriz. - Naveen
@Naveen - tam olarak bu mono bir göz atın. - Kev
Buna göre stackoverflow.com/questions/9321803/...      Bu, Mono'nun CLR'yi uyguladığını iddia ediyor. Bu yanlış mı ve Mono CLR değil CLI uygular demek daha doğru mu? - barlop
Bu cevap gerçekten doğru değil ... CLR VES uygulamasıdır ... aşağıdaki cevaba bakınız - Adrian


CLR, bir .NET uygulamasının güvenli bir şekilde barındırıldığı / çalıştırıldığı yürütme ortamıdır.

.NET uygulamasının başlatılmasından hemen önce başlatan ve yüklenen .NET'in özel İşletim Sistemi olarak görebilirsiniz.

CLR, herhangi bir .NET uygulamasının bazı temel gereksinimlerini yerine getirir; aksi takdirde, uygulanacak çok sayıda kasti kod gerekir; Doğada bütünsel olan ve iyi, verimli ve güvenli bir şekilde çalışmak için her türlü uygulama için gerekli olan gereksinimler [ör. Bellek ayırmayı tutun ve gerektiğinde serbest bırakın, işaretleyicileri sarkıtmayın, yazı tipi hatalarından kaçının.

Öte yandan CLI, bir uygulama yürütme ortamının nasıl uygulanacağını açıklayan bir spesifikasyon / set kümesidir ve belirli mimariler için yeniden yazılmaksızın farklı bilgisayar platformlarında birden çok üst düzey dilin kullanılmasına izin veren oluşturulan uygulama kodunun doğasını açıklar.

CLI, Microsoft tarafından geliştirilmiş ve ISO ve ECMA tarafından standartlaştırılmıştır.

CLR, CLI'nin VES [Sanal Uygulama Sistemi] bölümünün pratik bir uygulamasıdır ve MS.NET platformunun temel bileşenlerinden birini oluşturur.

Bir layman'ın dilinde CLI bir yemek tarifi, CLR ise mutfağı :-)


44
2018-06-24 14:54



Bu, bir açıklama ile birlikte Cody Brocious'ın cevabı ile aynı şeyi söyler. Açıklamaların ne kadar değer verdiği fikir meselesidir. .Net için referanslar doğru olmayabilir; Net, CLI standardından daha fazlasını uygular. - user34660


CLR (Ortak Dil Çalışma Zamanı) Microsoft'un VES (Sanal Yürütme Sistemi) uygulamasıdır. CTS (Ortak Tip Sistemi), CLS (ortak dil belirtimi) ve meta veri belirtimi ile birlikte VES, CLI (Ortak Dil Altyapısı) belirtiminin bir parçasıdır.

VES, CIL (Common Intermediate Language) modüllerini (dll ve exe) yüklemek ve yürütmek için uygulanması gereken standartlaştırılmış bir sanal makine belirtimidir. Bir VES uygulaması ayrıca çöp toplama ve güvenlik gibi çalışma zamanı hizmetleri sağlar.

ECMA C # ve Ortak Dil Altyapısı Standartları


14
2018-03-27 03:36





CLI, Ortak Dil Altyapısı Microsoft tarafından geliştirilen belirtim veya ölçütdür.

CLI kriterlerine uyan herhangi bir programlama dili, ortak bir sınıf kütüphanesine erişebilir ve ortak bir ara dile (bytecode) derlenebilir. Ortak ara dilde derlendikten sonra, herhangi bir program daha sonra üzerinde çalıştığı belirli sistem tarafından anlaşılan makine koduna eklenebilir. Yürütülebilir kod ve çalışma ortamı ortamını tanımlar.. Basit anlamda bu, kodu yeniden yazmadan çeşitli makinelerde çeşitli üst düzey dilleri kullanmamızı sağlar.

CLR, Ortak dil çalışmasıMicrosoft tarafından CLI uygulamasıdır.

CLR, .NET Framework'deki daha iyi çalışma zamanı olarak bilinen ve .NET programlarını yürütmekten sorumlu olan sanal makine bileşenidir. Programın ele alınması gereken birçok işlevi yerine getiren .NET programları için bir tür işletim sistemi.


enter image description here

nerede CIL öyle mi Ortak Orta Dil içine beslenen CLR yeni nesil makine koduna.


CLR'nin Özellikleri:

  1. Bellek yönetimi
  2. İstisna işleme
  3. Kod erişim güvenliği
  4. İplik yönetimi
  5. Hata ayıklama
  6. Doğrulama ve Derleme
  7. Tip güvenliği
  8. Çöp toplama

4
2017-11-21 14:34





CLR, CLI, CTS, CLS'nin entegrasyon içinde çalıştığı, çevreci kodlar için çöp toplama, bellek yönetimi, güvenlik, intesatif dil dahil, eksiksiz bir ortamdır ... CLI yürütülebilir kod formatı ve çalışma zamanı için bir belirtimdir Bu kodu çalıştırabilecek ortam.


-2
2018-06-17 04:56