Modern Web uygulamalarının özellikleri
"… uygun tasarımla, özellikler de birlikte gelir. Bu yaklaşım, bir dizi değildir ancak başarılı olmaya devam eder. "
- Dennıs Ritchie
Modern Web uygulamalarının daha fazla Kullanıcı beklentileri ve daha önce her zamankinden daha fazla olması gerekir. Bugünün Web uygulamalarının dünyanın herhangi bir yerinden 24/7 kullanılabilir olması ve neredeyse tüm cihazlardan veya ekran boyutundan kullanılabilir olması beklenmektedir. Web uygulamaları, istek üzerine ani artışları karşılamak için güvenli, esnek ve ölçeklenebilir olmalıdır. Giderek karmaşık senaryolar, JavaScript kullanılarak istemci üzerinde oluşturulmuş zengin kullanıcı deneyimleri tarafından işlenmeli ve Web API 'Leri aracılığıyla etkin bir şekilde iletişim edilmelidir.
ASP.NET Core, modern web uygulamaları ve bulut tabanlı barındırma senaryoları için iyileştirilmiştir. Modüler tasarımı, uygulamaların yalnızca gerçekten kullandıkları özelliklere bağlı olmasına olanak tanılarken, barındırma kaynağı gereksinimlerini azaltırken uygulama güvenliğini ve performansını geliştirir.
Başvuru uygulaması: eShopOnWeb
Bu kılavuz, bazı ilkeleri ve önerileri gösteren bir başvuru uygulaması olan Eshoponweb içerir. Uygulama, bir Shirts, kahve Mug ve diğer pazarlama öğelerinin bir kataloğuna göz atmayı destekleyen basit bir çevrimiçi depodur. Daha kolay anlaşılır olması için başvuru uygulaması kasıtlı olarak basittir.

