ASP.NET5 ile DNVM, DNX ve DNU

ASP.NET 5 ile yeni gelen özellikleri incelemek için Visual Studio 2015'te bir proje açtığımızda ilk karşılaştığımız yenilik farkında olalım veya olmayalım DNX, DNVM ve DNU oluyor. VS.NET 2015 bu araçları çalışma anında kullandığı için bize günlük hayatımızda bu araçları manuel olarak kullanma şansımız belki hiç olmayacak. Projemizi VS.NET ile açtığımız anda VS.NET ilk olarak yeni global.json ve project.json dosyalarını okuyup projemizin derleneceği ve çalışacağı ortamı bu ayarlara göre hazırlıyor. Biraz daha detaya inip bu kavramların ne olduğunu incelemeye çalışalım. Öncelikle  bu araçların aslında ASP.NET vNEXT ile açıklanan klr, kpm ve kvm araçlarının ASP.NET5 versiyonu için hazırlanan ve yeniden adlandırılan versiyonları. Aşağıdaki tabloda yapılan değişiklikler listeleniyor.   .NET Çalışma Ortamı (.NET Execution Environment DNX) .NET uygulamalarını Windows, Linux ve Mac ortamlarında derleyebilmek ve çalıştırabilmek için gerekli bileşenleri ve araçları içeren SDK'lara DNX yani .NET Çalışma Ortamı diyoruz. ASP.NET 5 Projemiz içerisinde bulunan global.json dosyası içerisindeki version parametresi ile projemizin VS tarafından hangi SDK ile açılacağını ve build edileceğini belirliyoruz. Bu ayarı değiştirdiğimiz takdirde VS'yu restart etmemiz gerekiyor.   .NET Versiyon Yöneticisi (.NET Version Manager DNVM) DNX kısaltması ile anılan .NET Çalışma Ortamlarının (.NET Execution Environment) yüklenmesi, güncellenmesi ve çalışması istenen ortamın belirlenmesini sağlayan komut satırı aracıdır. Komut satırına dnvm yazılarak araç çalıştırılabilir. Aşağıdaki gibi komut opsiyonlarının listelendiği bir ekran bizi karşılayacaktır.    list komutu ile sistemde yüklü DNX'leri listeleyebilir, hangisinin aktif DNX olduğunu görebiliriz. upgrade komutu ile stabil kaynaktan son dnx versiyonu indirilebilir.  List komutu çıktısında Versiyon olarak DNX versiyonunu, runtime başlığı altında framework versiyonu listeleniyor. .NET Framework, .NET Core ve Mono.  Ya da özellikle belli versiyondaki bir DNX'i yüklemek istiyorsak install komutu ile vereceğimiz versiyonu stabil kaynaktan indirip kurabiliriz. .NET Geliştirme Aracı (.NET Development Utility DNU) .NET Geliştirme Aracı, yani DNU ise ASP.NET 5 projemizi derlerken bağımlı olduğumuz kütüphane paketlerini yöneten ve projemizi yayınlayan yardımcı uygulama. Projemiz içerisinde bağımlı olduğumuz kütüphaneleri topladığımız project.json dosyasına göre proje bağımlılıklarını yöneten DNU'nun çıktısını yine output penceresinden aşağıdaki gibi izleyebiliriz.   Sonuç olarak ASP.NET 5 ile projemizi derleyip kurulum yapacağımız ortama uygun paketlenmesini kolaylaştıran DNX, DNVM ve DNU'u incelemeye çalıştık. Bulut mimarinin ve Microsoft Azure'un çok önplanda olduğu günümüzde bu gelişmeler elbette kaçınılmazdı. Siz de benim gibi dnx version failed to install gibi bir hata ile karşılaştıysanız linki takip ederek çözüm uygulayabilirsiniz.

"DNX SDK version 'dnx-clr-win-x86.1.0.0-beta5' failed to install" hatası ve çözümü

Visual Studio 2015 ile ASP.NET 5'e gelen yeni özellikleri incelemek üzere ilk ASP.NET 5 projenizi açtığınız ve derleyip çalıştırmaya çalıştığınız anda tüm hevesinizi söndüren bu hatanın temelinde aslında .NET Framework'e gelen yeni bir özellik sebep oluyor.   DNX SDK version 'dnx-clr-win-x86.1.0.0-beta5' failed to install. The solution will use DNX SDK version ‘dnx-clr-win-x86.1.0.0-beta5’ for this session.   Bu hata, .NET Framework Version Manager tarafından yüklenmeye çalışılan, ASP.NET 5'i içeren .NET Execution Environment (DNX) SDK'sının yüklenmesi sırasında alınan bir hata. Sebebi Windows 7'de Powershell 3.0 versiyonunun kurulu olmamasından kaynaklı. Bu hata ile ilgili detaylar Microsoft destek sayfasında mevcut. PowerShell'in hangi versiyonuna sahip olduğumuzu görmek için powershell komut satırına aşağıdaki komutu yazıp görebiliriz. $PSVersionTable PowerShell 3.0 versiyonunu kurmak için Microsoft'un PowerShell 3.0 Download sayfasından güncellemeyi indirip kurulumu yaptıktan sonra komut satırında şunu görüyor olmalıyız :  PowerShell'i 3.0 veya daha üst versiyona yükselttikten sonra projeyi yeniden açıp ve derleyince işlemin biraz uzun sürdüğünü ve output penceresini açarsanız ASP.NET 5'i kullanabilmek için ihtiyaç duyduğumuz DNX versiyonunun indirilip yüklendiğini göreceksiniz. Komut satırını açıp dnvm list komutu ile makinanızda kurulu DNX versiyonlarını listelerseniz aşağıdakine benzer bir çıktı ile karşılaşırız. Dilersek yine dnvm komutlarını kullanarak ihtiyacınız olan DNX versiyonlarını makinamıza kurabiliriz.