Çok uzun süredir yazmıyormuşum bir şeyler…Bunun bile farkında değildim, ne feci…Geçtiğimiz günlerde Microsoft, TechEd etkinliğinde, ASP.NET ile ilgili açıkladığı yeni şeylerin gazı ile, belki aradaki boşluğu kapatırım.(İç ses: Yalannn!!! :P)
Neyse, fazla dağılmadan paylaşmak istediğim konuya geliyorum hemen…ASP.NET vNEXT…Geçtiğimiz haftalarda Microsoft, TechEd North America etkinliğinde ASP.NET ile ilgili gelecek vizyonunu ve nelerin geleceğini ilk defa paylaştı. Oldukça şaşırtıcı ve merak uyandırıcı konular, önümüzdeki aylarda bayaa karşımıza çıkacak gibi. Bu büyük yenilikler, geliştirilen uygulamalara nasıl yansıyor olacak, ayrıca merak ettiğim bir konu ama zamanı gelince hep beraber görüyor ve hatta içinde olacağız sanırım.
Öncelikle gelen en büyük yenilik, CLR’ın server ve cloud için optimize edilmiş olması. Bu sayede, sunucuda çalışan web uygulamalarının, standart .NET Framework CLR’ından ayrı, cloud/server senaryolarına uygun bir CLR ile daha performanslı çalışabilmesi düşünülmüş. Yani web uygulamasının çalıştığı CLR, artık tüm .NET Framework CLR’ını içermek zorunda kalmayacak. Bu hız ve kaynak kullanımı yönünde oldukça olumlu bir gelişme.
Bu gelişmenin bir çıktısı olarak da, ASP.NET vNext ile artık sadece gerekli olan CLR bileşenlerini sunuculara deploy etmeniz mümkün olabilecek. Farklı versiyondaki bileşenleri,farklı uygulamalarda kullanabiliyor olacaksınız. Yani bir web uygulamanız MVC.v1.dll’ini kullanırken, diğer uygulamanız MVC.v2.dll’ini kullanabilecek.(MVC.vX örnek olarak uydurduğum CLR bileşeni :P) Ve bu bileşenler NuGet paketleri ile yönetilebilecek.
Bu noktada “Dependency Injection” kavramının ASP.NET vNext ile beraber built-in olarak geldiğini de belirtmekte fayda var. Kendi seçeceğiniz IoC ile bağımlılıkları yönetebiliyor olacaksınız.
MVC, Web API, ve Web Pages gibi kavramlar tek bir çatı altında, MVC6 adında bir araya geliyor. Bu ne demek? MVC Controller’ları ve Web API’nin yapabildiği ortak şeyler artık tek bir yapı ile ortak olacak. İnternette dolanan bütün tartışmalar bitecek yani (:
Ortak bir routing yapısı, ortak bir filter yapısı falan gibi…Ve bu yeni çatının System.Web’e olan bağlılığı gibi bir durumu da yok. Bu noktada HttpContext’in memory’deki obje yapısının değiştiğini ve büyük ölçüde küçüldüğünün de altını çizebilirim.
ASP.NET vNext ile artık uygulamaları, IIS dışında, kendi geliştireceğimiz process’lerde de host edebilecek konuma geleceğiz. Bu da lightweight uygulamalar için komple IIS kaynaklarını kullanmak zorluluğunu kısmen de olsa ortadan kaldıracak.
Bir güzel ve değişik yenilik ise, ASP.NET vNext ile compile edilmiş bir *.dll zorunluluğunun kalkması. Rosyln sayesinde(compiler-as-service) runtime sırasında compile işlemi gerçekleşebilecek. Yani kodu değiştirip, sadece browser’de refresh yapmanız değişikliği görmenizi sağlayacak…
Ve son olarak bütün bu ASP.NET vNext’in open-source ve platform bağımsız(Linux, Mac OS X) olacağını söyleyerek heyecanımı sizle paylaşmayı bitirebilirim sanırım.
İlerleyen zamanlarda daha fazla ayrıntı, oynayacak, kurcalayacak daha fazla şey çıkacaktır. Onları da zaman buldukça ve tabi heyecanımı korudukça paylaşmaya çalışacağım.
Daha fazla ayrıntıyı http://www.asp.net/vnext adresinde bulabilir ve gelişmeleri oradan takip edebilirsiniz. https://github.com/aspnet/home adresinden GitHub’a ulaşabilir, kendiniz de kurcalayabilirsiniz.
Ayrıca örnek olarak http://www.asp.net/vnext/overview/aspnet-vnext/walkthrough-mvc-music-store adresindeki örnek uygulamaya bakmanızı tavsiye ederim.
Şimdilik bu kadar…