본문 바로가기
ASP.NET Core

ASP.NET Core 시작하기! - Core설명, 프로젝트 만들기, 구조 (1)

by Fastlane 2021. 12. 22.
728x90
반응형

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 Downloads (Linux, macOS, and Windows)

Official .NET downloads for Linux, macOS, and Windows. .NET is a free, cross-platform, open-source developer platform for building many different types of applications.

dotnet.microsoft.com

터미널을 열어 설치된 .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

 

ASP.NET Core] Kestrel vs IIS, Hosting Model

Kestrel ASP.NET Core를 위한, cross-platform, open-source web server이다. ASP.NET Core에 기본으로 포함되어 있다. ASP.NET Core가 지원하는 모든 platforms, versions에서 사용이 가능하다. Kestrel는 ASP.NE..

bigexecution.tistory.com

 

Package Manager

.Net Core 2.2부터 2개의 package manater가 있다. 

1) NuGet : Server-side packages

프로젝트 선택 -> right-click -> NuGet 패키지 관리

2) Libman : Client-side packages

프로젝트 선택 -> right-click -> 추가 -> 클라이언트 쪽 라이브러리 추가

 

728x90
반응형

댓글