【2023-11-29 19:40:23爱思瑞网快讯】
.NET框架允许在Windows和Mac上进行跨平台开发,微软于11月发布了版本8。以下是对开发人员的意义。
在20世纪90年代后期,微软开始着手开发一个新的框架、语言和运行时,用于桌面和Web开发,名为.NET(读作“点网”)。新的语言包括C#(C的衍生语言)、F#,以及一种名为Visual Basic.NET(或简称为“VB.NET”)的微软新版本的Visual Basic。
微软在2000年的开发者大会上宣布了C#的正式发布。
之后不久,微软开始通过ISO和Ecma International进行CLI(Common Language Infrastructure)的开发和标准化工作。CLI的背后理念是为所有微软开发的语言提供一个通用基础设施。
CLI旨在提供一致的运行时行为,无论使用哪种语言或技术构建给定的软件。
微软的Common Language Runtime(CLR)部分基于CLI,微软的编译器也是如此。
C#相较于其C和C++的前身具有重要优势,即C#源文件是自包含的,不再需要在每个源代码文件的顶部包含C/C++的头文件(.h)。C#提供了其他简化设计,旨在减少开发时间和代码大小/复杂性。
2002年,微软还宣布了ASP.NET框架,它是一种用于构建Web服务器和云端开发的框架,取代了微软最初的Web服务器框架,简称为Active Server Pages(ASP)。
.NET Core
2014年,微软推出了一种新版本的.NET,称为.NET Core,后来在2020年推出了.NET 5。随后推出了更多版本,于2023年11月14日,微软宣布了.NET 8的发布,目前为最新版本。
.NET Core设计用于在Windows、Mac和Linux系统上进行跨平台和Web开发。.NET现在包括可安装的运行时、SDK、.NET Core库,以及在Windows上的Visual Studio集成开发环境(IDE)。
先前有一个面向Mac的Visual Studio版本,但微软取消了该版本,因为大多数苹果平台开发都是使用苹果自己的IDE Xcode进行的。
.NET Core版本9预计于2024年末发布。
.NET MAUI
.NET MAUI(Multi-platform App UI,多平台应用界面)于2021年随.NET 6一起推出,可用于使用C#构建iOS和Android移动应用,以及桌面应用。
MAUI使用微软的开源XAML(可扩展应用程序标记语言),它源自开源的XML网页标准。XAML基于微软的开放规范承诺,即微软不会就第三方使用MOSP技术进行诉讼。
需注意的是,XAML还在其他微软框架和技术中使用:
- WPF(Windows Presentation Foundation,Windows演示基础)
- WF(Windows Forms,Windows窗体)
- WinUI
- UWP(Universal Windows Platform,通用Windows平台)
UWP是一种为Windows 10、10 Mobile、Xbox One和Series S/X以及HoloLens应用提供统一技术的解决方案。
XAML元素和属性映射到CLR属性和事件。
XAML还可以编译成微软的BAML(Binary Application Markup Language)文件,扩展名为.BAML,这允许以上技术的输出插入到.NET框架程序集中,然后由.NET运行时进行加载和提取。
BAML通过在XAML中有效地插入提示或令牌,并使用静态提前编译(AOT)对代码进行预运行时分析,实现更快的加载和执行。
.NET 8的新功能
.NET 8引入了多项新功能,其中最重要的一个是微软的新云原生框架和工具,名为Aspire,目前仍处于预览阶段。Aspire被称为“新的云堆栈”,旨在简化多云开发,包括可观察性和弹性等功能。
微软的主.NET GitHub页面上还有Aspire的存储库。
Aspire还使用微软的客户端Web应用技术Blazor,支持使用C#和HTML开发应用。Blazor现在还支持流行的WebAssembly和混合设计。
通过提供可在用户的Web浏览器中下载和运行的单页Web应用,Blazor和WebAssembly可以加快网站的速度,从而减少由于网络延迟而导致的页面和元素加载时间。
Aspire还使用Redis Web缓存系统,以及用于各种数据库的Web组件、RabbitMQ消息系统、微软自己的Azure Web技术、Open Telemetry和PostgreSQL。
遥测是与可观察性相关的软件特性,它允许自动导出日志、指标和性能行为。
.NET 8还支持NuGet包、改进的JSON序列化、内存垃圾收集、在Linux上的.NET、WPF和诊断改进等等。
总体而言,Microsft的“.NET新功能”页面上列出了18个新功能。
Aspire的一个有趣之处在于,微软声称可以将Aspire支持添加到现有的.NET解决方案(项目),前提是需要先完全升级到.NET 8。
Aspire的正式发布计划于2024年春季。
微软还发布了适用于Windows的Visual Studio 17.8,与.NET 8发布同时进行。接下来几周将发布一个名为Windows AI Studio的适用于Visual Studio的新的本地AI工具,其基于Azure AI Studio。
获取和安装.NET
在Mac上,您可以通过从微软的网站、.NET页面下载和安装.NET组件,或下载一个容器镜像并使用其安装完整环境。
微软还有一个完整的.NET GitHub页面,上面有数百个.git存储库,用于.NET运行时、.NET Core、asp.net Core、.NET SDK、C#和Visual Basic的.NET编译器(代号为“Roslyn”)、F#编译器、用于构建桌面应用的Windows Forms,以及文档。
msbuild存储库包含微软构建引擎,该引擎由编译器、Visual Studio和命令行界面用于项目构建。
您也可以使用macOS上的Homebrew软件包管理器,通过Homebrew.NET配方安装.NET:
请注意,`brew install dotnet`是.NET 8的新公式,它与两个较旧的.NET Homebrew公式冲突:
- `brew install –cask dotnet`(运行时)
- `brew install –cask dotnet-sdk`(SDK)
根据Homebrew公式文档页面的说明,这两个较旧的cask公式不支持Apple Silicon Macs,但新的.NET 8公式支持。
对于Windows的.NET 8安装,您还需要下载.NET桌面运行时,并将其安装到Windows计算机上。
所有受支持平台都有单独的下载页面。
总的来说,.NET 8看起来很有前途,如果微软按照Aspire项目继续推进,它将简化多云开发。
此外,请参阅在线的dotnetconf.net虚拟活动,了解一些.NET教程。该网站还有一个YouTube频道,其中包含几个入门级.NET视频。