c#
[C#] C# 개요 - 1. C#의 특징및 개요
1. C#언어의 버전별 특징 ● 1.0 객체지향 언어에 대한 모든 특징을 담고 2002년에 릴리즈 되었습니다. ● 2.0 2005년에 릴리즈 되었으며 generic을 통한 강력한 데이터 타입이 사용되기 시작했습니다. 이는 코드에 대한 성능의 증가와 함께 타입에러를 감소시키는 역활을 하였습니다. 또한 null 가능한 값형식이 추가되었습니다. ● 3.0 2007년에 릴리즈 되었으며 익명타입과 람다식 그리고 LINQ(Language INtegrated Queries)사용을 통한 서술적 코딩이 가능해 졌습니다. 또한 타입추론을 통한 암시적 지역변수 사용이 가능해졌습니다. ● 4.0 2010년에 릴리즈 되었으며 F#, Python과 같은 동적언어와의 상호운용성이 향상되었습니다. 이로인해 동적타입이 사용되기 시작했..
[C#] C#과 .NET6 시작하기 - 3. Console App 만들어 보기
3. Console App 만들어 보기 (Visual Studio 2022) 지금부터 만들어볼 환경은 Windows상에서 Visual Studio 2022를 사용하는 것으로 간단한 Console App을 만드는 과정을 담고 있습니다. Visual Studio 2022는 설루션(Solution)이라고 하는 다수의 Project를 관리할 수 있는 개념을 가지고 있으므로 Project를 생성하면 자동으로 하나의 설루션 안에 Project를 담아두는 구조로 생성될 것입니다. Visual Studio 2022를 실행하여 처음 나오는 Create a new project화면에서 C#언어의 Console App template을 선택합니다. Project설정 화면에서 Project name을 설정합니다. 프로젝트가 ..
[C#] C#과 .NET6 시작하기 - 2. .NET 이해하기
2. .NET .NET과 연관되는 .NET 6, .NET Core, .NET Framework, Xamarin 등은 서로 밀접하게 연관되어 있으며 어느 부분에서는 서로 간에 중복성을 가지기도 합니다. 이들 연관성이나 각각의 특징에 관해 알아보려면 각각에 대한 개별적인 콘셉트를 이해할 필요가 있습니다. ● .NET Framework .NET Framework는 CLR(Common Language Runtime)을 포함하는 하나의 개발 플랫폼으로서 코드의 실행을 관리하고 Application 개발에 필요한 여러 가지 클래스 라이브러리를 제공하기도 합니다. 마이크로소프트는 원래 .NET Framework를 Cross-platform으로 설계하기를 시도했으나 결과적으로 윈도 전용이 되었으며 4.5.2버전 부터는..
[C#] C#과 .NET6 시작하기 - 1. 개발환경설정
1. 개발환경설정 대체적으로 C# 프로그래밍을 시작하기 위해서 사용할 수 있는 도구로는 다음과 같은 것들이 있습니다. Visual Studio 2022 (Windows or Mac) Visual Studio Code (Cross Flatform) GitHub Codespaces 이외 기타 JetBrains사의 Rider와 같은 것들도 도구도 사용할 수 있습니다. ● Vsiaul Studio Code 크로스 플랫폼이며 가벼운 편집기로 Visual Studio Code는 훌륭한 선택이 될 수 있습니다. Microsoft 제품답게 Windows는 물론이고 Red Hat이나 Ubuntu와 같은 다양한 Linux배포판, Mac OS에서도 사용이 가능합니다. 심지어 ARM 프로세서도 지원하므로 Raspberry P..
[C#] Entity Framework Core - 5. Code First Model
8. EF Core Code First Model Code First Model은 현재 사용하고자 하는 DB가 존재하지 않을 때 C#으로 Model을 정의하여 이를 토대로 DB를 생성하는 방식을 말합니다. 예를 들어 학생과 수업를 관리하는 DB가 필요하다고 할 때 학생은 다수의 수업에 대한 수강신청이 가능하고 하나의 수업에서는 여러 학생이 출석할 수 있습니다. 이때 학생과 수업 테이블 간에는 다대다 관계가 성립됩니다. 위와 같은 시나리오에서 모델을 정의하는 과정을 따라가 보면 우선 다음의 Namespace를 Import하고 using Microsoft.EntityFrameworkCore.Design; using Microsoft.EntityFrameworkCore.SqlServer; Student.cs와..
[C#] Entity Framework Core - 4. 데이터 조작과 트랜잭션
6. EF Core를 통한 데이터 조작하기 EF Core를 사용해 데이터를 추가하거나 변경하거나 삭제하는 작업은 크게 어렵지 않습니다. DbContext는 자동적으로 변화에 대한 추적을 관리하므로 내부에서 반영된 여러 데이터의 추가/삭제/변경에 관한 사항을 로컬 Entity 통해 가지게 됩니다. 그리고 이 변경사항을 실제 데이터베이스에 반영하기를 시도(SaveChanges() 메서드를 통해)하면 Entity는 반영된 결과를 반환하게 될 것입니다. (1) Insert Insert는 해당 Entity에서 Add()메서드를 통해 실행할 수 있습니다. using (Northwind db = new()) { ILoggerFactory loggerFactory = db.GetService(); loggerFacto..
[C#] Entity Framework Core - 3. 질의하기및 Pattern 로드
4. EF Core model 질의하기 이전 과정을 통해 Northwind DB의 Products와 Categories가 2개의 테이블과 일치되는 Model을 가지게 되었고 필요한 데이터를 가져오기 위한 질의를 수행할 수 있게 되었습니다. 그리고 Model에 질의를 수행하는 데는 통상 LINQ를 사용합니다. 우선 Program.cs에서 아래 Namespace를 Import 합니다. 이 Namespace는 Model과 관련된 테이블로부터 데이터를 가져오기 위한 확장 메서드를 사용하기 위한 것입니다. using Microsoft.EntityFrameworkCore; 그리고 Products테이블에있는 모든 ProductId와 ProductName을 가져오기 위한 아래 질의를 구현합니다. using myapp;..
[C#] Entity Framework Core - 2. 모델링(Modeling)
3. EF Core Model EF Core는 여러 규칙을 나타내는 Convention과 테이블의 칼럼을 정의하는 annotation attribute, Fluent API의 조합을 통해 런타임에서 Entity Model을 생성하는 데 사용합니다. 때문에 클래스상에서 동작하는 모든 Action은 후에 실제 Database에 적용되는 Action으로 자동적으로 변환됩니다. 여기서 Entity Class는 테이블의 구조를, 클래스의 인스턴스는 테이블의 행을 나타냅니다. (1) EF Core Convention 모델을 정의하기 위해서 사용할 수 있는 방법으로는 대게 3가지가 있는데 그 중 첫 번째 방법은 EF Core convention을 사용하는 것입니다. 번역하자면 '규칙'에 해당하는데 아래 규칙을 통해 ..