Asp.Net Core Application Startup - Configure ve ConfigureService Methodları Nedir? Neden Kullanılır?

By Burak Tungut - 16.7.2016 - 3 Yorum - Kategori Asp.Net Core

Selamlar herkese,

Geçen haftaki yazımızda Asp.Net Core'a bir giriş yapmış ve ne gibi özelliklerin bizleri beklediğini incelemiştik. Bugünkü yazımızda Startup sınıfını, Configure ve ConfigureServices method'larını ve ne gibi özelliklere sahip olduklarını inceleyeceğiz.

İncelemeleri yaparken göreceğimiz ve yer yer kullanacağımız bazı tip ve özellikler aslında bu makalenin konusu değil. Bu nedenle ilgili konular hakkında detaylara bu makalede yer vermedim. Ancak bu serinin devamını oluşturacak olan makalelerde, bu konulara ait detayları çok yakında görüyor ve inceliyor olacağız :)

Hatırlarsanız Asp.Net Core Nedir? Ne Gibi Değişiklikler Bizi Bekliyor? başlıklı yazıda boş bir Asp.Net Core uygulaması yaratmış ve Program.cs sınıfını biraz incelemiştik. Yine hatırlarsanız builder pattern ile uygulamayı inşaa ettiğimiz WebHostBuilder tipine ait generic UseStartup method'u mevcut idi. Generic tip ile uygulamamızdaki Startup sınıfını (tipini) alıyordu. Gelin sırasıyla bunları bir tanıyalım;

Startup Sınıfı (Tipi)

Startup sınıfı diye bahsediyoruz ancak ismini Startup harici bir isim ile de değiştirebiliriz. Özelliği bir Asp.Net Core uygulamasının ayağa kalkmasını sağlamak olduğu için yani görevi / işlevi nedeniyle Startup ismini kullanıdığımızı söyleyebiliriz.
Startup sınıfı aslında uygulamanın başlangıç noktası olarak görülebilir. Her Asp.Net Core uygulamasında mutlaka olmalıdır. UseStartup generic method'u kullanılmadan oluşturulmaya çalışılan bir Asp.Net Core uygulaması runtime'da aşağıdaki gibi bir hata ile karşılaşacaktır;

UseStartup methodu olmayan bir Asp.Net Core uygulaması

Yine daha önce Asp.Net Core'un lightweight built-in bir dependency injection ile geldiğini söylemiştik. Instance'ı yerine generic bir method ile Startup sınıfının tipini veriyor olmamızın bir nedeni de bu. Runtime'da DI tool'u bizler için Startup sınıfını ilgili tipten üretir. Yine bu nedenle Startup sınıfının constructor method'unda resolve olmasını istediğimiz ve DI'a register edilmiş tipleri parametre olarak dahil edebiliriz.

Bahsettiğimiz bu tipleri birazdan Configure ve ConfigureServices method'larında kullanıyor olacağız. Bu method'lar ise Startup sınıfının içerisinde bulunması gereken method'lardır. Boş bir Asp.Net Core uygulamasına ait Startup sınıfı aşağıdaki gibidir;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
    }


    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole();

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Hello World!");
        });
    }
}

Şimdi bu iki method'u sırasıyla tanıyalım.

Devamı
1
Facebook
Son Yorumlar