이번에는 C#의 .Net Core에 대하여 알아보겠습니다.
.Net Core는 기존의 Winform, WPF 등에서 사용하던 .Net Framework와는 차이가 있습니다.
간단하게 설명드리면 .Net Framework의 한계를 개선하기 위하여
처음부터 다시 만든 플랫폼이라고 생각하시면 될 것 같습니다.
그리고 .Net Core로 개발한 프로그램은 .Net Framework에서도 실행이 가능하지만 4.0 이상의 버전에서만 가능하며,
Visual Studio 2010 에서는 열리지 않는 것을 확인하였고, 아래 사이트에 나와있는 내용에 의하면
.Net Core 3.1 프로그램을 개발하려면 Visual Studio 2019 업데이트 버전 16.4가 필요하다고 합니다.
또한 저는 이미 .Net Core가 설치되어 있었지만 .Net Framework만 설치되어있다면 .Net Core를 별도로 설치해야 합니다.
별도의 설치는 아래를 클릭하시면 나오는 곳에서 가능합니다.
다음은 GraphGuide 라는 사이트에서 발췌한 .Net Core를 사용하는 이유에 대한 내용입니다.
추가적인 내용이나 다른 내용이 궁금하신 경우 해당 사이트에서 추가로 확인하실 수 있습니다.
내용을 보면 여러 장점들이 있지만 그 중에서도 눈에 띄는
.Net Framework와 .Net Core의 가장 큰 차이점은 .Net Core는 크로스 플랫폼 기능을 지원한다는 것입니다.
예시로 리눅스의 우분투에서도 .Net Framework는 설치가 불가능하지만 .Net Core는 설치가 가능합니다.
그래서 프로젝트 생성시에도 별도로 생성하게 되어있고 (선택한 부분이 .Net Core 입니다.)
다음을 눌러 넘어가다보면 대상 프레임워크를 설정할 수 있는데 .Net Framework는 목록에 없습니다.
그리고 프로젝트를 생성해서 첫 화면이 나타나면 오른쪽의 솔루션 탐색기에도 차이점이 있습니다.
.Net Framework로 생성한 프로젝트는 펼쳐보면 다음과 같이 되어있습니다.
그런데 .Net Core는 솔루션 탐색기가 다음과 같이 되어있습니다.
.Net Framework는 Properties, 참조로 구성되어있는데 .Net Core는 종속성만 존재합니다.
그리고 종속성에는 프레임워크가 있고 그 밑으로 Microsoft... 형태의 항목이 2개 있습니다.
그 중 첫 번째인 Microsoft.NETCore.App 을 펼쳐보면 .Net Framework에서 많이 보던
System, System.Core, System.Data 등이 보입니다.
다음은 비교를 위한 Winform 프로젝트의 기본 참조 항목입니다.
위에서 본 항목이 포함되어 있는 것을 알 수 있습니다.
그렇다면 .Net Core에서도 .Net Framework 처럼 Winform과 WPF를 지원한다고 하였으니
한 번 .Net Core 프로젝트에서 .Net Framework에 있는 기능 중 하나인 SerialPort를 Winform에서 구현해보겠습니다.
그런데 도구 상자에 SerialPort가 없습니다.
분명 .Net Framework에서의 Winform 도구 상자에는 아래와 같이 존재합니다.
그렇다면 도구 상자에만 없을 수도 있으므로 코드로 구현을 시도해보겠습니다.
먼저 .Net Framework 에서 만들어 보겠습니다.
소스 창 진입 후 또는 디자인 화면에서 이벤트나 메서드를 아무거나 만듭니다.
저는 Form_Load 이벤트를 생성했습니다.
.Net Framework의 프로젝트는 SerialPort 입력 후 빨간 줄이 뜬 상태에서 Ctrl + . 을 누르면
위와 같이 using System.IO.Ports 를 추가하는 부분이 나타납니다.
그런데 .Net Core는 .Net Framework에서 처럼 using 문을 자동으로 생성해주는 부분이 보이지 않습니다.
이와 같은 경우는 기본적으로 System.IO.Ports 를 생성할 수 없는 상황일 때 발생하고
dll 파일을 참조하지 않았을 경우 발생하는 경우가 많습니다.
따라서 무언가를 추가해주어야 할 것 같은데 dll 파일을 직접 추가하기에는 참조라는 항목이 없기 때문에
다른 방법을 사용해야 합니다.
그래서 .Net Core에서는 참조 추가가 아닌 패키지 설치 방식을 사용하여 해결합니다.
기존처럼 SerialPort에 빨간 줄이 뜨면 Ctrl + . 을 누른 뒤 아래와 같이 진행하면 됩니다.
설치가 완료되면 SerialPort가 활성화되고 using System.IO.Ports 가 추가되며,
솔루션 탐색기에 있는 종속성 목록에 패키지가 추가되고 그 안에 System.IO.Ports 가 들어있게 됩니다.
.Net Framework 처럼 정상적으로 속성 및 이벤트 등에도 접근이 가능한 것을 확인할 수 있습니다.
이처럼 .Net Core도 .Net Framework와 같이 Winform 및 WPF를 사용할 수 있고
Window 만이 아닌 다른 운영체제에서도 호환이 되는 장점이 있어 사용해서 나쁠 일은 없을 것 같습니다.
물론 제가 현장에 실제로 적용해 본 것은 아니기에 저는 무조건적으로 좋다고는 하기 힘들지만
Microsoft 사이트에서의 사례 등을 보면 기대해 볼 만한 프레임워크가 아닐까 싶습니다.
단점이라면 Visual Studio 등이 구버전은 프로젝트가 열리지 않는다는 점이 크게 나타나긴 하지만
그 외의 경우를 제외하면 .Net Framework 보다 더 광범위한 곳에서 사용이 가능해 보입니다.
이상으로 .Net Core에 대해서 알아보았습니다.
C# MSSQL 연동하기 (0) | 2023.04.10 |
---|---|
C# MELSECNET-G로 Mitsubishi PLC와 연동하기 (0) | 2022.10.12 |
C# 읽은 문자열 줄 수 구하는 방법 (0) | 2022.09.14 |
C# Word 데이터를 IEEE754 방식으로 치환하기 (0) | 2022.08.26 |
C# 여러 차원의 배열 길이 구하는 방법 (0) | 2022.08.24 |
댓글 영역