Şekil 2-1. eShopOnWeb
Başvuru uygulaması
- eShopOnWeb
https://github.com/dotnet/eShopOnWeb
Bulutta barındırılan ve ölçeklenebilir
ASP.NET Core, düşük bellek ve yüksek aktarım hızı olduğundan bulut (genel bulut, özel bulut, tüm bulut) için iyileştirilmiştir. ASP.NET Core uygulamaların daha küçük bir şekilde kapladığı alanı, bunları aynı donanımda barındırabilmeniz ve kullandıkça öde bulut barındırma hizmetlerini kullanırken daha az kaynak ödemenize yol açabilir. Daha yüksek aktarım hızı, aynı donanıma verilen bir uygulamadan daha fazla müşteriye, sunuculara ve barındırma altyapısına yatırım ihtiyacını azaltmaya daha fazla bilgi verebileceğiniz anlamına gelir.
Platformlar arası
ASP.NET Core platformlar arası ve Linux, macos ve Windows üzerinde çalışabilir. Bu özellik, ASP.NET Core ile oluşturulmuş uygulamaların geliştirilmesi ve dağıtılması için birçok yeni seçenek açar. docker kapsayıcıları-hem Linux hem de Windows-ASP.NET Core uygulamaları barındırabilir ve bu da kapsayıcıların ve mikro hizmetlerinavantajlarından yararlanmasını sağlar.
Modüler ve gevşek olarak bağlanmış
NuGet paketleri .net Core 'da birinci sınıf vatandaşları ve ASP.NET Core uygulamalar NuGet aracılığıyla birçok kitaplıklardan oluşur. Bu işlevsellik ayrıntı düzeyi, uygulamaların yalnızca gerçekten ihtiyaç duydukları işlevlere bağlı olarak, parmak izi ve güvenlik güvenlik açığı yüzeyi alanını azalttığından emin olmanıza yardımcı olur.
ASP.NET Core ayrıca, hem dahili olarak hem de uygulama düzeyinde bağımlılık eklemeişlemini tam olarak destekler. Arabirimlerde, gerektiğinde değiştirilebilen birden fazla uygulama olabilir. Bağımlılık ekleme, uygulamaların belirli uygulamalar yerine, bu arabirimlere gevşek bir şekilde çift olmasını sağlar, bu sayede genişletmeyi, bakımını ve testi kolaylaştırır.
Otomatikleştirilmiş testlerle kolayca test edilmiştir
ASP.NET Core uygulamalar birim testini destekler ve bağımlılık ekleme için gevşek bir sla ve destek sayesinde altyapı sorunları, test amacıyla sahte uygulamalarla takas edilmesini kolaylaştırır. ASP.NET Core ayrıca, uygulamaları bellekte barındırmak için kullanılabilecek bir testserver ile birlikte gelir. İşlevsel testler daha sonra bu bellek içi sunucuya istek yapabilir, tüm uygulama yığınını (ara yazılım, yönlendirme, model bağlama, filtreler vb.) kullanabilir ve bir yanıt alabilir, bu da uygulamayı gerçek bir sunucuda barındırmak ve ağ katmanı üzerinden istek yapmak için gereken sürenin bir kesilişinde yapılır. Modern Web uygulamalarında daha fazla önem taşıyan API 'Ler için bu testlerin yazılması ve değerli olması özellikle kolaydır.
Geleneksel ve SPA davranışları destekleniyor
Geleneksel web uygulamaları çok sayıda istemci tarafı davranışına sahiptir, ancak bunun yerine uygulamanın yapması gerekebilecek tüm gezinme, sorgu ve güncelleştirmelerin sunucusuna güvenmesi gerekir. Kullanıcı tarafından yapılan her yeni işlem, son kullanıcının tarayıcısına tam sayfa yeniden yükleme işlemi ile yeni bir Web isteğine çevrilir. Klasik model-görünüm-denetleyicisi (MVC) çerçeveleri genellikle bu yaklaşımı, farklı bir denetleyici eylemine karşılık gelen her yeni istekle birlikte çalışarak, bir modelle birlikte çalışarak bir görünüm döndürecek şekilde izler. Belirli bir sayfadaki bazı ayrı işlemler AJAX (zaman uyumsuz JavaScript ve XML) işlevselliğiyle geliştirilebilir, ancak uygulamanın genel mimarisi birçok farklı MVC görünümü ve URL uç noktası kullandı. ayrıca, ASP.NET Core mvc, mvc stili sayfaları düzenlemenin daha basit bir yolunu da Razor Pages destekler.
Tek sayfalı uygulamalar (maça), aksine, dinamik olarak üretilen çok sayıda sunucu tarafı sayfa yükü (varsa) içerir. Birçok Spaon, uygulamayı başlatmak ve çalıştırmak için gerekli JavaScript kitaplıklarını yükleyen statik bir HTML dosyası içinde başlatılır. Bu uygulamalar, veri ihtiyaçları için Web API 'lerinin yoğun bir şekilde kullanılmasını sağlar ve çok daha zengin kullanıcı deneyimleri sağlayabilir.
Birçok Web uygulaması geleneksel Web uygulaması davranışının (genellikle içerik için) ve maça (etkileşim için) bir birleşimini içerir. ASP.NET Core, aynı araç ve temel çerçeve kitaplıklarını kullanarak aynı uygulamadaki MVC (görünümler veya sayfa tabanlı) ve web apı 'lerini destekler.
Basit geliştirme ve dağıtım
ASP.NET Core uygulamalar basit metin düzenleyicileri, komut satırı arabirimleri veya Visual Studio gibi tam özellikli geliştirme ortamları kullanılarak yazılabilir. Tek parçalı uygulamalar genellikle tek bir uç noktaya dağıtılır. Dağıtımlar sürekli tümleştirme (CI) ve sürekli teslim (CD) işlem hattının parçası olarak kolayca otomatikleştirilebilir. geleneksel cı/CD araçlarına ek olarak, Microsoft Azure git depoları için tümleşik desteğe sahiptir ve belirli bir git dalında veya etiketinde yapılan güncelleştirmeleri otomatik olarak dağıtabilir. Azure DevOps, tam özellikli bir cı/CD derleme ve dağıtım işlem hattı sağlar ve GitHub eylemler orada barındırılan projeler için başka bir seçenek sağlar.
geleneksel ASP.NET ve Web Forms
ASP.NET Core buna ek olarak, geleneksel ASP.NET 4. x web uygulamaları oluşturmaya yönelik sağlam ve güvenilir bir platform olmaya devam etmektedir. ASP.NET, MVC ve Web apı geliştirme modellerini ve zengin bir üçüncü taraf bileşen ekosistemine yönelik zengin sayfa tabanlı uygulama geliştirmeye uygun olan Web Forms ve özellikleri destekler. Microsoft Azure, ASP.NET 4. x uygulamaları için harika bir destek içerir ve bu platformda çok sayıda geliştirici tanıdık gelecektir.
Blazor
BlazorASP.NET Core 3,0 ve üzeri sürümlerde bulunur. Razor, C# ve ASP.NET Core kullanarak zengin etkileşimli Web istemci uygulamaları oluşturmak için yeni bir mekanizma sağlar. Modern Web uygulamaları geliştirirken göz önünde bulundurmanız gereken başka bir çözüm sunar. BlazorGöz önünde bulundurmanız gereken iki sürümü vardır: sunucu tarafı ve istemci tarafı.
sunucu tarafı Blazor 2019 ' de ASP.NET Core 3,0 ile yayımlanmıştır. Adından da anlaşılacağı gibi, sunucu üzerinde çalışır ve değişiklikler istemci belgesinde ağ üzerinden tarayıcıya geri getirilir. Sunucu tarafı, Blazor istemci tarafı JavaScript gerekmeden ve her istemci sayfa etkileşimi için ayrı sayfa yükleri gerektirmeden zengin bir istemci deneyimi sağlar. Yüklenen sayfadaki değişiklikler sunucu tarafından istenir ve işlenir ve ardından SignalR kullanılarak istemciye geri gönderilir.
BlazorMayıs 2020 ' de yayınlanan istemci tarafı, değişiklikleri sunucuda işleme gereksinimini ortadan kaldırır. Bunun yerine, WebAssembly istemci içinde .NET kodu çalıştırmayı kullanır. İstemci, veri istemek için gerekliyse sunucuya API çağrıları yapmaya devam edebilir, ancak tüm istemci tarafı davranışı istemci içinde çalışır WebAssembly ve tüm büyük tarayıcılarda zaten desteklenir ve yalnızca bir JavaScript kitaplığı olur.
Başvurular – Modern Web uygulamaları
- ASP.NET Core’a Giriş
https://docs.microsoft.com/aspnet/core/- ASP.NET Core 'de test etme
https://docs.microsoft.com/aspnet/core/testing/- Blazor-Başlarken
https://blazor.net/docs/get-started.html