.NET Ekosistemi büyük bir değişim geçirip, yeniden yapılandırılıyor. Web ve konsol uygulamaları, REST API ve daha bir çok alt yapı türü artık .NET Core framework ü ile Windows, Mac OSX ve Linux platformunda koşabiliyor!

.NET platformu geliştiricileri için yepyeni ve güçlü bir argüman artık yanı başlarında. "mobile-first, cloud-first" mottosu ile yeni bir sürece giren Microsoft; topluluk gücü (open source) ve inanılmaz bir ekiple .NET i yeniden şekillendiriyor. Hanselman, Edwards, Fowler ve daha bir çok yetenekli geliştiricinin katkılarıyla açık kaynak kodlu, cross-platform ve modüler (NuGet packages) olarak çalışabilen yeni framework sayesinde geliştirdiğimiz uygulamaları popüler tüm işletim sistemlerinde çalıştırabileceğiz.

Yeni yapıdaki diagramı şu şekilde çizebiliyoruz:

Canlı, enerjik ve hareketli bir bütünü görebildiğimiz bu kurgu ile arkaplanda nasıl bir sürecin işlediğini detaylandırabiliyoruz.

.NET Compiler Platform (“Roslyn”)

Kod adı "Roslyn" olarak ifade edilen yeni nesil .NET Compiler Platform u artık daha açık ve müdahale edilebilir durumda. Ayrıca geliştirilen Intellisense ve kod analiz araçları yeni nesil gereksinimler ve agile süreçler için yeniden tasarlanmış.

Runtimes:

İki farklı çalışma zamanı tipi görüyoruz:

1 - .NET Framework 4.6

Bu zamana kadar aktif olarak kullanılan, web ve masaüstü uygulamaları geliştirmek için bir çok genel amaçlı kütüphaneyi barındıran .NET framework un ta kendisi!

2 - .NET Core

.NET Framework ün cross-platform ve bulut teknolojileri için optimize edilmiş alt kümesi - kuzeni olarak nitelendirilmektedir. Windows, Mac OSX ve Linux (Ubuntu, Debian) işletim sistemlerinde çalışabilen modüler (Package) yapıya sahiptir. Runtime üzerinde tam hakimiyet sağlayan ve uygulamaların istenilen runtime versiyonu ve kütüphane gereksinimleri ile çalışmasını sağlayabilmektedir. Bu özellikler ve esnekliği onu bulut ve geliştirici dostu olarak nitelemektedir.

.NET Native

Yeni nesil mobil, tablet ve yüksek performans gerektiren uygulamaların normal .NET JIT-ing IL (Intermediate Language) kodu ile çalışmak yerine .NET Native IL Code un native koda derlenerek - dönüştürülerek çalıştırılabilmesi amacıyla kullanılmaktadır.

ASP.NET 5

Web ve mobil uygulama geliştirme çeşitliliği, farklı programlama dilleri ve açık kaynak kodlu bir çok MVC (Rails - Ruby, Django - Python, Express - NodeJs, Revel - Go) framework ü, bağımlılık yönetimi, veri tabanı işlemleri, REST API ve performans konseptlerinde yepyeni bakış açıları getirip, topluluk güçlerini arkalarına alarak yaygınlaşmaya başladılar.İşte tam bu noktada ASP.NET 5; Microsoft' un bulut devri mimarisine ayak uyduran, kurumsal bakış açısını yansıtabilen, modüler ve açık kaynak kodlu imajı ile burada sahne alıyor!

Geliştirme ve olgunlaşma süreci devam eden bu yeni framework için yardımcı araçlardan da bahsetmek gerekmektedir.

DNVM - .NET Version Manager:

Ruby için rvm, Python için virtualenv ve Node için nvm ne ise .NET Core için de dnvm o! Uygulamanın çalışacağı runtime ın belirlenmesi (path), güncellenmesi ve yönetilmesi için kullanılmaktadır.

DNX - .NET Execution Environment:

Versiyon yöneticisi tarafından seçilen runtime a göre uygulamayı çalıştırabilen veya .NET Core tarafından desteklenen ve konfigurasyon dosyanızda belirttiğiniz tipte komutları çalıştırabilen bir araçtır.

dnx web (run web server)
dnx ef (Entity Framework Commands * using dnx)

Bir geliştirici olarak tüm bu süreçleri yönetmek, özellikle terminal iterasyonlarını eksiksiz yerine getirmek konstantre gerektiriyor :) Bu sepeple tüm süreçleri basitleştirebilmek adına Hanselman iyi bir noktaya değiniyor.

.NET in gelişim sürecini, yol haritasını ve günlükleri aşağıdaki kaynaklardan takip edebilirsiniz. Benim favori yöntemim ASP.NET 5 ile ilgili Github duyurularını izlemek!

Nice açık kaynak kodlu, emek harcanmış güzel işlere...

Kaynaklar:
1 - ASP.NET 5 Documentation
2 - ASP.NET Github Home
3 - Deep Dive into ASP.NET 5
4 - .Net Core Overview