.NET
[.NET] C#과 NET의 프로젝트 유형 - 4. Entity Data Model
6. entity data model 생성하기 (SQLite) 일반적으로 대부분의 Application은 데이터를 다루는데 관계형 데이터베이스와 같은 DB를 사용합니다. 이와 관련하여 SQL Server나 SQLite에 저장된 데이터베이스를 어떻게 entity data model로 정의할 수 있는지에 대해서 알아보고자 합니다. 우선 이를 위해 SQLite용으로 사용 가능한 Northwind.db를 만들어 두었습니다. 이 파일은 아래 링크에서 내려받으시면 됩니다. 위의 파일을 적당한 위치에 내려받고 나서 이제 해당 db파일을 상대로 dotnet-ef을 통해 entity model을 scaffold 할 것입니다. (1) SQLite의 entity model을 위한 class library 생성 data mo..
![[.NET] C#과 NET의 프로젝트 유형 - 3. Project 구조설계및 프로젝트 템플릿](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLRL86%2FbtrHL3HYuSq%2FOsxmkCZVhAngRMbNqNWOTK%2Fimg.png)
[.NET] C#과 NET의 프로젝트 유형 - 3. Project 구조설계및 프로젝트 템플릿
4. project의 구조화 크고 복잡한 설루션에서는 내부의 코드를 파악하는데 어려움이 있을 수 있습니다. 이것은 프로젝트를 구조화해야 하는 주요 이유가 될 수 있는데 이로 인해 필요한 컴포넌트를 쉽게 찾을 수 있도록 하는 것입니다. 큰 하나의 설루션은 여러 프로젝트로 나뉘어 구성될 수 있으며 이때 프로젝트의 이름은 나름대로의 체계성을 가지고 있는 것이 좋습니다. 프로젝트의 이름을 붙이기 위한 다양한 방법이 존재하는데 예를 들어 모든 프로젝트의 접두사로 해당 회사의 이름을 붙이는 것도 하나의 방법이 될 수 있습니다. 예를 들어 회사명이 Northwind라면 아래와 같이 각 프로젝트의 유형별로 나뉘어 구성할 수 있을 것입니다. Northwind.Common 일반적인 공통기능의 Class Library 모음..
![[.NET] C#과 NET의 프로젝트 유형 - 2. ASP.NET Core와 Windows 전용 Desktop App](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8hphX%2FbtrHJjrjFDl%2FoSKLclxj20aNbsPiXpGecK%2Fimg.png)
[.NET] C#과 NET의 프로젝트 유형 - 2. ASP.NET Core와 Windows 전용 Desktop App
2. ASP.NET Core의 새로운 기능 지난 몇 년 동안 Microsoft는 ASP.NET Core의 능력을 급속히 확장시켜 왔으며 각각의 Version은 아래와 같은 Flatform을 지원합니다. ASP.NET Core 1.1 ~ 2.2 : .NET Core 및 .NET Framework ASP.NET Core 3.0 ~ : .NET Core 3.0 및 이후 버전 (1) ASP.NET Core 1.0 ASP.NET Core 1.0은 2016년 6월에 릴리즈 되었으며 Windows, macOS, Linux등의 OS에서 cross-platform Web이나 Service를 구축하기 위해 필요한 최소한의 안정된 API를 구현하는데 집중한 버전입니다. (2) ASP.NET Core 1.1 ASP.NET C..
![[.NET] C#과 NET의 프로젝트 유형 - 1. App Model](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiAReU%2FbtrHM7PRfPo%2Fy4MjkpKRu5Jx0MIibBaYd0%2Fimg.png)
[.NET] C#과 NET의 프로젝트 유형 - 1. App Model
1. C#과 .NET의 App Model App Model은 일반적인 Application을 제작하는 대부분의 경우에 사용됩니다. 이와 관련하여 마이크로소프트는 App Model에 대한 광범위한 문서를 제공하고 있는데 이는 아래 주소에서 확인할 수 있습니다. .NET Application Architecture Guides (microsoft.com) .NET Application Architecture Guides Free e-books and practical advice for developing for web, desktop, mobile, and microservices with Docker. Learn how to migrate existing .NET apps to the cloud. dot..
![[.NET] 닷넷 Type 사용하기 - 8. image 다루기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceWCeb%2FbtrEmQxdz1h%2FsUKEokVpU1KFy8tNOOFPFk%2Fimg.png)
[.NET] 닷넷 Type 사용하기 - 8. image 다루기
9. image 다루기 .NET Framework에서 Image를 다루기 위한 것으로 System.Drawing.Image를 사용할 수 있었습니다. 그러나 .NET Core 1.0이 개발되기 시작한 후부터는 더 이상 System.Drawing.Image를 사용할 수 없게 되었고 마이크로소프트는 System.Drawing은 더이상 지원되지 않을 것이며 비 크로스 플랫폼에 해당하므로 사용하지 말 것을 권고하고 있습니다. 대신 이를 대체할 수 있는 다른 대안으로 ImageSharp이나 SkiaSharp을 사용할 수 있습니다. 여기서는 이 중에서 ImageSharp을 사용해 Image를 다루는 방법에 간단히 알아보고자 합니다. ImageSharp은 2D graphics을 위한 third-party cross-p..
![[.NET] 닷넷 - 5. .NET Framework에서 .NET으로의 전환](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMkgmq%2FbtrCqn6siA4%2F1pc8j5rNzoUj1QvkNcuBK1%2Fimg.png)
[.NET] 닷넷 - 5. .NET Framework에서 .NET으로의 전환
6. .NET Framework에서 .NET으로의 전환 기존에 존재하는 .NET Framework App을 새로운 .NET 버전으로 전환하는 것은 선택의 문제입니다. 예를 들어 비교적 적은 방문자를 유지하고 있는 .NET Framework의 Web 서비스의 경우 현재 상태로 아무런 문제가 없다면 굳이 전환이 필요하지 않을 수 있지만 Windows Server에서의 비용 문제로 인해 Linux Server로 서버를 이전하고자 하는 경우라면 전환에 필요한 비용이 많지 않다면 오히려 전환이 이득이 될 수 있습니다. ● 전환 가능한 Application의 유형 .NET은 Windows, Linux, MacOS등에서 실행이 가능한 것으로 아래 유형을 지원하고 있습니다. 기존의 Application이 Windows..
![[.NET] 닷넷 - 4. Decompiling](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1BVJy%2FbtrFAPFiD3y%2Fq8dMkyvisE0Fnji7h3k9q0%2Fimg.png)
[.NET] 닷넷 - 4. Decompiling
5. Decompiling .NET은 IL이라고 하는 중간 언어를 거치를 방식으로 컴파일이 진행됩니다. 이런 원리를 통해 IL을 다시 본래 소스코드로 되돌려 볼 수 있는데 이를 '디컴파일'이라고 합니다. 디컴파일을 위해서는 여러 가지 도구를 사용할 수 있는데 마이크로소프트에서 공식적으로 이를 위해 내놓은 도구로 'ILSpy'라는 것이 있습니다. 이 도구는 Visual Studio (2022)에서 확장 기능으로 설치해 사용할 수 있습니다. Visual Studio를 실행해 'Manage Extension'안에서 ILSPY를 검색하고 해당 확장 기능을 설치합니다. Visual Studio를 종료하고 설치를 마무리합니다. Visual Studio를 다시 실행하고 'Tool -> ILSpy'를 선택하여 실행한 ..
![[.NET] 닷넷 - 3. 배포하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb81oKQ%2FbtrFBhO660Q%2FwJQBpQ3TAEII0zBcZmRkh0%2Fimg.png)
[.NET] 닷넷 - 3. 배포하기
3. App 배포하기 다른 개발자를 위해 Class Library를 만들거나 일반적인 사용자를 위한 App을 만들게 되는 경우 이를 사용 가능하도록 하려면 배포하는 과정이 필요하며 배포하는 방식은 다음과 같이 크게 2가지가 있습니다. Self-contained Framework-dependent Framework-dependent는 배포해야 하는 파일 집합의 크기가 매우 간소해지지만 시스템이 .NET이 반드시 설치되어 있어야 합니다. 반면 Self-contained는 수많은 파일들이 함께 배포가 되는 경우이므로 아주 간단한 Console App정도라 하더라도 매우 많은 수의 파일이 동반될 수 있고 그에 따라 배포되어야 하는 용량도 매우 커질 수 있습니다. 하지만 Self-contained는 .NET의 설..