4. project의 구조화
크고 복잡한 설루션에서는 내부의 코드를 파악하는데 어려움이 있을 수 있습니다. 이것은 프로젝트를 구조화해야 하는 주요 이유가 될 수 있는데 이로 인해 필요한 컴포넌트를 쉽게 찾을 수 있도록 하는 것입니다. 큰 하나의 설루션은 여러 프로젝트로 나뉘어 구성될 수 있으며 이때 프로젝트의 이름은 나름대로의 체계성을 가지고 있는 것이 좋습니다.
프로젝트의 이름을 붙이기 위한 다양한 방법이 존재하는데 예를 들어 모든 프로젝트의 접두사로 해당 회사의 이름을 붙이는 것도 하나의 방법이 될 수 있습니다. 예를 들어 회사명이 Northwind라면 아래와 같이 각 프로젝트의 유형별로 나뉘어 구성할 수 있을 것입니다.
Northwind.Common | 일반적인 공통기능의 Class Library 모음입니다. 여기에는 interfaces나 enum, class, record, struct등 다른 프로젝트에서 공통으로 사용되는 코드들을 모아 둡니다. |
Northwind.Common. EntityModels | 공통의 EF Core entity model을 모아둔 프로젝트입니다. Entity model은 종종 클라이언트와 서버에서 동일하게 사용되는데 이것은 특정 데이터베이스의 공급자에 대한 의존성을 분리하는데 가장 적합한 방식입니다. |
Northwind.Common.DataContext | 특정 데이터베이스 공급자에 의존하는 EF Core database context 라이브러리 프로젝트입니다. |
Northwind.Web | 정적 HTML파일과 동적 Razor Page가 사용되는 비교적 간단한 방식의 Web 프로젝트입니다. |
Northwind.Razor.Component | 여러 프로젝트에 사용되는 Razor Page의 class library프로젝트입니다. |
Northwind.Mvc | MVC 패턴과 더 쉽게 단위 테스트가 가능한 비교적 복잡한 방식의 ASP.NET Core Web프로젝트 입니다. |
Northwind.WebApi | HTTP API서비스를 위한 ASP.NET Core프로젝트입니다. |
Northwind.OData | 클라이언트가 Query를 제어할 수 있도록 OData가 구현된 HTTP API 서비스의 ASP.NET Core프로젝트입니다. |
Northwind.GraphQL | 클라이언트가 Query를 제어할 수 있도록 GraphQL이 구현된 HTTP API 서비스의 ASP.NET Core프로젝트입니다. |
Northwind.gRPC | gRPC 서비스를 위한 ASP.NET Core 프로젝트입니다. |
Northwind.SignalR | 실시간 통신을 위한 ASP.NET Core 프로젝트입니다. |
Northwind.AzureFuncs | Azure Function에서의 serverless nanoservice를 호스팅하기 위한 ASP.NET Core프로젝트입니다. |
Northwind.BlazorServer | ASP.NET Core Blazor Server 프로젝트입니다. |
Northwind.BlazorWasm.Client | ASP.NET Core Blazor WebAssembly client-side 프로젝트입니다. |
Northwind.BlazorWasm.Server | ASP.NET Core Blazor WebAssembly server-side 프로젝트입니다. |
Northwind.Maui | 데스크탑이나 모바일앱을 위한 Cross-platform .NET MAUI 프로젝트입니다. |
Northwind.MauiBlazor | OS와의 네이티브통합을 통해 Blazor component를 호스팅하기 위한 .NET MAUI 프로젝트입니다. |
5. 기타 프로젝트 템플릿
.NET SDK가 설치될 때는 다수의 프로젝트 템플릿을 같이 포함하여 설치됩니다. 명령줄에서 아래 명령을 통해 사용 가능한 프로젝트 템플릿 유형을 확인해 볼 수 있습니다.
dotnet new --list |
(1) 프로젝트 템플릿 추가하기
위 항목을 보면 SPA를 위한 프로젝트 중 Angular와 React.js 등이 있음을 알 수 있습니다. 이 상황에서 Vue와 같은 SPA프로젝트를 추가하고자 할 때 어떻게 프로젝트 유형을 추가할 수 있을지를 알아보고자 합니다.
기본적으로 추가 가능한 많은 수의 프로젝트 템플릿이 존재하며 아래 주소에서 그 항목들을 살펴볼 수 있습니다.
dotnet templates (dotnetnew.azurewebsites.net)
위의 홈페이지에서 'vue'를 입력하여 검색을 하게 되면 관련된 템플릿 목록을 확인할 수 있습니다.
여기서 원하는 항목을 선택하면 기본적인 설치 및 사용방법에 대한 내용을 확인할 수 있는데 예제에서는 ASP.NET Core with Vue.js를 선택하였습니다.
이제 위 설명대로 명령을 입력하면 해당 프로젝트 템플릿이 설치될 것입니다.
'.NET' 카테고리의 다른 글
[C# 12와 .NET 8] 1. .NET 개요 (0) | 2024.01.08 |
---|---|
[.NET] C#과 NET의 프로젝트 유형 - 4. Entity Data Model (0) | 2022.07.20 |
[.NET] C#과 NET의 프로젝트 유형 - 2. ASP.NET Core와 Windows 전용 Desktop App (0) | 2022.07.20 |
[.NET] C#과 NET의 프로젝트 유형 - 1. App Model (0) | 2022.07.20 |
[.NET] 닷넷 Type 사용하기 - 8. image 다루기 (0) | 2022.06.26 |