澳门新葡亰信誉平台游戏重磅!微软.NET Core 3预览版和开源Windows桌面框架新功能抢先看 – .NET Core 3,微软 – IT之家

by admin on 2020年3月12日

从微软公开宣布 “Microsoft love linux”
那一刻起,过去的几年里,微软积极拥抱开源的举动我们有目共睹,即便有过”Linux
is a cancer”这种真香警告的
flag,但不得不承认的是,微软一系列“拥抱开源”的举措为 Linux
社区乃至整个开源社区都带来了很多巨大的惊喜。

IT之家1月2日消息在微软Connect(); 2018大会上,微软宣布推出.NET Core
3预览版,使用Visual Studio 2019预览版、Visual Studio for Mac以及Visual
Studio Code均可开发.NET Core 3应用程序。.NET Core
3的面世,是一次重大更新。

2015年,微软宣布支持开源视频编解码器
VP9,对自家的更多项目进行开源,并开始接受
LLVM/Clang;而在2016年微软收购了跨平台移动开发公司
Xamarin,推出了
Linux 版的 SQL
Server,并表示会继续开源。2017年也是非常有趣的一年,这一年,微软加入了
OSI 组织(开源计划,Open Source Initiative),继续积极发展 Windows 的
Linux 子系统(WSL),并在 Linux 平台上为 .NET
开发提供更多的便利特性。但今年,2018年,可以说是微软最令人感到惊讶的一年。 

微软通过尝试对 Azure Service Fabric
的逐渐开源,继续发展开源软件项目。最近,框架的 SDK
(大部分)已经通过MIT授权发布到了 GitHub
上。该项目的团队称其为广泛开源的“起步阶段”。

微软官方带来了关于.NET Core 3的新功能抢鲜体验介绍:

下面不妨回顾一下 2018 年微软与开源有关的“里程碑意义”事件:

澳门新葡亰信誉平台游戏 1

.NET Framework 4.8

1.微软收购 GitHub

澳门新葡亰信誉平台游戏 ,2018年6月4日,微软宣布以 75 亿美元的股票收购代码托管平台
GitHub,并由微软副总裁、Xamarin 创始人 Nat Friedman 担任 CEO
一职。消息公布后,微软表示 GitHub
将仍然是一个开放平台,并保留其开发者优先的风格,独立运营。而这一事件,无论是对于微软,还是整个开源界,都是一件可以载入史册的大事。

澳门新葡亰信誉平台游戏 2

Azure Service Fabric
在2015年第一次面世,其脱胎于微软开发建设的基础服务结构,主要用于支撑大规模云服务,包括Azure
SQL、Cortana和商用版Skype。它提供了可扩展和容错服务,运行于集群(虚拟)机器之上。
Service Fabric 主要是在 Azure
系统上工作,但运行环境可以自由下载,并且能部署在本地 Windows
系统中,甚至在非微软云的 Windows 虚拟机上。目前另一个 Linux
版本的运行环境也在开发中。

Microsoft Connect(); 2018上,微软宣布将于明年发布.NET Framework
4.8。随着支持4K和8K分辨率的显示器的普及,微软正在对WPF和Windows
Forms升级,以对高DPI提供更好的支持。目前,许多.NET
Core应用都是基于旧版本Internet Explorer和Windows Media
Player的浏览器和媒体控件。微软正在添加使用Windows
10中最新浏览器和媒体播放器的新控件,并支持最新标准。WPF和Windows
Forms应用程序将可以通过XAML Islands访问Windows UI
XAML库,以获得现代化的外观和触摸支持。Visual Studio 2019基于.NET
Framework并应用了许多此类功能。

2.微软采用 Chromium 内核开发桌面版 Edge 浏览器

2018年12月,微软通过其博客官方宣布:未来将采用
Chromium 内核开发桌面版 Edge 浏览器,以便为用户带来更好的 Web
兼容性,并为所有 Web 开发者减少 Web 碎片化。

澳门新葡亰信誉平台游戏 3

微软还计划将 Edge 浏览器引入 macOS 平台。此外,新版 Edge
可运行在所有受支持的 Windows 版本上,包括 Windows 7 和 Windows 8 系列 ——
直到微软终止支持,而不仅仅是 Windows 10。

微软已经开始使用 GitHub 的跟踪特性获取 Service Fabric
中的需求和缺陷。同时,运行环境的用户也对Service Fabric
的设计和功能表达了很大兴趣。开放 SDK 就被视为是Azure
服务框架参与开发者社区的下一步举措,并且对框架的发展方向起到了推动作用。

Windows桌面进入.NET Core

3.微软加入 OIN 社区,并开放 6 万多项专利

2018年10月11日,微软宣布正式加入 Open Invention Network (“OIN”)
社区。可以把
Open Invention
Network 理解为是一个共享的防御性专利池,它成立于2015年,旨在保护 Linux
及其相关的开源项目。而为了提升 Linux 和其他开源技术的优势,微软给 OIN
带去了超过6万项已发布的专利。

在同一个月,微软宣布加入 LOT
Network。LOT
Network 是一个不断发展的非营利性社区,由谷歌、Dropbox
等数家科技公司联合创办,是一个专门用于对抗专利流氓的组织。微软的加入意味着它正在就这一主题与其他行业领导者保持一致,并承诺在未来采取更多措施来应对知识产权风险。通过加入
LOT Network,微软承诺会将自家的专利免费许可给其他成员使用,而 LOT
Network 大约覆盖了 135 万项专利。

然而,对于 Service Fabric 的开源,公司的态度比之前的项目更加谨慎,比如
.NET ,Chakra 和Edge浏览器的 JavaScript 引擎。 Service Fabric
开始是作为内部服务进行发展的,因此整个开发进程都使用了保密的工具。为了开源,这些问题必须得到解决。首先,工具要进行升级或者开源;其次,服务要彻底从依赖的其它系统中剥离出来。

.NET Core的前两个版本主要侧重于支持Web应用、Web
API、IoT和控制台应用程序。.NET Core 3增加了对使用WPF和Windows
Forms框架以及现代控件构建Windows桌面应用程序的支持,并能够实现XAML
Islands从Windows UI XAML库构建Fluent样式。目前有许多桌面应用使用Entity
Framework进行数据访问,因此,微软也在.NET Core 3中支持Entity Framework
6。这些框架能够让构建Windows桌面应用的开发人员充分利用.NET
Core中的新功能,例如并行部署、自包含应用、CoreFX的最新改进等等。

4.微软开源三个主要的 Windows UX 技术:WPF, Windows Forms 和 WinUI 框架

在微软举办的 Microsoft Connect(); 2018
开发者大会上,微软为 .NET
开发者带来了重磅的信息。在大会上,微软宣布开源三种主要的 Windows UX
技术,分别是 Windows Presentation Foundation (WPF), Windows Forms 和
Windows UI XAML 库 (WinUI)。

WPF 是用于构建桌面客户端应用程序的 UI
框架,具有应用程序模型、控件、图形、布局、数据绑定和安全性等功能。WPF
的核心是一个利用现代图形硬件的渲染引擎。

Windows Forms 用于支持开发“智能客户端(smart
clients)”,微软对其的描述为易于部署和更新的应用程序。无论这些应用程序是否连接到
Internet,它们都可以正常工作。Windows Forms
中的表单是用于向用户显示信息的可视界面。WinUI 具有 Windows 10 默认 UWP
XAML UI 平台的向后兼容实现。

Azure Service Fabric
在微软的众多服务中承担着重要业务,这将使开源进程趋向于保守。同时也意味着开源Service
Fabric 不会和.NET 核心一样顺利,因为.NET
核心开源项目由独立监督委员会领导,并且在GitHub上获得了大量社区贡献。

开源的WPF、Windows Forms和WinUI

5.微软重新开源已诞生 36 年的 MS-DOS 1.25/2.0

2018年9月,微软宣布在 GitHub 上重新开源
MS-DOS 1.25、2.0,相比原来的可下载压缩文件更容易查找、阅读和引用。MS-DOS
1.25、2.0 的所有源代码都是用 8086 汇编代码写的,其中 86-DOS
的代码最初完成于1980年12月29日。

澳门新葡亰信誉平台游戏 4

而微软开源放出的除了源文件和目标文件,还有一些有趣的 .txt、.doc
文件,十分值得一读,其中包括很多代码注释。

微软并没有计划开放整个Service Fabric
的SDK,其中可靠的数据集支持就将缺失,而且开源工作在前期只会小范围进行,代码加入公共源代码库的时间也不固定。

