SORU
21 EKİM 2011, Cuma


Microsoft Roslyn vs CodeDom

Microsoft Roslyn yeni ilgili: InfoWorld press release dün

"Derleyici" tarzında bu tür en belirgin avantajı tüm derleme yürütmek çağrılan işlemek için izin içinde .Net uygulamaları. Hejlsberg C gösterdi# bu program C birkaç kod parçacıkları geçti# dizeleri olarak derleyici, derleyici sonra olan bir nesne olarak ortaya çıkan IL derleme kod, döndü yürütme için Ortak Dil çalışma Zamanı (CLR) geçti. İşte! İle Roslyn, C# dinamik bir dil oluşturmak ve çağırmak için yeteneği kazanır çalışma zamanında kod.

Yayımlandıktan sonra bunu yapmak mümkün oldum .NET 4 CSharpCodeProvider.CompileAssemblyFromSource ben aslında kullanımda bir ASP.Net proje yazılı süre önce yaptığı tam olarak bu - sağlar kullanıcı için yazın koda textbox seçin derlemeler/ad başvuru ve sonra yürütmek ve görüntü çıkışı, kod on-the-fly için canlı ortam kodu test Windows Azure.

/ CodeDom bölümü precurser Roslyn? CodeDom üzerinde Roslyn özel çıkarımız ne olacak?

CEVAP
21 EKİM 2011, Cuma


Yasal Uyarı: Roslyn takımda Microsoft için çalışıyorum.

CodeDom Roslyn habercisi olduğunu, ama sadece marjinal ilişkilidir. Aslında, CodeDom eklendi bir kod oluşturun ve (biraz) langage basit agnostik bir yoldur .Destek tasarımcılar (Win a la) NET 1.0. Çünkü CodeDom bir girişimi sağlayan birleşik bir model üretir kod C#, VB, ve diğer diller, yoksun high fidelity ile birlikte herhangi bir dil destekler (bu yüzden yapamazsın oluşturmak için bir anahtar deyimi ile CodeDom). CSharpCodeProvider.CompileAssemblyFromSource sadece csc.exe yürütme etrafında sarıcı.

Roslyn tamamen farklı bir hayvandır. Bu bir yeniden hem de C# ve VB Derleyiciler yere kadar kullanarak yönetilen kod C# C# ve VB, VB (sürümleri csc.exe ve vbc.exe o gemi bugün yazılı yerel kod). Yönetilen kod içinde inşa avantajı, kullanıcıların kütüphaneleri olarak gerçek Derleyiciler başvurusu yapabilirsiniz .NET uygulamaları (sarma gerekli).

Derleyici boru hattının her bir bileşen inşa ederken, üstüne ortak API ortaya çıkarıyoruz:

  • Çözümleyici ->Sözdizimi Ağacı API
  • Sembol Tablo/İthalat - ^ Meta . Sembol API
  • Binder ->Bağlama ve Akış Analizi API
  • IL Yayıcı ->Emit API

Roslyn sofistike bir C olarak kullanılabilir# ve VB kaynak kodu jeneratör, ama bu biter CodeDom için burada. Roslyn Compiler API kodu ayrıştırmak, semantik analiz ve kodu derlemek ve değerlendirmek, dinamik, vb için kullanılabilir.

Derleyiciler ek olarak, Roslyn takım da Visual Studio C yeniden inşa ediyor# ve IDE özellikleri VBüstünekamu derleyici API. Yani, derleyici API tasarım zamanı için Visual Studio Araçları, IntelliSense gibi yapı ve Yöntemi yeniden düzenleme Özü bu kadar zengin. Ayrıca, derleyici yukarıdaki katmanları, Roslyn üst düzey analiz veya veri dönüşüm hizmetleri. Örneğin, biçimlendirme kod C için hizmetleri var# ve biçimlendirme kuralları, VB, ya da bir çözüm içindeki belirli bir sembol için tüm başvuruları bulmak.

Gerçekten, sadece yokbirCodeDom üzerinde Roslyn özel yarar. Nerede CodeDom dolu bir çok özel kod oluşturma ihtiyacı, Roslyn olduğu mücadele tüm dil takım boşluk sağlayan bir çerçeve için izin için inşa sadece hakkında herhangi bir C# veya VB dil aracı olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bethliebert

    bethliebert

    23 EKİM 2008
  • hoorahjencar

    hoorahjencar

    6 HAZİRAN 2007
  • Ryan Ha

    Ryan Ha

    9 NİSAN 2006