.Net 5’ten .Net 6’ya Geçiş (Video)

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.
pexels-sovit-chetri
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;

Written By

Bir önceki günden daha iyi olmak için çalışarak kendimi geliştirmek, öğrendiklerim ve öğreneceklerim ile yazılım sektöründe büyük ölçekli ve uluslararası projelerde kendimden söz ettirmek istiyorum.

More From Author

You May Also Like

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir