ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages?...

15

Transcript of ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages?...

Page 1: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소
Page 2: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

ASP.NET Core Razor Pages?

• 페이지 기반의 웹앱을 쉽고, 생산적으로 만들 수 있는 ASP.NET Core MVC의새로운 기능

• 필요 구성 요소• .NET Core 2.0.0• Visual Studio를 사용할 경우 Visual Studio 2017 15.3 버전 이상

• ASP.NET 및 웹 개발• .NET Core 플랫폼 간 개발

Page 3: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

새로운 웹앱 템플릿

Page 4: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

간소화된 프로젝트 구조

Core MVC Razor Pages

Page 5: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

@page

• Razor Pages의 핵심 요소

• 페이지의 첫 번째 지시문으로 @page 를 추가.

• 파일이 MVC 액션으로 동작할 수 있게 해 줌.• 컨트롤러를 거치지 않고 요청을 직접 처리.

Page 6: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

PageModel

• “<PageName>Model” 형태로 정의되며 페이지와 동일한 네임스페이스에 위치.• 비하인드 코드 파일 형태(ex : PageName.cshtml.cs)• UI 영역과 로직 영역을 분리.

• @model 지시문을 사용하여 지정.

Page 7: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

Controller, Action Method

• 별도의 Controller가 필요 없음.

• Action Method를 Handler로 대체.

• Handler는 On[Http Verb]형태로 정의.• OnGet (또는 OnGetAsync)• OnPost (또는 OnPostAsync)• 기타

• 명명된 Handler 사용 가능• OnGetProduct(), OnPostProductList(), …

Page 8: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

파일 시스템 기반의 URL 연결

• 페이지에 대한 URL 연결은 파일 시스템 기반의 페이지 위치에 따라 결정• /Pages 폴더에서 시작되는 파일 경로

• @page 지시문을 사용하여 Route Parameter 추가 가능• @page “{id:int}” -> /pagename/1

Page 9: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

간단한 정적 페이지 생성 시나리오(Core MVC)

Controller 추가

Action Method 추가

View 폴더 추가

View 파일 추가

Page 10: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

간단한 정적 페이지 생성 시나리오(Razor Pages)

Page 추가

Page 11: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

DEMOASP.NET Core Razor Pages 살펴보기

Page 12: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

Razor Pages의 장점 및 활용 방안(아주 조심스럽게 생각해보는)

• Easy! Simple!

• 웹 페이지를 생성하는 데 최적화되어 있음.

• HTML View, Json, 파일, 기타 등등 다양한 동작을 포함하는 MVC 컨트롤러가 생성되는 것을 방지할 수 있음.

Razor Pages MVC / Web API

HTML View REST API, SOA

Page 13: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

참고 자료

• Introduction to Razor Pages in ASP.NET Core• https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages

• Get started with Razor Pages in ASP.NET Core• https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages

• Introducing Razor Pages• https://channel9.msdn.com//events/dotnetConf/2017/T317/

• ASP.NET Razor Pages vs MVC: How Do Razor Pages Fit in Your Toolbox?• https://stackify.com/asp-net-razor-pages-vs-mvc/

Page 14: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소

커뮤니티 소개

ASP.NET Korea User Group : http://aspnet.kr

TAEYO.NET : http://taeyo.net

Page 15: ASP.NET Core Razor Pages? · 2018-03-02 · ASP.NET Core Razor Pages? •페이지기반의웹앱을쉽고, 생산적으로만들수있는ASP.NET Core MVC의 새로운기능 •필요구성요소