Merhaba arkadaşlar, bugün sizlerle bir projeyi .Net 5’ten .Net 6’ya geçirmeye çalışacağız. Öncelikle .Net 6 hakkında yazdığım yazıya göz atabilirsiniz.
Bu işlemi en basit geçişten başlayarak bir kaç adımda tamamlayacağız.
- İlk önce var olan proje yapımızı tutarak sadece frameworkumuzu .net 6 ya geçireceğiz. (Evet, buna izin veriliyor).
- İlk adımı gerçekleştirdikten sonra .net 6 daki program.cs yapısına uygulamamızı geçireceğiz, startup dosyamızı kaldıracağız.
- Birinci ve ikinci adımı gerçekleştirdikten sonra uygulamamızı minimal api formatına geçireceğiz.
Burada yalnızca ilk adım zorunludur, yani mevcut proje yapınızı koruyarak .Net 6′ ya geçiş yapabilirsiniz.

1- Frameworkumuzu net 6.0’a yükseltelim. Eğer farklı nuget paketlerimizin güncellemeleri varsa bunları gerçekleştirelim.
<PropertyGroup> <TargetFramework>net6.0</TargetFramework> <!--<Nullable>enable</Nullable> optional <ImplicitUsings>enable</ImplicitUsings> optional--> </PropertyGroup>
2- Startup sınıfımızı Program.cs içerisine geçirerek, kaldıralım. (1.adımdan sonra – opsiyonel)
3- Controller ve actionlarımızı minimal api formatına geçirerek, uygulamamızdan kaldıralım. (1.ve 2. adımdan sonra – opsiyonel)
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IPersonService, PersonService>();
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Net5Api", Version = "v1" });
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Net5Api v1"));
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
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>();
});
}
Yeni Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<IPersonService, PersonService>();
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Net5Api", Version = "v1" });
});
var app = builder.Build();
app.MapPeopleEndpoints();
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Net5Api v1"));
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
app.Run();
app.MapPeopleEndpoints() kullanmamızı sağlayan , minimal api endpoint extensionı
public static class UrlMapExtension
{
public static void MapPeopleEndpoints(this WebApplication app)
{
#region Minimal Apis
app.MapGet("/api/people",
[Produces("application/json")]
[ProducesResponseType(typeof(List<Person>), StatusCodes.Status200OK)]
([FromServices] IPersonService _personService) =>
{
return Results.Ok(_personService.GetAll());
});
app.MapGet("/api/people/{id}", (int id, [FromServices] IPersonService _personService) =>
{
var person = _personService.GetPerson(id);
if (person == null)
return Results.NotFound();
return Results.Ok(person);
})
.Produces<Person>(StatusCodes.Status200OK)
.Produces(StatusCodes.Status404NotFound);
app.MapPost("/api/people", ([FromBody] Person person, [FromServices] IPersonService _personService) =>
{
var isAdded = _personService.InsertPerson(person);
if (!isAdded)
return Results.BadRequest();
return Results.Created("/api/people", isAdded);
})
.Produces<bool>(StatusCodes.Status201Created)
.Produces(StatusCodes.Status400BadRequest);
#endregion
}
}
Umarım faydalı olmuştur, kalın sağlıcakla…
Microsoft Migration Link;






