-
[ASP.NET Core] AddController(), AddMvc(), AddControllersWithViews(), AddRazorPages() 차이점.NET/ASP.NET Core 2021. 6. 26. 11:33반응형
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/
반응형'.NET > ASP.NET Core' 카테고리의 다른 글
[ASP.NET Core] 기본 로그를 지우고 Serilog만 나오도록 수정하는 방법 (0) 2021.09.22 [ASP.NET Core] AddSingleton(), AddScoped(), AddTransient() 차이점 - 1 (1) 2021.09.12 [ASP.NET Core] 세상 간편해진 Video/Audio Streaming (0) 2021.04.21 [ASP.NET Core] 개선된 다운로드 예제(feat. ASP.NET을 쓰지 말아야할 이유 1 Stack 추가) (0) 2021.04.15 [ASP.NET Core] HTTP Cache-Control Header 를 이용한 Get 응답(Response) 캐싱 및 파일 다운로드 예제 (0) 2021.04.12