ASP.NET Core란?
ASP.NET Core는 ASP.NET Framework의 업그레이드 버전이 아닌, 완전히 새로운 버전의 web application framework를 만들기 위한 library이다.
.NET Core란?
.NET Core는 runtime이다. .NET application의 cross-platform을 위해 개발되었다.
.NET Framework : 4.8(2019년)이 마지막 버전이다. C# 7.3
.NET CORE ROADMAP
2002년(Webforms) -> 2009년(.NET MVC) -> 2016년(.NET Core)
.NET CORE VERSION HISTORY
2018년(.NET Core 2.x) -> 2019년(.NET Core 3.x, C# 8.0) -> 2020(.NET 5.0, C# 9.0) -> 2021(.NET 6.0, C# 10) -> 2022(.NET 7.0, C# 11)
.NET CORE의 장점
1) 빠르고, 오픈소스
2) cross platform. 기존 dotnet은 IIS와 Windows에 묶여있지만, core는 종속성이 없다.
3) Dependency Injection(종속성 주입)이 내장됨 -> 개발시간 절약
4) 쉬운 업데이트
5) Cloud Friendly
6) Performance
.NET CLI : The command line tool for ASP.NET Core
cross-platform tool이다.
CLI syntax는 3 parts로 되어있다.
dotnet [verb] [arguments]
Visual studio를 사용할 수 없는 MAC, Linux 에서 유용하다.
ASP.NET Core MVC 프로젝트 만들기
1) .NET Core 다운로드 후 설치하기
https://dotnet.microsoft.com/en-us/download/dotnet
터미널을 열어 설치된 .NET SDK정보를 확인해보자
C:\Users\TEST>dotnet --info
.NET SDK:
Version: 7.0.306
Commit:
런타임 환경:
OS Name: Windows
OS Version:
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\7.0.306\
Host:
Version: 7.0.9
Architecture: x64
Commit:
.NET SDKs installed:
7.0.306 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 7.0.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
2) Visual Studio 2022 설치
3) 새 프로젝트 만들기
프로젝트 생성한다.
ASP.NET Core Solution 구조
Properties : launchSetting.json파일을 포함한다. 이 파일은 application 시작에 필요한 세팅값이 들어있다.
debug profile, environment variable이 있다.
종속성(Dependencies) : 프로젝트의 모든 dependency를 포함한다.
wwwroot : static files 저장
Views\_ViewImports.cshtml : globally @using 코드가 있고, TagHelpers에 add 되어있다.
TagHelpers
ASP.NET Core에서 처음 소개되었다.
Angular JS directives가 모두 client side rendering이라면, Tag Helpers는 server side rendering이다.
Core이전의 .NET에서는 HTML Helper라는 것을 사용했었다. 둘을 비교해보자.
@*------HTML Helper-----*@
@Html.Label("FirstName", "FirstName : ", new { @class = "form-control" })
@*------TAG Helper-----*@
<label class="form-control" asp-for="FirstName"></label>
@*------HTML Helper-----*@
@Html.LabelFor(m=>m.FirstName, new { @class = "col-md-2 control-label" })
@*------TAG Helper-----*@
<label asp-for="FirstName" class="col-md-2 control-label"></label>
@*------HTML Helper-----*@
@using (Html.BeginForm("Index", "Users", FormMethod.Post, new { @class = "form-horizontal" }))
@*------TAG Helper-----*@
<form class="form-horizontal" method="post" asp-controller="Users" asp-action="Index"></form>
<form class="form-horizontal" method="post" asp-page="Users/Index"></form>
ActionResult in MVC | |
ActionResult | Helper Method |
ViewResult | View |
PartialViewResult | PartialView |
RedirectResult | Redirect |
RedirectToRouteResult | RedirectToAction RedirectToRoute |
ContentResult | Content |
JsonResult | Json |
JavaScriptResult | JavaScript |
FileResult | File |
EmptyResult | (None) |
ActionResult in Razor Pages | |
ActionResult | Helper |
ContentResult | Content |
FileContentResult | File |
NotFoundResult | NotFound |
PageResult | Page |
PartialResult | Partial |
RedirectToPageResult | RedirectToPage RedirectToPagePermanent RedirectToPagePreserveMethod RedirectToPagePreserveMethodPermanent |
ViewComponentResult |
디버깅 시, '파일 저장 시 핫 다시 로드'를 선택하면 reload없이 cshtml파일이 수정 저장될 때마다 적용된 view를 확인할 수 있다.
프로젝트 실행하기
1) IIS Express를 선택해서 실행할 수도 있고, 프로젝트명을 선택해서 실행할 수도 있다.
.net cli를 이용해서 dotnet run 프로젝트명으로도 실행 가능하다.
차이점은 서버이다.
관련문서 : https://bigexecution.tistory.com/102
Package Manager
.Net Core 2.2부터 2개의 package manater가 있다.
1) NuGet : Server-side packages
프로젝트 선택 -> right-click -> NuGet 패키지 관리
2) Libman : Client-side packages
프로젝트 선택 -> right-click -> 추가 -> 클라이언트 쪽 라이브러리 추가
'ASP.NET Core' 카테고리의 다른 글
ASP.NET Core MVC 6] Identity (0) | 2022.01.12 |
---|---|
ASP.NET Core MVC] Routing 라우팅 (0) | 2022.01.11 |
ASP.NET Core MVC] ViewData, [ViewData] attribute, ViewBag (0) | 2022.01.10 |
ASP.NET Core]Partial Views VS View Components (0) | 2022.01.07 |
ASP.NET Core] Model Validation Check (0) | 2021.12.31 |
댓글