클리엘
CLIEL LAB
클리엘
전체 방문자
222,074
오늘
94
어제
572
  • 분류 전체보기 (487) N
    • Mobile (47)
      • Kotlin (47)
    • Web (84)
      • NestJS (9)
      • HTML5 & CSS3 (38)
      • Javascript (20)
      • TypeScript (6)
      • JQuery (11)
    • .NET (275) N
      • C# (62)
      • ASP.NET (64) N
      • Windows API for .NET (128)
    • Server (53)
      • SQL Server (10)
      • MariaDB (18)
      • Windows Server (6)
      • node.js (19)
    • System (12)
      • 작업LOG (12)
    • Review (11)
    • ETC (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로그 정리

인기 글

  • [MSSQL] MS SQL Server 다운로드및 설치/설⋯
    2022.02.23
    [MSSQL] MS SQL Server 다운로드및 설치/설⋯
  • [C#] Thread(스레드)와 Task(태스크)
    2021.10.24
    [C#] Thread(스레드)와 Task(태스크)
  • [C#] TCP/IP 통신
    2021.10.28
    [C#] TCP/IP 통신
  • [ASP.NET Core] Blazor 웹 프로젝트 시작하⋯
    2022.04.01
    [ASP.NET Core] Blazor 웹 프로젝트 시작하⋯
  • [ASP.NET Core] Razor Page로 웹프로젝트⋯
    2022.01.24
    [ASP.NET Core] Razor Page로 웹프로젝트⋯

태그

  • ASP.NET
  • android
  • node.js
  • .NET
  • Session
  • CentOS
  • MariaDB
  • Windows API
  • c#
  • android studio
  • Kotlin
  • NestJS
  • JavaScript
  • asp.net core web api
  • HTML5
  • jQuery
  • controller
  • Entity Framework
  • CSS3
  • asp.net core

최근 댓글

  • 감사합니다.^^
    클리엘
  • 많은 도움이 되었습니다. 감사합니다.
    modin
  • 특정 프로그램이라는게 어떤 프로그램인가요?
    클리엘
  • 자주 들러주세요. 감사합니다.
    클리엘
  • 진짜 상세한 포스팅이네요. 정말 많이 감사 드립니다!
    jman

최근 글

  • ASP.NET Core - [Blazor] 6. DataB⋯
    2023.03.29
    ASP.NET Core - [Blazor] 6. DataB⋯
  • ASP.NET Core - [Blazor] 5. Blazo⋯
    2023.03.22
    ASP.NET Core - [Blazor] 5. Blazo⋯
  • ASP.NET Core - [Blazor] 3. Blazo⋯
    2023.03.12
    ASP.NET Core - [Blazor] 3. Blazo⋯
  • ASP.NET Core - [Blazor] 4. 고급 Bl⋯
    2023.03.07
    ASP.NET Core - [Blazor] 4. 고급 Bl⋯
  • ASP.NET Core - [Blazor] 2. Blazo⋯
    2023.03.06
    ASP.NET Core - [Blazor] 2. Blazo⋯

티스토리

hELLO · Designed By 정상우.
클리엘

CLIEL LAB

ASP.NET Core - 7. 예제 프로젝트 만들기
.NET/ASP.NET

ASP.NET Core - 7. 예제 프로젝트 만들기

2022. 11. 18. 21:13
728x90

이번에는 향후 사용하게될 간단한 Project를 생성하고자 합니다. 해당 Project에는 샘플 Database를 사용한 Data Model과 HTML Content의 형식화를 위한 client-side package, 그리고 간단한 요청 Pipeline을 포함할 것입니다.

 

1. Project 생성

 

Visual Studio를 실행하여 File -> New -> Project Item을 선택합니다. Project Template중 ASP.NET Core Empty를 선택합니다.

사용할 Project명을 지정합니다.

.NET 6.0을 선택합니다.

최소한의 Project를 생성합니다.

 

2. Data Model

 

아래 Sample Database를 내려받아 Microsoft SQL Server Management Studio를 실행하여 Localhost 혹은 원격지 DB에 해당 Database file을 복원합니다.

Northwind.bak
6.87MB

EF Core Power Tools가 설치되어 있지 않으면 아래 Link를 통해 EF Core Power Tools를 내려 받습니다.

EF Core Power Tools - Visual Studio Marketplace

 

EF Core Power Tools - Visual Studio Marketplace

Extension for Visual Studio - Useful design-time DbContext features, added to the Visual Studio Solution Explorer context menu. When right-clicking on a C# project, the following context menu functions are available: Reverse Engineer - Generates POCO class

marketplace.visualstudio.com

Project에 Models라는 Folder를 만들고 Project를 Mouse오른쪽 버튼으로 눌러 'EF Core Power Tools'하위에 'Reverse Enginner' Item을 선택합니다.

 

Choose Database Connection에서 'Add'의 'Add Database Connection'을 선택합니다.

 

Connection Properties창에서 Server name에 localhost또는 원격 DB의 주소와 port를 입력하고 Authentication에는 해당 DB로 접근가능한 계정을 선택합니다. 인증이 제대로 이루어 졌다면 Select or enter a database name에 위에서 복원한 Northwind를 목록에서 선택하고 'OK'를 눌러줍니다.

그리고 이어지는 Choose Database Connection화면에서 위에서 추가한 Northwind연결항목을 선택한 뒤 'OK'를 눌러줍니다.

 

Choose Database Objects에서는 Northwind Database의 모든 Table을 선택합니다.

Generate EF Core Model in Project ...에서는 Dbcontext path에 위에서 Project에 추가한 Models라는 folder명을 입력합니다.

잠시 기다리면 Models Folder에 선택한 Table의 Model과 Database Context가 추가될 것입니다. 또한 설치되지 있지 않은 경우 Entity Framework Core Package로 같이 설치될 수 있습니다.

 

이제 Program.cs에서 아래와 같이 NorthwindContext Service를 추가하고

using MyWebApp.Models;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSqlServer<NorthwindContext>(builder.Configuration.GetConnectionString("DefaultConnection"));

DB연결 설정을 appsettings.json file에 추가합니다.

"ConnectionStrings": {
    "DefaultConnection": "Data Source=192.168.1.100;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=12345;MultipleActiveResultSets=True;TrustServerCertificate=True"
}

 

3. Bootstrap 설치

 

Project에 wwwroot folder를 추가하고 Add -> Client-Side Library를 선택합니다.

Library에 bootstrap@5.2.2를 검색하고 Install을 눌러 설치합니다.

 

4. 요청 Pipeline 설정

 

TestMiddleware.cs이름의 Middleware file을 아래와 같이 Project에 정의하고

using MyWebApp.Models;

namespace MyWebApp
{
    public class TestMiddleware
    {
        private RequestDelegate nextDelegate;
        public TestMiddleware(RequestDelegate next)
        {
            nextDelegate = next;
        }
        public async Task Invoke(HttpContext context, NorthwindContext dataContext)
        {
            if (context.Request.Path == "/test")
            {
                await context.Response.WriteAsync($"There are {dataContext.Products.Count()} products\n");
                await context.Response.WriteAsync($"There are {dataContext.Categories.Count()} categories\n");
                await context.Response.WriteAsync($"There are {dataContext.Suppliers.Count()} suppliers\n");
            }
            else
            {
                await nextDelegate(context);
            }
        }
    }
}

해당 Middleware를 요청 Pipeline에 추가합니다.

using MyWebApp.Models;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSqlServer<NorthwindContext>(builder.Configuration.GetConnectionString("DefaultConnection"));

var app = builder.Build();

app.UseMiddleware<MyWebApp.TestMiddleware>();

app.MapGet("/", () => "Hello World!");

app.Run();

Project를 실행하고 /test로 URL을 요청하여 다음과 같은 결과가 표시되는지 확인합니다.

 

728x90
저작자표시 비영리 변경금지

'.NET > ASP.NET' 카테고리의 다른 글

ASP.NET Core - 9. 고급 Web Service 기능  (0) 2022.12.04
ASP.NET Core - 8. RESTful Web Service  (0) 2022.11.26
ASP.NET Core - 6. Data Caching  (0) 2022.11.13
ASP.NET Core - 5. Platform 기능 활용하기 - 2  (0) 2022.11.10
ASP.NET Core - 4. Platform 기능 활용하기 - 1  (0) 2022.11.07
    '.NET/ASP.NET' 카테고리의 다른 글
    • ASP.NET Core - 9. 고급 Web Service 기능
    • ASP.NET Core - 8. RESTful Web Service
    • ASP.NET Core - 6. Data Caching
    • ASP.NET Core - 5. Platform 기능 활용하기 - 2
    asp.net core
    클리엘
    클리엘
    누구냐 넌?
    댓글쓰기
    ASP.NET Core - 8. RESTful Web Service
    다음 글
    ASP.NET Core - 8. RESTful Web Service
    ASP.NET Core - 6. Data Caching
    이전 글
    ASP.NET Core - 6. Data Caching

    티스토리툴바