.NET平台系列5 .NET Core 简介
自1995年互联网战略日以来最雄心勃勃的事业 —— 微软.NET战略, 2000年6月30日。
微软公司于2002年2月13日正式推出第一代.NET平台 .NET Framewrok 1.0。借助于自家强大易用的 Windows 系统,.NET Framework1.0 主要提供了面向 Windows 桌面(Windows Form)和服务器(ASP.NET Web Forms)的基础开发框架。在宇宙第一IDE(Visual Studio)中使用这两款框架进行业务系统开发,框架中都提供了功能强大的控件、组件,开发者通过可视化编程方式进行开发就非常容易上手,而且开发速度非常快,因此.NET平台深受全世界开发者的喜爱,发展一路顺风顺水。
在.NET(旧称.NET Framework )发展过程中,其最大的竞争对手就是Java。Java是主打敏捷开发、跨平台的编程语言,自1995年推出Java正式版以来,凭借其天生的跨平台(Windows、Linux、MacOS)优势,发展至今在全世界开发者市场与生态圈层面远远超过.NET平台。.NET Framework 与 Windows 平台深度绑定,无法做到跨平台,所以一直处于被Java压制的状态。
互联网技术飞速发展至今,传统的桌面程序与Web应用已无法满足各行各业的多场景应用需求。云计算、人工智能、大数据以及云原生等新兴技术方向在现代IT时代掀起了一波又一波浪潮。传统的 .NET Framework 技术极大地限制了.NET平台的应用范围与发展,面对如此尴尬的局面与现状,微软审时度势,于2014年推出跨平台解决方案.NET Core。
2014年11月12日,微软ASP.NET之父Scott Guthrie 在 Connect 全球开发者在线会议上宣布,微软将开源全部的.NET Core 运行时,并将.NET 扩展为可在Linux和maxOS平台上开发与运行,从而让.NET应用实现跨平台。
dotnet/runtime 开源地址:https://github.com/dotnet/runtime
dotnet/core 发行日志: https://github.com/dotnet/core/tree/main/release-notes
dotnet SDK 下载地址: https://dotnet.microsoft.com/download
.NET Core 的推出是微软.NET技术发展史上又一个重要里程碑。.NET Core是.NET技术的重要变革,它将全世界.NET开发者带入一个全新的开发领域。
.NET Core is a free, cross-platform, open-source developer platform for building many different types of applications. 这是微软官方给出的定义:.NET Core是一个免费、跨平台、开源的开发平台,用于构建许多不同类型的应用程序。
.NET Core 设计目标有包含:
- 支持或可以移转 (port) 到更多的操作系统平台与芯片架构 (未来项目会跨出 x86 平台。目前已至此x64、arm)。
- 具有引人注目的性能与高可靠度。
- 开发人员能快速与直接的获取 .NET Core 开发环境。
- 在直觉与具生产力的情况下建造应用程序,使用文件,示例与 NuGet 组件。
.NET Core 的类库采用 NuGet 包化的架构,应用程序只需要使用 project.json 的 dependencies 区块加入指定包版本的参考,就能获得该包的功能,与以往 .NET Framework 大包式的提供方法完全不同。.NET Core 团队宣布己经有 98% 的 .NET Framework 主要类库移转到 .NET Core 平台。
-
Microsoft.DotNet.CoreHost
-
NETStandard.Platform
-
System.Collections.Concurrent
-
System.Linq
-
System.Runtime.Numerics
-
System.Text.RegularExpressions
-
Microsoft.NETCore.Platforms
-
Microsoft.NETCore.Runtime
-
Microsoft.Win32.Primitives
-
System.AppContext
-
System.Collections
-
System.Diagnostics.Debug
-
System.Diagnostics.Tools
-
System.Diagnostics.Tracing
-
System.Globalization
-
System.Globalization.Calendars
-
System.IO
-
System.IO.FileSystem
-
System.IO.FileSystem.Primitives
-
System.Net.Primitives
-
System.Net.Sockets
-
System.Reflection
-
System.Reflection.Extensions
-
System.Reflection.Primitives
-
System.Reflection.TypeExtensions
-
System.Runtime
-
System.Runtime.Extensions
-
System.Runtime.Handles
-
System.Runtime.InteropServices
-
System.Runtime.InteropServices.RuntimeInformation
-
System.Text.Encoding
-
System.Text.Encoding.Extensions
-
System.Threading
-
System.Threading.Tasks
-
System.Threading.Timer
.NET Core 基于跨平台能力,并没有将与 GUI 高度相关的 API 移植到 .NET Core 内,因此像是Windows Forms或是Windows Presentation Foundation(WPF) 并未移植到 .NET Core。.NET Core 支持控制台应用程序 (Console Application) 以及类库 (Class Library) 类型的项目。
不过微软在其Universal Windows Platform(UWP) 开发平台使用了 .NET Core ,并且利用 .NET Native 技术将其性能提升至十分接近原生码的速度。
ASP.NET Core 则以控制台应用程序驱动其托管环境 Kestrel Server 以支持 ASP.NET Core 程序的运行。
.NET CLI (Command-Line Interface) 指令列工具是 .NET Core 处理建造、运行与编辑工作的主要工具 ,有几个主要的动作:
指令
|
帮助
|
---|---|
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 包
|
提示:命令都是神一般的存在,我们凡人还是使用 Visual Studio 进行开发、编译、发布,效率最高。
.NET Core 经常会拿来与其他平台做类比,尤其是它的源头 .NET Framework 以及另一个相似性质的开源平台 Mono。
下表列出了当前支持的 .NET 版本以及支持它们的 Windows 版本。 这些版本在 .NET 版本达到支持终止日期或 Windows 版本达到生命周期之前仍受支持。
Windows 10 版本终止服务日期按版本分段。 下表中仅考虑家庭版、专业版、专业教育版和专业工作站版。 查看 Windows 生命周期事实表单,了解具体的详细信息。
- 在 Windows 上安装 .NET (参考:https://docs.microsoft.com/zh-cn/dotnet/core/install/windows?tabs=net50)
- 支持的版本
- 不支持的版本
以下 .NET 版本 ❌ 不再受到支持:
- 在 macOS 上安装 .NET(参考:https://docs.microsoft.com/zh-cn/dotnet/core/install/macos)
- 在 Linux 上安装 .NET (参考:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux)
.NET Core/.NET6 平台目前打通并支持7大应用方向:桌面开发、网页开发、游戏开发、移动应用、云计算、物联网IoT、人工智能AI (机器学习ML.NET、大数据.NET for Apache Spark )。足以看出.NET 平台的强大。但是这还不够,微软一直做出非常大的努力,通过在 Visual Studio 开发工具中编写一套代码,可以一次编译并发布运行至多终端运行。截止目前在宇宙中仅此微软一家能够做到如此。
参考链接
【1】https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md
【2】https://github.com/dotnet/corefx
【3】https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/glossary.md
【4】https://www.microsoft.com/net/core#windows
【5】https://msdn.microsoft.com/en-us/library/dn807190(v=vs.110).aspx
【6】https://blogs.msdn.microsoft.com/dotnet/2013/09/30/ryujit-the-next-generation-jit-compiler-for-net/
成在管理,败在经验;嬴在选择,输在不学! 贵在坚持!
个人作品
BIMFace.SDK.NET
开源地址:https://gitee.com/NAlps/BIMFace.SDK
系列博客:https://www.cnblogs.com/SavionZhang/p/11424431.html
系列视频:https://www.cnblogs.com/SavionZhang/p/14258393.html
技术栈
1、Visual Studio、.NET Core/.NET、MVC、Web API、RESTful API、gRPC、SignalR、Java、Python
2、jQuery、Vue.js、Bootstrap、ElementUI
3、数据库:分库分表、读写分离、SQLServer、MySQL、PostgreSQL、Redis、MongoDB、ElasticSearch、达梦DM
4、架构:DDD、ABP、SpringBoot、jFinal
5、环境:跨平台、Windows、Linux、Nginx
6、移动App:Android、IOS、HarmonyOS、微信小程序、钉钉、uni-app、MAUI
分布式、高并发、云原生、微服务、Docker、CI/CD、DevOps、K8S;Dapr、RabbitMQ、Kafka、RPC、Elasticsearch。
欢迎关注作者头条号 张传宁IT讲堂,获取更多IT文章、视频等优质内容。
出处:www.cnblogs.com/SavionZhang
作者:张传宁 技术顾问、培训讲师、微软MCP、系统架构设计师、系统集成项目管理工程师、科技部创新工程师。
专注于企业级通用开发平台、工作流引擎、自动化项目(代码)生成器、SOA 、DDD、 云原生(Docker、微服务、DevOps、CI/CD);PDF、CAD、BIM 审图等研究与应用。
多次参与电子政务、图书教育、生产制造等企业级大型项目研发与管理工作。
熟悉中小企业软件开发过程:可行调研、需求分析、架构设计、编码测试、实施部署、项目管理。通过技术与管理帮助中小企业实现互联网转型升级全流程解决方案。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如有问题,可以通过邮件905442693@qq.com联系。共同交流、互相学习。
如果您觉得文章对您有帮助,请点击文章右下角【推荐】。您的鼓励是作者持续创作的最大动力!