Anasayfa / Yazılım / ASP.NET / .NET Core ve ASP.NET Core

.NET Core ve ASP.NET Core

.NET Core

NET Core, Microsoft ve .NET tarafından desteklenen açık kaynaklı bir gelişim platformudur.

.NET Core aşağıdaki özelliklere sahiptir:

  • Cross Platform özelliği ile çapraz platformlarda çalışabilir. Yani Windows, macOS, Linux gibi ortamlarda çalışabilmektedir. Eğer yapmak istediğiniz uygulamanın birden fazla platformda çalışmasını istiyor iseniz .NET Core ile uygulama geliştirebilirsiniz.
  • .NET Core .NET Framework, Xamarin, Mono ile .NET standart kütüphanesi nedeni ile uyumlu olarak çalışır.
  • .NET Core MIT ve Apache 2 lisansları altında yer alan açık kaynaklı bir platformdur.
  • .NET Core modüler bir yapıya sahiptir ve sadece bir uygulamada istediğiniz, ihtiyacınız olan paketleri kullanabilirsiniz. Gereksiz paketler ile uğraşmazsınız.
  • Gelişim arayüzü Command line style dediğimiz (CLI) gelişim arayüzüdür. Yani komut satırı stilidir. Desteklenen tüm platformlarda kullanılabilen komut satırı araçlarını sağlamaktadır. Böylelikle yazılımı geliştiren kullanıcılar minimum ek yüklemeler ile uygulamalarını test edebilirler ve geliştirebilirler.
  • Docker gibi teknolojilere destek sağlar.
  • .NET Core en iyi performans için tasarlanmış bir yapıya sahiptir.
  • .NET Framework veya Java aracılığı ile oluşturulmuş olan diğer mikroservislerle uyumlu olarak çalışır.
  • .NET Core aynı zamanda aynı makine üzerinde diğer .NET versiyonları ile uyumlu bir şekilde çalışma olanağı tanır. Böylelikle aynı server üzerinde çoklu hizmetleri kullanabiliriz.
  • .NET Core Microsft tarafından desteklenmektedir.

Tabi bir uygulama yapmadan önce .NET Framework üzerinde .NET Core kullanım tercihi yapmak için iyi bir araştırma ve analiz yapılmalıdır.

.NET Core ayrıca .NET Framework’ün bir alt kümesidir. Dolayısı ile tüm  .NET Framework API’leri .NET CoreFX kütüphanesine yüklenmez.

.NET Core, ASP.NET Web Forms ve WPF gibi tüm iş yüklerini desteklemez.

.NET Core tüm 3.parti platformları tarafından desteklenmeyebilir.

.NET Core mimarisini resmedersek;

ASP.NET Core

ASP.NET Core modern WEB uygulamaları oluşturmak için kullanılan açık kaynak, çapraz platform framework teknolojisine sahip yeni bir yapıdır. Web, IoT, cloud ve mobil hizmetleri güçlendirmek için sıfırdan tasarlanmıştır. ASP.NET Core aşağıdaki mimari yapıyı betimleyen şekilde görüleceği üzere herhangi bir .NET Framework veya .NET Core platformu üzerinde çalışabilmektedir ve bu büyük bir avantaj sağlamaktadır. ASP.NET Core, tıpkı .NET Core gibi modüler bir yapı kullanılma imkanı sunar. NuGet paketleri kullanılabilir. Modüler bir yapı sunması sebebi ile uygulamalarımızda istenmeyen referans kod paketleri ile uğraşmak zorunda kalmayız. Böylelikle geliştirdiğimiz uygulamalar için sadece gerekli olan paketler, referanslar uygulamamızda yer alır.

Bu arada kısaca NuGet nedir değinelim.

Nuget: .NET platformu üzerinde geliştirdiğimiz uygulamalar için eklemek istediğimiz 3. parti paket ve dll’leri (AjaxControlToolkit, Jquery, Facebook, log4net vb.) bizim yerimize otomatik olarak ekleyen ücretsiz paket yöneticisidir.

