# 닷넷코어 장점

1. 접근성이 뛰어나다.

- Java와 비슷한 문법의 C#

2. 오픈소스이다. (2.0 부터)

3. 탄탄한 라이브러리와 좋은 패턴

- 수많은 스탠다드 라이브러리를 통해, API를 사용

4. 최고의 개발자 IDE

- Unit Test, Deploy

5. 크로스 플랫폼

- C#과 .net을 통해, 모바일까지 개발 가능

6. 세련된 현대적 프로그래밍 언어

- C# async / await


# 환경설정

1. dotnet SDK 설치

- 터미널 상에서, dotnet 명령어로 확인

2. Visual Studio 설치

- ASPNET and web development만 설치해도 무방함


# 첫 프로젝트

1. 파일 - new - project - dotnet Core - ASP Core Web Application - Empty or MVC Web Application

change authentification을 누르고, User별 인증으로 선택할 경우 사용자인증을 제공하는 기능이 형성된다.

(Data 폴더 자동 생성)


# 기본 상식

- Solution 폴더 하부에는 여러개의 프로젝트가 올 수 있다.

- Angular와 같이, Dependency Injection이 이루어진다.

- Ctrl + F8 : 디버깅없이 빨리 실행하기

- prop 누르고 탭 두번 클릭 시, 함수 빠르게 생성할 수 있음

- string 입력 후 탭 두번 클릭 시, 함수 빠르게 생성 가능

- Ctrl + . : 네임스페이스 import 하기

- wwwRoot 폴더 안에는 index.html과 같은 정적 파일만 넣어야 한다.

(Javascript 라이브러리 등 사용시, wwwroot 폴더 내에 위치 시켜야 한다.)

StartUp.cs 파일 상의 configure() 함수 부분에 아래와 같이 호출해주어야, 닷넷코어가 static 파일들을 인지한다. 

app.UseStaticFiles(); 


# BreakPoint 사용법 : ISS Express 실행하기 (디버깅 모드와 실행됨)

1. 변수를 확인하고 싶은 곳의 Break point 지정 후, ISS Express 실행하기 클릭

2. 함수 수행될 때까지 웹페이지 동작시킴

3. BreakPoint 걸린 곳에서, 변수 위에 커서를 올리고 화살표를 눌러서 변수 확인

4. F10, F11(함수 내부구조까지 확인), Shift + F11(함수 외부로 나오기)


# MVC

- Model <> Database 

- View <> Controller <> Model


# Controller와 View

- Controller를 만들 때는 Controllers 폴더 내 항상 (이름).Controllers.cs 형식을 가져야 한다.

- View를 만들 때는 Views 폴더 내 항상 (이름).cshtml 형식을 가져야 한다.

- RaceView 방식을 사용하려면, (이름).cshtml 형식을 가지고, C#과 Pure HTML을 사용할 수 있다.

- cshtml 파일 내에서는 @ 기호를 사용해서, C# 언어를 사용할 수 있다.


# MVC 환경설정

- Routing 설정으로, 첫 화면 설정하기

- StartUp.cs 파일 상의 configure() 함수 부분에 아래와 같은 방법으로, 첫 라우팅을 설정해 줄 수 있다.

app.UseMvc(routes => {

routes.MapRoute(

name: "default",

template: "{controller Home}/{action Student}/{id?}"

// Home.Controller.cs 생성되어 있음, 내부에 Student action과 매핑하는 코드가 존재

// Student.cshtml 생성되어 있음

// id는 올수도 있고, 안올 수도 있음

)

});


# Model 바인딩

- Model은 Model 폴더 내에, (이름).cs 형태의 클래스를 사용한다.

- Controller의 [HTTPPOST] 노테이션을 사용할 경우, 자동으로 HTTP 요청의 body를 미리 정의된 Model에 매핑해준다.


# 유효성 검사

- Model 클래스가 담당한다.

[Required]

[MaxLength(50)]

public string Name{get; set;}

[Range(15,70)]

[MinLength(10)]

- Controller 내 HTTPPOST 처리 부분에서 유효성을 검사하는 방법

- ModelState.IsValid는 유효성 검사에 성공했을 경우, True를 반환한다.

- View 내 Input 태그 밑에 아래와 같이, TagHelper를 사용할 수 있다.

<span asp-taghelper-for="모델속성명"> 유효성 검사 실패시 표시 언어 </span>

모델 속성명 인식 불가시, .cshtml 파일 최상단에, @using 파일 경로 지정 @model (모델명) 등이 명시되어야 한다.

- Views 폴더 내에서, add RaceView 추가 후, import.cshtml이라는 파일을 생성한다.

@... mvc.taghelper.. @ 참조문 지정


# 유효성 검사2

- Controller 내 HttpPost를 처리하는 파트에서, 아래와 같이 [ValidateAntiForgeryToken]을 명시할 경우, Form 데이터를 변조?하는 공격을 막아 준다. 기본적으로 Form 태그 밑에 Inspection Code로 검사 시, Token이 자동으로 생성되어 있다.

[HTTPPOST]

[ValidateAntiForgeryToken] 


# ViewModel

- Model 내 column은 DB table 내 column과 매핑된다.

- Model은 하나의 Table에만 매핑가능하지만

- ViewModel은 ViewModels 폴더 내에 생성한다.

- 여러개의 Model을 하나의 ViewModel 내에 속성으로 매핑가능하다.

StudentTeachersViewModel내에 하나의 Student 속성과 List<Teacher> 속성을 두어, 여러개의 모델을 입력할 수 있다.


# 문법 기초

- 리스트 선언 & 객체 선언

List<Teacher> teachers = new List<Teachers>() {

new Teacher() { Name = "zzz", Class="ggg" },

new Teacher() { Name = "222", Class="222" }

}

- @foreach(var teacher in Model.teachers)

{

<tr>

<td>@teacher.Name</td>

<td>@teacher.Class</td>

</tr>

}

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기