[ad_1]
8 Kasım’dan bu yana üretimde kullanıma sunulan Microsoft’un ASP.NET Core 6’sı, ASP.NET Core uygulamanızı çalışır duruma getirmek için yazmanız gereken ortak kod kodunu azaltan basitleştirilmiş bir barındırma modeli sunar. ASP.NET Core 6, ASP.NET Core 5’e kıyasla sıfırdan yeni bir web uygulaması oluşturmayı biraz daha kolaylaştırır.
Peki ya bir ASP.NET Core 5 projesini ASP.NET Core 6’ya güncellemek isterseniz? Bu durumda, ASP.NET Core 5 kodunu ASP.NET Core 6’ya geçirmek için yazmanız gereken kodun farkında olmalısınız. Bu makalede, bunu nasıl yapabileceğinizi gösteren birkaç kod örneği sunulmaktadır.
Bu makalede verilen kod örnekleriyle çalışmak için sisteminizde Visual Studio 2022 kurulu olmalıdır. Halihazırda bir kopyanız yoksa, Visual Studio 2022’yi buradan indirin.
Visual Studio 2022’de bir ASP.NET Core Web API projesi oluşturun
Öncelikle Visual Studio 2022’de bir ASP.NET Core projesi oluşturalım. Aşağıdaki adımları takip ederek Visual Studio 2022’de yeni bir ASP.NET Core Web API 6 projesi oluşturalım:
- Visual Studio 2022 IDE’yi başlatın.
- “Yeni proje oluştur” u tıklayın.
- “Yeni proje oluştur” penceresinde, görüntülenen şablonlar listesinden “ASP.NET Core Web API” seçeneğini seçin.
- Sonrakine tıkla.
- “Yeni projenizi yapılandırın” penceresinde yeni proje için isim ve konum belirleyin.
- İsteğe bağlı olarak, tercihlerinize bağlı olarak “Çözüm ve projeyi aynı dizine yerleştir” onay kutusunu işaretleyin.
- Sonrakine tıkla.
- Aşağıda gösterilen “Ek Bilgiler” penceresinde, bu örnekte minimum API yerine denetleyiciler kullanacağımız için “Denetleyicileri kullan…” yazan onay kutusunun işaretli olduğundan emin olun. “Kimlik Doğrulama Türü”nü “Yok” (varsayılan) olarak bırakın.
- Bu özelliklerin hiçbirini burada kullanmayacağımız için “Docker’ı Etkinleştir”, “HTTPS için Yapılandır” ve “Açık API Desteğini Etkinleştir” onay kutularının işaretli olmadığından emin olun.
- Oluştur’u tıklayın.
Bu makalenin sonraki bölümlerinde ASP.NET Core 5 kodunun ASP.NET Core 6’ya geçişlerini göstermek için bu ASP.NET Core 6 Web API projesini kullanacağız.
ASP.NET Core 5’teki Program sınıfı
Aşağıdaki kod parçacığı, ASP.NET Core 5’te tipik bir Program sınıfının nasıl göründüğünü gösterir.
public class Program
{
public static void Main(string[] args) {
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) {
return Host.CreateDefaultBuilder(args).
ConfigureWebHostDefaults(x => x.UseStartup <Startup> ());
}
}
ASP.NET Core 6’daki Program sınıfı
ASP.NET Core 6’da basitleştirilmiş barındırma modelinin kullanıma sunulmasıyla artık Startup sınıfını kullanmanıza gerek yok. Bununla ilgili daha fazla bilgiyi burada daha önceki makalemde okuyabilirsiniz. ASP.NET Core 6’da tipik bir Program sınıfını şu şekilde yazabilirsiniz:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container
builder.Services.AddControllers();
var app = builder.Build();
// Configure the HTTP request pipeline
app.UseAuthorization();
app.MapControllers();
app.Run();
ASP.NET Core 5’te ara yazılım ekleme
Aşağıdaki kod parçacığı, ASP.NET Core 5’te bir ara yazılım bileşenini nasıl ekleyebileceğinizi gösterir. Örneğimizde, yanıt sıkıştırma ara yazılımını ekleyeceğiz.
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseResponseCompression();
}
}
ASP.NET Core 6’da ara katman yazılımı ekleyin
ASP.NET Core 6’da bir ara yazılım bileşeni eklemek için aşağıdaki kodu kullanabilirsiniz.
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.UseResponseCompression();
app.Run();
ASP.NET Core 5’te yönlendirme ekleme
ASP.NET Core 5’te uç nokta eklemek için aşağıdaki kodu kullanabilirsiniz.
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/test", () => "This is a test message.");
});
}
}
ASP.NET Core 6’da yönlendirme ekleme
Aşağıdaki kodu kullanarak ASP.NET Core 6’da bir uç nokta ekleyebilirsiniz.
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/test", () => "This is a test message.");
app.Run();
ASP.NET Core 6’da, UseRouting veya UseEndpoints uzantı yöntemlerine açık çağrılar yapmak zorunda kalmadan WebApplication’a uç noktalar ekleyebileceğinizi unutmayın.
ASP.NET Core 5’te hizmet ekleme
Aşağıdaki kod parçacığı, ASP.NET Core 5’te kapsayıcıya nasıl hizmet ekleyebileceğinizi gösterir.
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// Add built-in services
services.AddMemoryCache();
services.AddRazorPages();
services.AddControllersWithViews();
// Add a custom service
services.AddScoped<IProductRepository, ProductRepository>();
}
}
ASP.NET Core 6’da hizmet ekleme
ASP.NET Core 6’da kapsayıcıya servis eklemek için aşağıdaki kodu kullanabilirsiniz.
var builder = WebApplication.CreateBuilder(args);
// Add built-in services
builder.Services.AddMemoryCache();
builder.Services.AddRazorPages();
builder.Services.AddControllersWithViews();
// Add a custom service
builder.Services.AddScoped<IProductRepository, ProductRepository>();
var app = builder.Build();
Bir ASP.NET Core 5 veya ASP.NET Core 6 uygulamasını test edin
Bir ASP.NET Core 5 uygulamasını TestServer veya WebApplicationFactory kullanarak test edebilirsiniz. ASP.NET Core 5’te TestServer kullanarak test etmek için aşağıdaki kod parçacığını kullanabilirsiniz.
[Fact]
public async Task GetProductsTest()
{
using var host = Host.CreateDefaultBuilder()
.ConfigureWebHostDefaults(builder =>
{
builder.UseTestServer()
.UseStartup<WebApplication1.Startup>();
})
.ConfigureServices(services =>
{
services.AddSingleton<IProductService, MockProductService>();
})
.Build();
await host.StartAsync();
var client = host.GetTestClient();
var response = await client.GetStringAsync("/getproducts");
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
Aşağıdaki kod parçacığı, ASP.NET Core 5 uygulamanızı WebApplicationFactory kullanarak nasıl test edebileceğinizi gösterir.
[Fact]
public async Task GetProductsTest()
{
var application = new WebApplicationFactory<Program>()
.WithWebHostBuilder(builder =>
{
builder.ConfigureServices(services =>
{
services.AddSingleton<IProductService, MockProductService>();
});
});
var client = application.CreateClient();
var response = await client.GetStringAsync("/getproducts");
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
.NET 5 ve .NET 6’da TestServer veya WebApplicationFactory kullanarak test etmek için aynı kodu kullanabilirsiniz.
ASP.NET Core 5’te bir günlük sağlayıcı ekleme
ASP.NET Core’daki günlük sağlayıcıları, günlükleri depolamak için kullanılır. ASP.NET Core’da bulunan varsayılan günlük sağlayıcıları, Debug, Console, EventLog ve EventSource günlük sağlayıcılarıdır.
Tüm günlük kaydı sağlayıcılarını temizlemek ve belirli bir günlük sağlayıcısı veya kendi özel günlük sağlayıcınızı eklemek için ClearProviders yöntemini kullanabilirsiniz. Aşağıdaki kod parçacığı, tüm ILoggerProvider örneklerini nasıl kaldırabileceğinizi ve Konsol günlüğü sağlayıcısını ASP.NET Core 5’e nasıl ekleyebileceğinizi gösterir.
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>{
logging.ClearProviders();
logging.AddConsole();
})
.ConfigureWebHostDefaults(webBuilder =>{
webBuilder.UseStartup<Startup>();
});
ASP.NET Core 6’da bir günlük sağlayıcı ekleme
ASP.NET Core 6’da WebApplication.CreateBuilder’ı çağırdığınızda Konsol, Hata Ayıklama, EventLog ve EventSource günlük sağlayıcılarını ekler. Aşağıdaki kod parçacığı, varsayılan günlük sağlayıcılarını nasıl temizleyebileceğinizi ve ASP.NET Core 6’da yalnızca Konsol günlük sağlayıcısını nasıl ekleyebileceğinizi gösterir.
var builder = WebApplication.CreateBuilder(args);
//Clear default logging providers
builder.Logging.ClearProviders();
//Code to add services to the container
builder.Logging.AddConsole();
var app = builder.Build();
Burada sağlanan kod örnekleri, ASP.NET Core 5 ve ASP.NET Core 6’da ara katman yazılımı, yönlendirme, hizmetler ve günlük sağlayıcıları eklemenin farklı yollarını ve ayrıca Program sınıfı ve testindeki farklılıkları gösterir. Bu parçacıklar, ASP.NET Core 6 uygulamalarıyla çalışırken size yardımcı olmalı ve ASP.NET Core 5 uygulamalarınızı ASP.NET Core 6’ya geçirdiğinizde iyi bir başlangıç yapmanızı sağlamalıdır.
Telif Hakkı © 2022 IDG Communications, Inc.
[ad_2]
Kaynak : https://www.infoworld.com/article/3665659/how-to-migrate-aspnet-core-5-code-to-aspnet-core-6.html#tk.rss_all