1 基础知识
1.1 .NET的基础概念
1.1.1 .NET的概念
– .NET是一个通用的开发平台
– .NET支持多种编程语言
– .NET支持异步和并发编程模型
– .NET支持本机或操作性
– .NET支持跨多个平台
1.1.2 .NET运行时
– .NET运行时即是托管程序的运行环境
– .NET的运行环境即是操作系统
– .NET运行时有,
— .NET Framework公共语言运行时(CLR)
— .NET Core核心公共语言运行时(CoreCLR)
— .NET Native(适用于通用Windows平台)
— Mono运行时(用于Xamarin.iOS、Xamarin.Android、Xamarin.Mac和Mono桌面框架)
1.1.3 .NET SDK
– .NET Core SDK是一组库和工具,用于创建.NET Core应用程序和库
– .NET Core Core SDK包含.NET Core CLI工具、.NET Core库、.NET Core运行时和dotnet驱动程序
1.1.4 .NET Standard
– .NET Standard是一套正式的.NET API规范
– .NET Standard使用.NET基类库实现跨.NET生态系统的统一API
– .NET Standard是构成统一协定集合的特定API组(统一协定集是编写代码的依据)
– .NET Standard的统一协定集合在每个.NET中都有实现(目的是增强不同.NET间的可移植性)
– .NET Standard使得代码可运行于任何.NET环境
1.2 .NET支持的语言
1.2.1 .NET积极开发和支持的语言
– C#
– F#
– Visual Basic(VB)
1.2.2 C#
– C#是一种简单、强大、类型安全和面向对象的语言
– C#保留C语言的表达力度和简洁的特点
1.2.3 F#
– F#是一种跨平台、功能优先的编程语言
– F#支持传统面向对象编程和命令式编程
1.2.4 Visual Basic
– VB一种简单易学的语言
– VB用于生成.NET上运行的各种应用
– VB语法最接近人类的普通用语(容易上手)
1.3 .NET的实现方案
1.3.1 实现方案的分类
– .NET Framework
– .NET Core
– Mono
– UWP
注:
– 以上4个实现方式都是Microsoft积极开发和维护的实现
– 所有实现都通过.NET Standard的通用API规范
1.3.3 .NET Core方案
– NET Core用于实现.NET跨平台
– NET Core专门用于处理大规划的服务器和云工作负荷
– NET Core可运行于Windows、macOS和Linux环境
– NET Core符合.NET Standard(即面向.NET Standard的代码都能运行于NET Core)
– NET Core是ASP.NET Core的运行基础
1.3.4 .NET Framework方案
– .NET Framework即最原始的.NET实现
– .NET Framework是当前开发人员最常使用的实现
– .NET Framework含4.5内的更高版本实现.NET Standard
– .NET Framework含4.5内的更高版本可运行面向.NET Standard的代码
– .NET Framework包含特定于Windows的API(如通过Windows视窗和WPF进行Windows桌面开发的API)
– .NET Framework非常适合用于生成Windows桌面应用程序
1.3.5 Mono方案
– Mono是微运行环境的.NET实现
– Mono适合于小内存的环境
– Mono可运行于Android、Mac、iOS、tvOS和watchOS(基于Xamarin应用程序运行时)
– Mono支持使用Unity引擎生成游戏
– Mono支持所有当前已发布的.NET Standard版本
– Mono可实现更大的.NET Framework API和模拟一些Unix常用功能(适合于依赖Unix环境的程序)
– Mono通常与实时编译器一起使用(亦提供iOS之类平台使用的完整静态编译器,即预编译)
1.3.6 通用Windows平台(UWP)方案
– UWP用于物联网(IoT)生成新式触控Windows应用程序和软件的.NET实现
– UWP目标是统一基于UWP实现的不同类型设备(如电脑、平板电脑、平板手机、电话和Xbox)
– UWP提供许多服务,如集中式应用商店、执行环境(AppContainer)和一组Windows API(用于代替Win32,即WinRT)
– UWP的应用可使用C++、C#、VB.NET和JavaScript编写
– UWP使用C#和VB.NET时,.NET API由.NET Core提供
1.4 .NET的实现方案的选择
1.4.1 需要选择的原因
– .NET Framework和.NET Core两者共享许多相同的组件
– .NET Framework和.NET Core两者存在根本的差异
1.4.2 适合选择.NET Core的场景
– 项目有跨平台的需求
– 项目定位为微服务
– 项目需要使用Docker容器
– 项目需要高性能和可扩展的系统
– 项目需要应用程序提供并行的.NET版本
1.4.3 适合选择.NET Framework的场景
– 项目当前基于.NET Framework开发且只有扩展需求
– 项目使用不能用于.NET Core的第三方.NET库或NuGet包
– 项目使用不能用于.NET Core的.NET技术
– 项目使用不支持.NET Core的平台
1.5 .NET的实现方案所需的组件
– 可包含一个或多个运行时(运行时包括用于.NET Framework的CLR和用于.NET Core的CoreCLR和CoreRT )
– 可包含实现.NET Standard和其他API的类库(例如.NET Framework和.NET Core的基类库)
– 可包含一个或多个应用程序框架(例如ASP.NET、Windows视窗和Windows Presentation Foundation,即WPF)
– 可包含开发工具(某些开发工具可在多个实现之间共享)
2 最佳实践
2.1 系统环境
2.1.1 系统环境信息
OS = CentOS 7.6 x86_64
IP Addresses = 10.168.0.71
hostname = dotnet.cmdschool.org
2.1.2 安装常用工具
yum install -y vim
2.2 软件安装
2.2.1 配置.NET的YUM源
yum install -y centos-release-dotnet
2.2.2 安装.NET运行时
yum install -y rh-dotnet22-dotnet-runtime-2.2
2.3 配置.NET运行时
2.3.1 配置环境变量脚本
cp /opt/rh/rh-dotnet22/enable /etc/profile.d/dotnet.sh
2.3.2 导入环境变量
source /etc/profile.d/dotnet.sh
2.3.3 测试配置
dotnet --info
信息显示如下,
Host (useful for support): Version: 2.2.3 Commit: 6b8ad509b6 .NET Core SDKs installed: No SDKs were found. .NET Core runtimes installed: Microsoft.NETCore.App 2.2.3 [/opt/rh/rh-dotnet22/root/usr/lib64/dotnet/shared/Microsoft.NETCore.App] To install additional .NET Core runtimes or SDKs: https://aka.ms/dotnet-download
2.4 SDK的配置和使用(可选)
2.4.1 安装SDK包
yum install -y rh-dotnet22-dotnet-sdk-2.2
2.4.2 确认SDK安装
dotnet --info
信息显示如下,
.NET Core SDK (reflecting any global.json): Version: 2.2.105 Commit: 7cecb35b92 Runtime Environment: OS Name: centos OS Version: 7 OS Platform: Linux RID: centos.7-x64 Base Path: /opt/rh/rh-dotnet22/root/usr/lib64/dotnet/sdk/2.2.105/ Host (useful for support): Version: 2.2.3 Commit: 6b8ad509b6 .NET Core SDKs installed: 2.2.105 [/opt/rh/rh-dotnet22/root/usr/lib64/dotnet/sdk] .NET Core runtimes installed: Microsoft.NETCore.App 2.2.3 [/opt/rh/rh-dotnet22/root/usr/lib64/dotnet/shared/Microsoft.NETCore.App] To install additional .NET Core runtimes or SDKs: https://aka.ms/dotnet-download
注:以上SDK版本为“2.2.105”
2.4.3 使用SDK创建应用
cd ~ dotnet new console -o myApp
创建完成后,可使用如下命令测试程序的运行,
cd ~/myApp dotnet run
可见如下显示,
Hello World!
2.4.4 修改应用程序
cd ~/myApp vim Program.cs
修改代码如下,
using System; namespace myApp { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.WriteLine("The current time is " + DateTime.Now); } } }
测试修改的代码,
cd ~/myApp dotnet run
可见如下显示,
Hello World! The current time is 9/4/19 6:56:55 PM
参阅文档
=====================
dotnet的首页
————-
https://dotnet.microsoft.com/
dotnet的下载
—————-
https://dotnet.microsoft.com/download/dotnet-core
https://dotnet.microsoft.com/download
dotnet的官方文档
—————–
https://docs.microsoft.com/zh-cn/dotnet/
dotnet standard
—————–
https://docs.microsoft.com/zh-cn/dotnet/standard/net-standard
dotnet的体系结构组件
——————-
https://docs.microsoft.com/zh-cn/dotnet/standard/components
dotnet实现方案的选型
——————-
https://docs.microsoft.com/zh-cn/dotnet/standard/choosing-core-framework-server
没有评论