大会上宣布WPF、Windows Forms和WinUI开源,即三个主要的Windows
UX技术都将开源。这是史无前例的创举,整个社区都将公开的看到WPF、Windows
Forms和WinUI的进展,第一批代码将在GitHub上发布,未来几个月还会发布更多代码,这让全球开发者无比惊喜。

6.微软的分布式系统平台 Service Fabric 正式开源

2018年3月14日,微软宣布正式开源 Service Fabric,采用 MIT
开源许可证。Windows 内部为 Service Fabric
开发了将近十年的内部服务,其中大部分时间都是微软内部平台,比如
Office365,Azure Stack 平台等。

其中包括 Reliable
Services,Reliable
Actors 和 ASP.NET
Core 集成库,Azure
基础架构服务以及 Azure SQL DB,Azure Cosmos DB 和 Cortana
等大型解决方案都在使用 Service Fabric 构建。

尽管微软开发团队没有承诺未来的行动,但开放源码的进程还将继续。更多的 SDK
内容,甚至是服务运行环境都有可能是未来开源的候选。

WPF和Windows Forms

7.微软正式开源 Blazor ,将 .NET 带回到浏览器

2018年2月,微软  ASP.Net 团队正式开源 Blazor,这是一个 Web UI
框架,可通过 WebAssembly 在任意浏览器中运行 .NET。

Blazor 旨在简化快速的单页面 .NET 浏览器应用的构建过程,它虽然使用了诸如
CSS 和 HTML 之类的 Web 技术,但它使用 C#语言和 Razor 语法代替
JavaScript 来构建可组合的 Web UI 。通过提供用于编译到 Web
的大小和高效加载的格式,WebAssembly 可让 .NET 在浏览器中运行。

【编辑推荐】

WPF和Windows Forms现在可以与.NET
Core一起使用。它们出现在一个名为“Windows桌面”的新组件中,该组件是Windows版本的SDK的一部分。

8.微软代码托管平台 CodePlex 正式关闭,进入封存状态

随着 CodePlex 的不断没落,微软于2018年1月 30
日发文宣布,CodePlex.com
网站正式退役,现在打开该网址会跳转到一个封存归档页面。该存档包含在2017年下半年进入只读模式前托管到
CodePlex 上的所有项目。

澳门新葡亰信誉平台游戏 5

CodePlex
是微软于2006年推出的一个开源软件托管平台,在提供服务11年之后,微软于2017年4月1日宣布将关闭该平台,并给出了结束时间:2017年10月切换到只读模式,12月彻底关闭(最终的关闭日期是2018年1月29日)。之后,CodePlex
将为之前的开源项目存档,人们可以浏览并下载这些项目。

开发者可以从命令行创建针对WPF和Windows Forms的新.NET Core项目。如:

9.微软力挺 Go,宣布参与 Athens 项目和 GopherSource

在2018年的 Go 开发者大会 GopherCon 上,微软宣布要为 Athens
项目贡献代码,以及与 GopherSource 进行合作。

Athens 是一个开源项目,旨在为 Go 模块(Go
modules)创建首个代理服务器。微软表示该项目目前仍处于 alpha
阶段,并将联合 Athens 社区继续致力于改善模块体验,重点是确保 Go
模块与所有代理服务器能无缝协作,并努力建立一个联合的、组织多样化的代理网络。

而所谓的 GopherSource 其实是一项新计划,旨在通过在社区内为上游项目和关键
Go 项目(如 Athens)带来更多用户和贡献者,以增强和实现 Go
生态系统的多样化。

对于微软 2018 开源大事记的回顾到此为止,如有纰漏,欢迎在评论区指正。

(文/开源中国)    

dotnetnewwpfdotnetnewwinforms

创建项目后,就可以通过dotnet来运行它们。下图示出了新的WPF应用看起来是什么样子。

Windows Forms也非常相似,如下图所示。

同时还可以在Visual Studio 2019预览版1中打开、启动和调试WPF和Windows
Forms项目。

应用现在默认具有可执行文件

.NET Core应用现在使用可执行文件进行构建。对于使用全局安装的.NET
Core版本的应用而言,这是一项新功能。到目前为止,只有自包含的应用具有可执行文件。对于这些可执行文件,开发者可以期待它们与其他本地可执行文件具有相同的特性,例如:

