[ad_1]
Microsoft .NET 6, .NET geliştiricileri için her türlü harika yeni özellikle Kasım 2021’de geldi. .NET 6’nın en önemli özelliği, Microsoft’un modern web uygulamaları oluşturmaya yönelik açık kaynak çerçevesinin önemli bir yükseltmesi olan ASP.NET Core 6’dır.
ASP.NET Core 6, .NET Core çalışma zamanının üzerine kurulmuştur ve Windows, Linux ve macOS üzerinde uygulamalar oluşturmanıza ve çalıştırmanıza olanak tanır. ASP.NET Core 6, Web API ve MVC’nin özelliklerini birleştirir. Bu makalede, bazı kod örnekleriyle birlikte ASP.NET 6’daki yenilikler anlatılmaktadır.
Bu makalede verilen kod örnekleri ile çalışmak için bilgisayarınızda Visual Studio 2022 kurulu olmalıdır. Yapabilirsiniz Visual Studio 2022’yi buradan indirin.
Şimdi ASP.NET Core 6’daki yeni özelliklere geçelim.
Sıcak Yeniden Yükleme
Hot Reload, .NET 6’da eklenen en çarpıcı yeni özelliklerden biridir. ASP.NET Core 6 uygulamanız yürütülürken kullanıcı arabirimini değiştirmek için bu özellikten yararlanabilirsiniz. Değişiklikleri kaydettikten sonra yansıdığını görebilirsiniz; uygulamayı yeniden oluşturmanız ve yeniden başlatmanız gerekmez. Bu özellik, geliştirici üretkenliğini önemli ölçüde artırır.
Minimum API’ler
ASP.NET Core 6, şablon veya denetleyici sınıfı gerektirmeyen hafif hizmetler (minimum API’ler olarak da adlandırılır) oluşturmanıza olanak tanır. Ayrıca, şablonu veya denetleyicisi olmayan hafif hizmetler oluşturmak için IEndpointConventionBuilder arabiriminin genişletme yöntemlerini kullanabilirsiniz. Başlangıç sınıfında veya Program sınıfında hafif hizmetler veya API’ler oluşturabilirsiniz.
İstekleri eşlemek için IEndpointConventionBuilder arabiriminin bazı genişletme yöntemlerinden yararlanabilirsiniz. İşte bu uzatma yöntemlerinin listesi:
- Harita Denetleyicileri
- Harita Al
- MapPut
- Harita Gönderisi
- HaritaSil
- HaritaRazorSayfalar
- MapGrpcService
- MapHub
MapGet, MapPut, MapPost ve MapDelete yöntemleri, istek temsilcisini yönlendirme sistemine bağlamak için kullanılır. MapControllers yöntemi, denetleyiciler için, Razor Sayfaları için MapRazorPages, SignalR için MapHub ve gRPC için MapGrpcService için kullanılır.
Örnek olarak, aşağıdaki kod parçacığı, Program.cs dosyasına bir “Merhaba Dünya” yanıtı yazmak için basit bir hizmeti nasıl kullanabileceğinizi gösterir.
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet(" (Func<string>)(() => "Hello World!"));
Program ve Startup sınıflarının birleşmesi
ASP.NET Core 5 ve önceki sürümlerde, uygulamayı oluşturmak ve yapılandırmak için iki sınıfla çalışmak zorunda kaldık. Bu sınıflar, Program.cs ve Startup.cs dosyalarında bulunan Program ve Startup sınıflarıdır.
ASP.NET Core 5’te tipik bir Başlangıç sınıfı örneği:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSingleton<IDataService, DataService>();
}
public void Configure(IApplicationBuilder app,
IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
ASP.NET 6 ile Program ve Başlangıç sınıfları, Program sınıfıyla birleştirilmiştir. ASP.NET Core 6’daki Program sınıfına bir örnek:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddSingleton<IDataService, DataService>();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapControllers();
app.Run();
Program.cs dosyası değişiklikleri
Yeni konsol şablonu, bir program için yazmanız gereken kodu önemli ölçüde basitleştirir. Konsol şablonu artık bir Program sınıfı içermiyor. Özünde, şimdi yalnızca Main yöntemini yazmanız gerekir.
Önceki .NET sürümlerinde, yeni bir ASP.NET Core projesi oluşturduğunuzda, Program.cs adlı bir dosyanın içinde Program adlı bir sınıf otomatik olarak oluşturulur. Program sınıfı, bir ASP.NET Core uygulamasının yürütülmesinin başladığı Main yöntemini içerir. Main, bir web uygulamasının oluşturulduğu, yapılandırıldığı ve yürütüldüğü yöntemdir.
.NET 6’da yeni bir konsol uygulaması projesi oluşturduğunuzda, Visual Studio bu kodu içeren varsayılan bir Program.cs dosyası oluşturur:
// See for more information
Console.WriteLine("Hello, World!");
.NET 5’te yeni bir konsol uygulaması projesi oluşturduğunuzda, varsayılan Program.cs dosyası şu kodu içerir:
using System;
namespace IDGNet6Demo
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
ASP.NET Core 5 ve önceki sürümlerde, tipik Program.cs dosyası şu kodu içerecektir:
public class Program {
public static void Main(string[] args) {
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => {
webBuilder.UseStartup <Startup> ();
});
}
Ve ASP.NET Core 6’da, tipik Program.cs dosyası şu kodu içerecektir:
using NET6Demo;
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
}).Build().Run();
ASP.NET Core 6’da artık varsayılan olarak bir Startup.cs dosyası bulamayacağınızı unutmayın. Ancak, ASP.NET Core’un önceki sürümleriyle geriye dönük uyumluluk istiyorsanız veya eski stil konusunda daha rahatsanız, projede manuel olarak bir Başlangıç sınıfı oluşturabilir.
Ardından, önceki kod parçacığında gösterildiği gibi Startup sınıfını belirtmek için UseStartup yöntemini çağırın.
HTTP Günlüğü ara yazılımı
ASP.NET Core 6’da HTTP Günlüğü ara yazılımı desteği sunulmuştur.
- Bilgi isteme
- Yanıt bilgileri
- İstek ve yanıt başlıkları
- Talebin gövdesi
- Özellikleri
Blazor iyileştirmeleri
ASP.NET Core 6’da Blazor’da birkaç iyileştirme vardır. En önemlilerinden bazıları şunlardır:
- JavaScript’ten bileşenleri oluşturma yeteneği.
- Önceden oluşturulmuş durumu korumak için destek.
- Özel olay argümanları için destek.
- JavaScript başlatıcılar için destek.
- DynamicComponent sınıfını kullanarak bileşenleri dinamik olarak işleme yeteneği.
- ErrorBoundary sınıfını kullanarak hata sınırlarını tanımlama yeteneği.
IAsyncDisposable için geliştirilmiş destek
Ayrıca, zaman uyumsuz kaynakları serbest bırakmak için denetleyicilerinizde, sınıflarınızda, sayfa modellerinizde ve görünüm bileşenlerinde IAsyncDisposable için gelişmiş desteğe sahipsiniz.
Eşzamansız tek kullanımlık bir kaynağın atılmaması, kilitlenmelere neden olabilir. IAsyncDisposable arabirimi, kaynakları eşzamansız olarak serbest bırakarak bu sorunu çözer. IAsyncDisposable arabirimi, C# 8.0’da tanıtılan Sistem ad alanının bir parçasıdır.
Eşzamanlı çağrılar için IDisposable arabiriminin Dispose() yöntemini uyguladığınız gibi, temizleme işlemlerini gerçekleştirmek ve kaynakları eşzamansız olarak serbest bırakmak için IAsyncDisposable arabiriminin DisposeAsync() yöntemini uygulamalısınız.
.NET 6 ekosistemi, basitleştirilmiş bir geliştirme modeli, iyileştirilmiş performans ve gelişmiş üretkenlik sağlar. ASP.NET Core 6’da uygulama performansını iyileştirmek ve ayırmaları azaltmak için birçok geliştirme yapılmıştır. Aynı şekilde geliştiriciler, performanslı, modern web uygulamaları geliştirmeyi hem daha hızlı hem de daha kolay hale getiren birçok iyileştirmeden yararlanır.
Telif Hakkı © 2022 IDG Communications, Inc.
[ad_2]
Kaynak : https://www.infoworld.com/article/3667889/the-best-new-features-in-aspnet-core-6.html#tk.rss_all