Aşağıdaki görselde ASP.NET Core için mimari yapı resmedilmiştir. Görüleceği üzere ASP.NET Core herhangi bir .NET Framework veya .NET Core platformu üzerinde çalışabilmektedir.

ASP.NET Core, .NET Framework tabanlı klasik ASP.NET Framework’üne nazaran aşağıdaki gelişmiş özelliklere sahiptir:

  • Apache 2 lisansı altında yer alan açık kaynaklı bir platformdur.
  • Çapraz platform desteği vardır. Yani Windows, macOS ve Linux gibi sistemlerde çalışabilir.
  • Birleşik MVC ve WEB API yaklaşımı sunar.
  • ASP.NET’in önceki sürümleri ile karşılaştırıldığında istenmeyen bir çok yük ASP.NET Core’da kaldırılmıştır.
  • ASP.NET Core’da istenmeyen bir çok yük ve referanslar ortadan kaldırılmıştır, dolayısı ile bunları yönetmek için uğraşmaya gerek yoktur. System.Web.dll gibi referanslar kullanılmaz. Uygulamamız için sadece gerekli referansları kullanırız. Dolayısı ile aslında ASP.NET Core kendisi bir NuGet paketidir.
  • Client-Side framework ile tam bir entagrasyon sağlar. ASP.NET Core istemci tarafında yer alan Client-Side Framework olarak adlandırdığımız AngularJS, KnockoutJS, Gulp, Grunt, Bower gibi frameworkler ile rahatlıkla entegre edilebilir.
  • ASP.NET Core’un modüler tasarımı yüksek performans sağlar.
  • ASP.NET Core Cloud (Bulut) ortamlar için kolay yapılabilen konfigürasyonu sayesinde rahatlıkla optimize edilebilir.
  • ASP.NET Core uygulamaları hem .NET Framework hem de .NET Core platformlarında çalışabilir. Ayrıca .NET Core’da bulunmayan ancak .NET Framework’de yer alan API’lerin de kullanımı hususunda esneklik sağlayabilmektedir.
  • ASP.NET Core uygulamalarını host etmek kolaydır. Ek olarak ASP.NET Core IIS hostingi desteklemektedir.
  • ASP.NET Core uygulamaları, Visual Studio Code, Visual Studio IDE, .NET Core CLI gibi platformlarda geliştirilebilir.
  • Bir ASP.NET Core uygulaması sıfırdan başlayarak yeniden tasarlanabilir.
  • ASP.NET Core’da Global.asax veya uygulama başlatma etkinliği bulunmaz. Her şey startup.cs class sınıfında yapılır.
  • ASP.NET Core uygulamalarında özel katman yazılımı yazmak çok kolaydır.
  • ASP.NET Core uygulaması ASP.NET Core için için özel olarak tasarlanmış bir Kestrel server kullanır.
  • JavaScript, stylesheet yani stil sayfaları ve görüntüler gibi statik içerikler ASP.NET Core uygulamasının wwwroot klasörü altına yerleştirilir.
  • Bundling yani paketleme ve küçültme işlemleri bundleconfig.json dosyası aracılığıyla gerçekleştirilir.
  • Roslyn derleyicisi bellek içi derleme için kullanılır.
  • Tag yardımcıları, görüntü bileşenleri daha sağlam, yeniden kullanılabilir ve server taraflı HTML yeni nesili ile uyumludur.
  • Attribute (Öznitelik) tabanlı yönlendirme, yeni denetleyici ve eylem belirteçlerini destekler.
  • Appsettings.json üzerinde konfigürasyon sağlar.
  • New _ViewImports.cshtml dosyası farklı görünümlerde tüm namespaceler için ortak bir alan olabilir.
  • Yeni filtre tipleri ve filtre uygulamasında daha iyi kontrol sağlar.
  • Birim testleri oluşturmak ve yönetmek çok daha kolaydır.
  • Entity Framework Core kullanarak veri erişimi sağlar.
  • ASP.NET Core Identity kullanarak kimlik doğrulama ve yetkilendirmenin kolay konfigüre edilebilmesini sağlar.
  • Global olarak kullanılabilir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir