[ASP.NET Core] AddController(), AddMvc(), AddControllersWithViews(), AddRazorPages() 차이점
ASP.NET Core에서 MVC 템플릿으로 프로젝트를 생성하면 Startup 클래스의 ConfigureServices 메소드에서AddControllersWithViews()를 확인할 수 있다.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
함수 이름으로 유추해봐도 알 수 있듯이, MVC 모델의 Controller와 View를 ASP.NET Core에서 사용하겠다는 뜻을 의미한다. 그런데 AddControllersWithViews 가 아닌, AddMVC를 사용해도 문제없이 동작하는 것을 확인할 수 있다.
이 메소드들은 공통적으로 MvcServiceCollectionExtensions 클래스에서 제공하는데, 차이점으로 무엇이 있을지 알아보았다.
제목에 작성한 AddController(), AddMvc(), AddControllersWithViews(), AddRazorPages() 는 공통적으로 아래와 같은 기능을 사용할 수 있도록 해준다.
- Controllers
- Model 바인딩
- Authorization
- Vaildations
그 외는 조금씩 차이가 존재한다. 차이점은 아래와 같다.
기능 | AddMvc() | AddControllersWithViews() | AddController() | AddRazorPages() |
API Explorer | O | O | O | X |
CORS | O | O | O | X |
Formatter Mapping | O | O | O | X |
Antiforgery | O | O | X | O |
TempData | O | O | X | O |
Views | O | O | X | O |
Pages | O | X | X | O |
TagHelpers | O | O | X | O |
MemoryCache | O | O | X | O |
순수하게 MVC 패턴의 웹개발만 한다면 AddControllersWithViews(), WebAPI 개발이 목적이라면 AddController(), 비하인드 코드가 있는 razor page 방식의 웹 어플리케이션 개발은 AddRazorPages(), 모두 필요하면 AddMvc()를 사용하면 된다.
출처 : https://dotnettutorials.net/lesson/difference-between-addmvc-and-addmvccore-method/
AddController vs AddMvc vs AddControllersWithViews vs AddRazorPages
In this article, I am going to discuss the AddController() vs AddMvc() vs AddControllersWithViews() vs AddRazorPages() methods
dotnettutorials.net