MVC app은 Window web server의 IIS에 의해 실행된다. Core는 MVC와 다르게, command line에서 dotnet run을 사용하여 실행가능하다. 따라서 Window systems이 아닌 환경에서도 실행이 가능하다.
Startup
- ASP.NET MVC
IIS내에서 호스트되는 ASP.NET은 특정 object(Global.asax 파일의 class)를 인스턴스화하고 request가 오면 특정 함수를 호출합니다. 첫번째 request가 오면, 요청 자체를 처리하기 전에 Application_Start 함수를 호출합니다.
많은 NuGet packages는 WebActivator package를 사용해서 app startup에 실행된 code를 설정한다. 기본적으로 해당 코드는 App_Start 폴더에 위치한다.
WebActivator : web application의 Startup, Shutdown code를 쉽게 설정할 수 있도록 해주는 package이다.
OWIN, KATANA를 사용할 수도 있습니다.
- ASP.NET Core
독립 실행형 프로그램으로 app의 entry point를 포함하는 Program.cs 파일이 있다.
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
builder를 사용하여 host와 service를 구성한다. 그 다음 app에 대한 request pipeline을 작성한다.
이전 .NET에서는 Program.cs에서 참조하는 별도의 Startup.cs파일이 있었지만, .NET6부터는 Startup.cs 파일 사용은 되나, 기본은 아니다.
앱 시작 시, 실행되어야 하는 코드는 Program.cs에 있거나, IHostedService의 형태로 등록된다.
Host
- ASP.NET MVC
IIS
- ASP.NET Core
다양한 서버에서 실행 가능하며, 기본 크로스 플랫폼 서버인 Kestrel이 좋은 선택이다.
Kestrel은 IIS 모듈과 동일한 기능이 없다. 동일한 동작을 위해서는 middleware를 구성해야 한다.
'ASP.NET Core' 카테고리의 다른 글
ASP.NET MVC vs ASP.NET Core] middleware, module, handler, configuration 차이 (0) | 2023.02.08 |
---|---|
ASP.NET MVC vs ASP.NET Core] static files, DI 차이 (0) | 2023.02.07 |
.NET CLI] 사용법 - 빌드, 실행, 게시(self-contained, framework-dependent) (3) (0) | 2022.06.24 |
.NET CLI] 사용법 - 솔루션 생성, 프로젝트 생성, 참조 추가 (2) (0) | 2022.06.23 |
.NET CLI] 사용법 - 설명, SDK 설치확인, SDK 다운로드 (1) (0) | 2022.06.23 |
댓글