این کلاس که در یک فایل با نام program.cs  تعریف می شود، یک نقطه ورودی برای اجرای برنامه کاربردی را ارائه می نماید. این کلاس دارای تابعی با نام main می باشد که با اجرای آن پیکربندی host انجام می شود. در صورتی که بخواهید تنظیمات خاصی را روی host خود انجام دهید باید این تابع را تغییر دهید. در زیر نمونه این کلاس آمده است:

namespace ConfiguringApps { 
       public class Program { 
           public static void Main(string[] args) {
             var host = new WebHostBuilder()
                 .UseKestrel()
                 .UseContentRoot(Directory.GetCurrentDirectory())
                 .UseIISIntegration()
                 .UseStartup<Startup>()
                 .Build(); 
               host.Run();
         }
     }

Kestrel یک روش جدید طراحی سرور وب مستقل از سکو (cross-platform) در برنامه های کاربردی ASP.NET Core می باشد و زمانیکه شما برنامه core خود را با کمک IIS اجرا می کنید به طور خودکار مورد استفاده قرار می گیرد. دو روش برای اجرای برنامه با استفاده از kestrel وجود دارد. روش اول کلیک روی فلش موجود در طرف راست دکمه IIS Express در نوار ابزار ویژوال استودیو و انتخاب آیتم همنام با نام پروژه است. این کار باعث باز شدن پنجره command prompt و اجرای برنامه با کمک kestrel می شود.

روش دوم باز کردن command prompt در مسیر پوشه حاوی فایلهای پیکربندی برنامه و اجرای دستور dotnet run می باشد.

در این کلاس تابع پیکربندی برنامه نیز اجرا می شود که در قسمت بعد به آن اشاره می شود.

 

using Microsoft.AspNetCore.Builder; 
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Logging; 
   namespace ConfiguringApps { 
       public class Startup { 
public class Startup { 
           public void ConfigureServices(IServiceCollection services) {
              services.AddMvc(); 
         } 
           public void Configure(IApplicationBuilder app, IHostingEnvironment env,
                 ILoggerFactory loggerFactory) { 
                app.UseMvc(); 
         }
     }
     }
 }

در این کلاس دو تابع ConfigureServices و Configure تعریف شده اند که در آنها ویژگیهای مشترک مورد نیاز یک برنامه و همچنین نحوه استفاده ASP.NET از آنها تعریف می شوند. زمانیکه یک برنامه شروع به اجرا می کند، ASP.NET یک نمونه جدید از کلاس startup را ایجاد کرده و متد  ConfigureServices آنرا فراخوانی می نماید که اینکار باعث می شود برنامه بتواند سرویسهای خود را ایجاد کند. سرویسها در حقیقت اشیائی هستند که باعث دسترسی به عملیات سایر قسمتهای برنامه می شود. بعد از اینکه سرویسها ایجاد شدند ASP.NET متد Configure را فراخوانی می کند. هدف از اجرای این متد نصب خط درخواست (request pipeline) که شامل مجموعه ای از کامپوننتهایی است که به عنوان middleware شناخته می شوند. این کامپوننتها برای مدیرت درخواستهای HTTP و تولید پاسخ برای آنها بکار می روند. شکل زیر روند اجرای کلاس startup را نشان می دهد:

StartupClass