您可以双击可执行文件。

您可以从命令提示符下启动应用,而无需使用dotnet工具。在Windows上使用myconsole.exe,在Linux和macOS上使用./myconsole。正如以下示例所示。

C:Usersrlandermyconsole>dotnetbuildC:Usersrlandermyconsole>cdbinDebugnetcoreapp3.0C:UsersrlandermyconsolebinDebugnetcoreapp3.0>dir/bmyconsole.deps.jsonmyconsole.dllmyconsole.exemyconsole.pdbmyconsole.runtimeconfig.dev.jsonmyconsole.runtimeconfig.jsonC:UsersrlandermyconsolebinDebugnetcoreapp3.0>myconsole.exeHelloWorld!C:UsersrlandermyconsolebinDebugnetcoreapp3.0>dotnetmyconsole.dllHelloWorld!

[email protected]:/myconsole#dotnetbuild[email protected]:/myconsole#cdbin/Debug/netcoreapp3.0/[email protected]:/myconsole/bin/Debug/netcoreapp3.0#lsmyconsolemyconsole.dllmyconsole.runtimeconfig.dev.jsonmyconsole.deps.jsonmyconsole.pdbmyconsole.runtimeconfig.json[email protected]:/myconsole/bin/Debug/netcoreapp3.0#./myconsoleHelloWorld![email protected]:/myconsole/bin/Debug/netcoreapp3.0#dotnetmyconsole.dllHelloWorld!

提供的可执行文件与您正在使用的SDK的环境相匹配。我们还没有启动为其他运行时环境指定-r参数的功能。

dotnet build现在可以复制依赖项

dotnet
build现在可以在构建操作期间把应用的NuGet依赖项从NuGet缓存中复制到构建输出文件夹中。在此版本之前,这些依赖项仅作为dotnet
publish的一部分进行复制。此更改能够通过xcopy命令将构建输出复制到不同的计算机中。

还有一些操作,例如linking和razor page publishing,仍然需要发布。

可以在以下示例中看到新体验:

C:Usersrlandermyconsole>dotnetaddpackageNewtonsoft.jsonC:Usersrlandermyconsole>dotnetbuildC:Usersrlandermyconsole>dir/bbinDebugnetcoreapp3.0*.dllmyconsole.dllNewtonsoft.Json.dll

本地dotnet工具

.NET Core工具已进行了更新,现在包含了一套本地工具场景。微软在.NET Core
2.1中添加了全局工具。可以从机器上的任何位置为当前用户提供全局工具。这项功能很好,但这不允许根据位置来选择版本,而且它们也没有提供一种简单的方法来恢复开发环境或构建工具环境。磁盘上的特定位置现在可以与一组本地工具及其版本相关联。本地工具依赖于名为dotnet-tools.json的工具清单文件。我们建议在存储库的根目录中提供工具清单文件。

对于将全局工具添加到工具清单文件中以及克隆包含全局工具的存储库,本地工具提供了不同的体验。如果您克隆包含本地工具的repo,则只需运行以下命令:

dotnettoolrestore

恢复之后,可以使用以下命令调用本地工具:

dotnettoolrun

调用本地工具时,dotnet会在目录结构中搜索清单。当找到工具清单文件后,就在其中搜索所请求的工具。如果找到了该工具,它将包含在NuGet全局包位置中查找该工具所需要的信息。

在预览版1之后,微软将提供一种机制来创建工具清单文件,可能会通过dotnet新模板来实现。对于预览版1,您必须利用以下内容来创建文件名dotnet-tools.json:

创建清单之后,可以使用以下命令向其中添加本地工具:

dotnettoolinstall

要想从工具清单文件中删除工具,请运行以下命令:

dotnettooluninstall

如果将工具清单文件签入到您的源代码控制中,则克隆您的存储库的程序员可以如上所述访问正确的工具。

快速收件箱JSON阅读器简介

System.Text.Json.Utf8JsonReader是一款高性能、低分配、仅前向的读取器,用于UTF-8编码的JSON文本,从ReadOnlySpan中读取。Utf8JsonReader是一种基础性的低级类型,可用于构建自定义解析器和反序列化器。使用新的Utf8JsonReader读取JSON有效负载比使用Json.NET中的读取器快2倍。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图