Stronger_Cracker
- 25 Tem 2022
- 6,408 Mesaj
Aktiflik
Seviye
Deneyim
Selamun Aleykum; Ramazan Bayramımız Mubarek Olsun.
ASP.NET MVC 5 ile proje geliştiren birçok kişi, yeni nesil projelerde neden artık ASP.NET Core kullanıldığını merak ediyor. Özellikle eski yapıya alışmış olanlar için bu geçiş ilk bakışta zor gibi görünse de, aslında mantık aynı kalırken yapı daha düzenli, daha hızlı ve daha modern hale gelmiştir.
MVC 5 tarafında projeler genelde .NET Framework üzerine kuruluydu ve daha çok Windows ortamına bağlı çalışıyordu.
ASP.NET Core ise daha esnek bir yapı sunar. Windows dışında Linux üzerinde de çalışabilir, performans olarak daha güçlüdür ve güncel projelerde daha fazla tercih edilir. Özellikle API geliştirme, kimlik doğrulama, servis yapıları ve dependency injection* gibi konular ASP.NET Core tarafında daha düzenli bir hale getirilmiştir.
Eski projelerde Global.asax, Startup yapısı, Web.config gibi dosyalar önemliydi. ASP.NET Core tarafında ise Program.cs, appsettings.json ve middleware* mantığı öne çıkar. Yani proje açıldığında karşımıza çıkan yapı biraz değişmiştir. Ama bu değişim karmaşa oluşturmak için değil, geliştiricinin işini daha sistemli hale getirmek içindir.
Bir diğer önemli fark da paket yönetimi ve veritabanı/dabase işlemleridir. Entity Framework Core ile migration yapısı daha kontrollü ilerler. Ayrıca proje katmanlı mimariye daha uygun hale gelir. Bu da orta ve büyük projelerde bakım kolaylığı sağlar.
Kısacası MVC 5 bilen biri için ASP.NET Core öğrenmek sıfırdan başlamak değildir. Sadece eski alışkanlıkları güncel sisteme uyarlamak gerekir. Controller, View, Model mantığı yine vardır. Ancak proje yapısı, servis kullanımı, ayar yönetimi ve çalışma mantığı daha modern bir çerçeveye oturmuştur.
Açık kaynak desteği olması da en büyük özelliklerinden olmasıyla birlikte MVC 5 daha çok klasik web uygulaması mantığında ilerlerken, ASP.NET Core aynı proje içinde web arayüzü, REST API, JWT tabanlı kimlik doğrulama, middleware* yönetimi, dependency injection* ve container tabanlı yayınlama gibi modern ihtiyaçları doğal şekilde karşılar. Yani MVC 5 ile yapılabilen birçok işlem ASP.NET Core’da daha performanslı, daha modüler ve daha sürdürülebilir bir mimariyle yapılır.
Eski çalıştığım yerde projede(HBYS) neden WebForm varken MVC tercih ediliyor? Projede inat ederek yenilenmeye karşı direnmiş biri olarak aynı hatalara düşmeyin istiyorum. yeni çıkmış teknoloji veya bir dilde 1 gününüz ayırmanızı isterim. Bu yapayzekada da böyle kullanmayı öğrenin ama yazılımda ona alışmayın.
<>
*Dependency Injection: ASP.NET Core’da Dependency Injection (DI), uygulamadaki sınıfların ihtiyaç duyduğu servislerin (bağımlılıkların) framework tarafından otomatik olarak sağlanmasıdır. Yani sen new ile nesne oluşturmak yerine, ASP.NET Core sana o nesneyi hazır verir.
ASP.NET Core’da DI sistemi built-in (yerleşik) olarak gelir. Servisleri önce kayıt edersin, sonra istediğin yerde kullanırsın.
*Middleware: ASP.NET Core’da Middleware, gelen HTTP isteği ile giden HTTP cevabı arasında çalışan ara katmanlardır (pipeline parçaları).
Misal: Her istek sırayla middleware’lerden geçer, her middleware isteği işleyebilir veya bir sonrakine gönderebilir.
Mantık (Pipeline) Bir request geldiğinde akış şöyle olur:
Request → Middleware 1 → Middleware 2 → Middleware 3 → Response
Her middleware: İsteği işleyebilir,,
Değiştirebilir, Durdurabilir. Ya da bir sonrakine iletebilir.
ASP.NET MVC 5 ile proje geliştiren birçok kişi, yeni nesil projelerde neden artık ASP.NET Core kullanıldığını merak ediyor. Özellikle eski yapıya alışmış olanlar için bu geçiş ilk bakışta zor gibi görünse de, aslında mantık aynı kalırken yapı daha düzenli, daha hızlı ve daha modern hale gelmiştir.
MVC 5 tarafında projeler genelde .NET Framework üzerine kuruluydu ve daha çok Windows ortamına bağlı çalışıyordu.
ASP.NET Core ise daha esnek bir yapı sunar. Windows dışında Linux üzerinde de çalışabilir, performans olarak daha güçlüdür ve güncel projelerde daha fazla tercih edilir. Özellikle API geliştirme, kimlik doğrulama, servis yapıları ve dependency injection* gibi konular ASP.NET Core tarafında daha düzenli bir hale getirilmiştir.
Eski projelerde Global.asax, Startup yapısı, Web.config gibi dosyalar önemliydi. ASP.NET Core tarafında ise Program.cs, appsettings.json ve middleware* mantığı öne çıkar. Yani proje açıldığında karşımıza çıkan yapı biraz değişmiştir. Ama bu değişim karmaşa oluşturmak için değil, geliştiricinin işini daha sistemli hale getirmek içindir.
Bir diğer önemli fark da paket yönetimi ve veritabanı/dabase işlemleridir. Entity Framework Core ile migration yapısı daha kontrollü ilerler. Ayrıca proje katmanlı mimariye daha uygun hale gelir. Bu da orta ve büyük projelerde bakım kolaylığı sağlar.
Kısacası MVC 5 bilen biri için ASP.NET Core öğrenmek sıfırdan başlamak değildir. Sadece eski alışkanlıkları güncel sisteme uyarlamak gerekir. Controller, View, Model mantığı yine vardır. Ancak proje yapısı, servis kullanımı, ayar yönetimi ve çalışma mantığı daha modern bir çerçeveye oturmuştur.
Açık kaynak desteği olması da en büyük özelliklerinden olmasıyla birlikte MVC 5 daha çok klasik web uygulaması mantığında ilerlerken, ASP.NET Core aynı proje içinde web arayüzü, REST API, JWT tabanlı kimlik doğrulama, middleware* yönetimi, dependency injection* ve container tabanlı yayınlama gibi modern ihtiyaçları doğal şekilde karşılar. Yani MVC 5 ile yapılabilen birçok işlem ASP.NET Core’da daha performanslı, daha modüler ve daha sürdürülebilir bir mimariyle yapılır.
Eski çalıştığım yerde projede(HBYS) neden WebForm varken MVC tercih ediliyor? Projede inat ederek yenilenmeye karşı direnmiş biri olarak aynı hatalara düşmeyin istiyorum. yeni çıkmış teknoloji veya bir dilde 1 gününüz ayırmanızı isterim. Bu yapayzekada da böyle kullanmayı öğrenin ama yazılımda ona alışmayın.
<>
*Dependency Injection: ASP.NET Core’da Dependency Injection (DI), uygulamadaki sınıfların ihtiyaç duyduğu servislerin (bağımlılıkların) framework tarafından otomatik olarak sağlanmasıdır. Yani sen new ile nesne oluşturmak yerine, ASP.NET Core sana o nesneyi hazır verir.
ASP.NET Core’da DI sistemi built-in (yerleşik) olarak gelir. Servisleri önce kayıt edersin, sonra istediğin yerde kullanırsın.
*Middleware: ASP.NET Core’da Middleware, gelen HTTP isteği ile giden HTTP cevabı arasında çalışan ara katmanlardır (pipeline parçaları).
Misal: Her istek sırayla middleware’lerden geçer, her middleware isteği işleyebilir veya bir sonrakine gönderebilir.
Mantık (Pipeline) Bir request geldiğinde akış şöyle olur:
Request → Middleware 1 → Middleware 2 → Middleware 3 → Response
Her middleware: İsteği işleyebilir,,
Değiştirebilir, Durdurabilir. Ya da bir sonrakine iletebilir.
