이 기사에서는 주로 .NET Core를 소개합니다. .NET Core는 크로스 플랫폼을 지원하는 오픈 소스이자 범용 개발 프레임워크입니다. 즉, Windows, macOS, Linux 및 기타 시스템에서의 개발 및 배포를 지원합니다. , 자세히 알아볼 수 있습니다.
1. 서문
.NET이 출시된 지 14년이 되었습니다. 버전 업데이트가 지속적으로 반복되면서 Windows 플랫폼에서 .NET의 성능이 점점 더 좋아지고 있습니다. .NET은 Windows 플랫폼에서 거의 모든 애플리케이션 유형을 처리할 수 있다고 말할 수 있습니다.
성공하는 것은 Windows뿐이고 Windows는 실패합니다. 지난 14년 동안 일부 "프라이빗" 버전을 제외하고 .NET은 공식 지원으로 Windows 플랫폼의 한계를 없애지 못했습니다. 오픈 소스”와 “크로스 플랫폼” 이 두 단어는 모든 .NET 개발자의 마음 속에 있는 고통이기도 합니다. 마지막으로 개발자가 공식 및 커뮤니티 지원을 통해 Windows를 넘어 디버그를 작성하고 macOS 및 Linux 주류 배포판에 .NET 프로그램을 배포할 수 있는 .NET Core가 등장했습니다.
2. .NET Core 소개
2.1 .NET Core란
.NET Core는 크로스 플랫폼을 지원하는 오픈 소스 일반 개발 프레임워크입니다. 즉, Windows, macOS, Linux 및 기타 시스템에서의 개발 및 배포를 지원하며 하드웨어 장치, 클라우드 서비스 및 임베디드/IoT 솔루션에서 사용할 수 있습니다. .NET Core의 소스 코드는 GitHub에 있으며 Microsoft 관계자와 커뮤니티에서 지원됩니다.
기존 .NET Framework와 "하위 집합-상위 집합" 관계가 있거나 간단히 .NET Framework의 크로스 플랫폼 버전(BCL 수준 기반)으로 생각할 수 있습니다. 이는 현재 버전(1.0)에서는 런타임 및 라이브러리(예: GC, JIT, 일부 유형)를 포함하여 .NET Core의 핵심 코드 대부분이 .NET Framework에서 상속되고 다시 작성되기 때문입니다.
.NET Standard Library라는 개념을 언급해야겠습니다. .NET 플랫폼 API 개발을 위한 공식 지원 표준으로서 모든 .NET 프레임워크 API가 이전 버전과 호환되어야 합니다. 예를 들어 .NET Framwork 4.6은 .NET Standard Library 1.3을 지원하고, .NET Framwork 4.6.2 프레임워크는 .NET Standard Library 1.5를 지원하며, .NET Core 1.0 Framework는 1.6 표준을 지원합니다.
최종 전망은 다음과 같습니다.
2.2 .NET Core 구성①.NET Runtime
그것이 바로 CoreCLR입니다. 앞서 언급했듯이 CoreCLR과 .NET Framework의 CLR에는 차이가 없습니다. 프로세스 관리, GC, JIT(RyuJIT 컴파일러)도 동일하지만 서버 시스템에 최적화되어 있습니다. 이제 CLR과 CoreCLR도 동시에 업데이트되고 있지만 확실한 것은 CoreCLR이 .NET의 미래이고 CLR은 호환성의 수단으로 존재할 것이라는 점입니다
②Framework Libraries,
파일 시스템
처리 클래스,
처리 클래스, 비동기 작업 클래스 등을 포함합니다. 3SDK 도구 및 Language 컴파일러( SDK 도구 및 컴파일러)
즉, CLI 도구와 Roslyn 컴파일러입니다. .NET Core SDK(.NET Core 개발 키트)를 통해 얻을 수 있습니다. ④dotnet'app 호스트
는 해당 런타임을 선택 및 실행하고 구성 요소 로딩 원칙을 제공하며 .NET Core 애플리케이션을 시작하는 데 사용됩니다. SDK도 동일한 절차를 통해 실행됩니다.
팁: Windows 플랫폼에서 .NET 애플리케이션용 CLR 버전을 선택하는 작업도 수행하는 MSCorEE.
l shim을 기억하시나요?
2.3 .NET Core의 기능
①크로스 플랫폼
Windows, macOS, Linux에서 실행 가능
②유연한 배포 메커니즘
1.휴대용 애플리케이션(이동식 애플리케이션)
이 배포 메커니즘은 대상 플랫폼 Core에 .NET이 존재하는 한 기존 .NET Framework와 유사합니다. 런타임이면 충분합니다.
2.자체 포함 애플리케이션(자체 호스팅 애플리케이션)
.NET Core Runtime도 정상적으로 사용할 수 있습니다
두 번째 방법도 .NET Native와 다릅니다. 반면 .NET Native는 CoreRT를 런타임으로 사용합니다. 자세한 내용은 dotnet/corert를 참조하세요
③명령줄 도구실행 중인 .NET 프로그램의 모든 스크립트는 명령줄 도구(cmd, bash)를 사용하여 실행할 수 있습니다. 다음은 몇 가지 일반적인 donnet 명령입니다.
指令 | 帮助 |
---|---|
dotnet new | 产生新的基本 .NET 项目内容 (包含 project.json、Program.cs 以及 NuGet.config |
dotnet restore | 还原所参考的 NuGet 包 |
dotnet build | 建造 .NET 项目 |
dotnet publish | 产生可发行的 .NET 项目 (包含所属的 Runtime) |
dotnet run | 编译与立即运行 .NET 项目 (较适用于 exe 型项目) |
dotnet repl | 引导交互式的对话 |
dotnet pack | 将项目的产出封装成 NuGet 包 |
④호환성
호환 가능 .NET 표준 라이브러리
⑤오픈 소스
를 통해 .NET Framework, Xamarin 및 Mono를 지원합니다. NET Core는 .NET Foundation에 속하며 Microsoft에서 공식적으로 지원합니다. MIT 및 Apache 2 오픈 소스 라이선스를 사용하여 문서 라이선스는 CC-BY
2.4 개발 언어
.NET Core 1.0 버전에서 지원되는 프로그래밍 언어를 따릅니다. C#만(F# 및 VB는 아직 구현되지 않음) 여기에는 오픈 소스 언어 컴파일러인 Roslyn도 언급되어 있습니다. 이는 코드를 우리에게 익숙한 IL 언어로 컴파일한 다음 AOT 또는 JIT 컴파일러를 통해 기계.
3. 시작하기
다음 콘텐츠는 Windows 10 및 CentOS 7.2
3.1 Win에서 명령줄 생성 및 게시 데모를 보여줍니다. 10
3.1.1 .NET Core SDK 및 .NET Core 런타임 설치
.NET Core SDK = .NET Core를 사용하여 애플리케이션을 개발합니다.
3.1.2 간단한 작업 결과
cmd를 열고 mkdir .project(디렉터리 생성), cd ..project(디렉터리 입력), dotnet new(새로 생성) 입력 초기 프로젝트), dotnet 복원(종속성 복원), 첫 번째 Hello World 프로그램을 실행하기 위한 dotnet run(실행)
3.2 CentOS 7.2(로컬 Hyper-V)
3.2.1 설치 및 작동
자세한 내용은 www.microsoft.com/net/core#windowsvs2015를 참조하세요. 대략적인 명령은 다음과 같습니다
sudo yum install libunwind libicu #安装libunwind,libicu包 curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131 #下载dotnet-dev-centos-x64.1.0.0-preview2-003121.tar文件,有时会因为网络问题下载较慢,耐心等待即可,当然也可以手动下载后放到目录下。 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet #创建目录并解压已下载文件 sudo ln -s /opt/dotnet/dotnet /usr/local/bin #将目录链接到$PATH下,否则dotnet命令无法识别 mkdir hwapp cd hwapp dotnet new #创建默认.NET Core应用 dotnet restore #还原依赖包 dotnet run #运行,结果将显示Hello World!
여섯번째 명령을 실행한 후 dotnet --info를 사용하여 링크 성공 여부를 확인할 수 있으며, 이는 다음과 같이 표시됩니다.
.NET Command Line Tools (1.0.0-preview2-003121) Product Information: Version: 1.0.0-preview2-003121 Commit SHA-1 hash: 1e9d529bc5 Runtime Environment: OS Name: centos OS Version: 7 OS Platform: Linux RID: centos.7-x64
위의 단계는 .NET Core 공식 웹사이트에서 확인할 수 있습니다. 간단한 dotnet new, dotnet Restore, dotnet 후에 애플리케이션이 성공적으로 연결되었음을 알 수 있습니다. run 명령 후에 실행이 시작되지만 이는 실제로 개발 환경에서 디버깅하고 실행하는 것과 유사하며 win에서 새 애플리케이션을 직접 실행할 수는 없습니다. 현재는 Linux의 여러 플랫폼에 걸쳐 있으므로 dotnet 게시 명령을 다시 언급해야 합니다
3.2.2 자체 포함 애플리케이션 릴리스
(1) project.json 파일 수정
이제 win10에서 자체적으로 새로운 HW 콘솔 애플리케이션을 생성하는 단계를 따릅니다. 공식 문서에서는 원본 project.json 파일을 다음 콘텐츠(delete"type)로 바꿔야 한다고 요구합니다. ": "platform", 런타임 노드 추가)
{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true }, "dependencies": {}, "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "version": "1.0.0" } }, "imports": "dnxcore50" } }, "runtimes":{ "win10-x64":{}, #win10平台 "centos.7-x64":{} #centos7.2平台 } }
(2) 복원 및 게시 실행
을 실행한 후 dotnet Restore 명령을 실행하여 플랫폼을 복원합니다. 이 단계는 플랫폼이 두 개뿐이지만 처음에는 시간이 오래 걸렸습니다. 그런 다음 dotnet 게시 -r centos.7-x64 -c 릴리스를 진행합니다.
dotnet 게시 명령에 대한 자세한 내용은 dotnet-publish - 게시 준비를 위해 애플리케이션과 모든 종속 항목을 폴더에 압축합니다.
(3) in
Linux 플랫폼에서 위 작업을 실행한 후 게시된 폴더(bin/release/netcoreapp1.0/centos7-x64/publish, self.exe 포함)만 업로드하면 됩니다. Linux 루트 디렉터리의 프로젝트(새) 폴더로 이동하여 Shell에서
명령을 입력하면 성공적으로 실행할 수 있습니다. "Hello World". 이것이 우리의 "자체 포함 애플리케이션" 배포 방법
4. 요약
4.1 종료
그럼 .NET Core에 대한 연구가 끝났습니다. 위 내용에서는 .NET Core의 구성과 특징을 간략하게 소개하고 있으며, 두 가지 배포 방법을 통해 Windows 및 Linux 시스템에서도 성공적으로 예제를 실행합니다. 이전의 .NET Framework 배포와 비교할 때 .NET Core의 참신함은 정말 눈을 빛나게 합니다. 다음에는 .NET Core와 ASP.NET Core에 대한 학습도 기록하겠습니다. 수정도 환영합니다.
위 내용은 종합 문해력 스티커 구현을 위한 Core의 ASP 방식에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!