.NET
-
EF Core - Domain 분리구조 만들기.NET/Database 2024. 3. 22. 08:42
DDD ?도메인 소프트웨어로 해결해야 할 비즈니스의 영역 입니다.도메인 엔티티 도메인 주도 개발에서 실제 식별 가능한 객체EF Entity데이터베이스 테이블에 저장되는 데이터의 구조즉 테이블을 클래스화 한 것을 EF Entity라고 한다.EF Entity를 Domain Entity와 동일하게 사용할 경우의 문제점EF 엔티티를 도메인 엔티티로 그대로 사용하는 경우, 다음과 같은 문제가 발생할 수 있습니다:도메인의 데이터베이스 의존성 증가: 도메인 엔티티가 EF 엔티티로 구현되면, 데이터베이스의 스키마 변경이 도메인 로직에 직접적인 영향을 미치게 됩니다. 이는 도메인 로직이 데이터베이스 설계에 종속되게 만들어, 도메인 모델의 변경이 불필요하게 자주 일어나게 됩니다.데이터베이스 스키마 노출: EF 엔티티가 도..
-
EF Core 시작하기(2) - DI,CRUD.NET/Database 2023. 12. 22. 00:11
이전글 EF Core 시작하기(1) - ef core 패키지 설치, DB 연결 — 개발블로그 (tistory.com) EF Core 시작하기(1) - ef core 패키지 설치, DB 연결 EF Core EF Core는 닷넷의 ORM도구인 Entity Framework를 오픈 소스 플랫폼 교차 버전으로 만든 것 입니다. Entity Framework가 visual studio 환경에 종속적이고 GUI환경에 윈도우창으로 나오는 설계 도구를 사용해 devman-hoon.tistory.com 이전 포스트에서는 패키지를 설치하고 연결하는데까지 다뤘습니다. 본격적으로 데이터를 다루는 내용을 하기전에 의존성 주입에 대한 내용이 필요할 것 같습니다. 닷넷 DI도구 패키지를 우선 넣어줍니다. ASP.NET Web 프로..
-
EF Core 시작하기(1) - ef core 패키지 설치, DB 연결.NET/Database 2023. 12. 17. 06:16
EF Core EF Core는 닷넷의 ORM도구인 Entity Framework를 오픈 소스 플랫폼 교차 버전으로 만든 것 입니다. Entity Framework가 visual studio 환경에 종속적이고 GUI환경에 윈도우창으로 나오는 설계 도구를 사용해서 사용했다면, EF Core는 Cli기반이므로 Visual sutdio를 사용할 수 없는 리눅스나, 맥에서도 터미널을 통해서 사용할 수 있습니다. 이 포스트에서는 DBMS로 MySql을 사용하고 있고, docker를 이용해서 로컬에 설치하고 진행했습니다. IDE는 Rider를 사용하였습니다. 맥이나 리눅스에서도 동일하게 사용할 수 있습니다. 이부분은 포스트에서는 생략합니다. dotnet tool 설정 dotnet sdk가 설치되어 있다면 터미널에서 ..
-
Blazor Server로 풀스택 웹어플리케이션 만들기(1) - Blazor Server란?.NET/WEB 2023. 9. 28. 23:43
이 시리즈에서는 블레이저 서버를 이용해서 풀스택 웹어플리케이션을 만드는 내용을 다룹니다.C# Blazor란?C#과 razor 컴포넌트를 이용해서 프론트엔드를 구성할 수 있습니다.C#에서는 ASP.NET Core라는 강력한 백엔드 프레임워크가 이미 있기 때문에, 프론트엔드와 백엔드 모두를 C#으로 작성할수 있습니다.Blazor 프로젝트 템플릿은 두가지로 나눌 수 있습니다.Blazor WebAssemblyBlazor WebAssembly는 말그대로 WebAssembly 프로젝트입니다. 브라우저에서 wasm으로 빌드 된 닷넷 런타임을 실행시키고 C#코드를 실행시키는 방식으로 구동됩니다. 따라서 Blazor Wasm도 Asp.net core 서버와 코드를 공유할수 있는 큰 장점이 있습니다.언어를 전환할 필요도 ..
-
C# 문법 Null Safety.NET/Common 2022. 9. 17. 21:52
C# NULL Safety C# 8.0에서는 다음과 같은 Nullsafety 연산자를 지원한다. NULL 대체할당 var nullstring = null; nullstring ??= "null일경우 대체할 스트링" 이 문법을 사용하면 다음과 같이 Null check하고 할당하는 코드를 단 한줄로 줄일 수 있다. if(nullstring == null) { nullstring = "null일경우 대체할 스트링"; } null safety 연산자를 해석하면 다음과 같다. A??=B ; A(좌측변수)가 널이라면 B(우측변수)를 A에 할당한다 NULL 대체 NULL값이 들어있는 변수를 대체하는 연산자는 ?? 이다. var nullstring = null; Console.WriteLine(nullstring?? ..
-
Regex 정규식 활용 그룹명.NET/Common 2022. 9. 7. 13:11
static void Main(string[] args) { Regex regex = new Regex(@"^(?.+?)_(?.+)\..+$"); var match = regex.Match("TEST_PID12345678.csv"); Dictionary keyValues = new Dictionary(); if(match.Success) { foreach (string groupName in regex.GetGroupNames()) { if (char.IsDigit(groupName.ToCharArray()[0])) continue; //숫자로 그룹명 자동생성 keyValues.Add(groupName, match.Groups[groupName].Value); } Console.WriteLine(keyV..
-
C# RS232 통신.NET/Common 2022. 9. 4. 00:03
설비나 계측기에 대한 데이터값을 받을때 자주 사용합니다. public partial class FormSerialblog : Form { SerialPort Port = new SerialPort(); Queue Datas = new Queue(); public FormSerialblog() { InitializeComponent(); Port.PortName = "COM1"; Port.BaudRate = 9600; Port.DataReceived += Port_DataReceived; Port.Open(); } private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e) { Thread.Sleep(100); var readSt..