29

2020年值得探究的五款微软开发者技术

 4 years ago
source link: http://developer.51cto.com/art/202001/608939.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

mQZFVv7.jpg!web

【51CTO.com快译】不可否认,Microsoft近年来已经变得越来越开放了。其广泛的开发工具和众多平台构建产品,让各类程序员们在应用开发计划、和技术路线图上有着丰富的选择。在本文中,我们将带领您一起探究Windows、Azure、以及开发者工具的应用发展趋势。

准备过渡到.NET 5?

2020年底(译者注:大约是在11月份,当然微软会在上半年推出第一个预览版),微软即将发布 .NET 5 。而对于那些习惯于构建.NET代码的开发人员来说,他们可能面临的一个最大挑战是:陈旧的.NET Framework向.NET Core的转变,会带来各种使用上的变化。显然,在将.NET升级过渡到新的版本之后,微软势必会放弃一些较为陈旧的API。

目前,微软已经在.NET的GitHub数据库中,列出了哪些API会被沿用过去,而哪些会被直接“抛弃”。当然,对于那些即将缺失的API而言,其中的一部分会被转移到社区中,由各类开发者予以实现,而其他的一些API则可能被更多的现代化方案所替代。

因此,如果您正在支持和开发.NET Framework的相关代码,那么您可以利用2020年去深入思考和探究将来将如何去实现与交付代码。毕竟,当前的.NET Core 3.1版本已经发布了一段时间,而且拥有着良好的 技术支持 。它与.NET标准库所共同支持的许多API,将继续在.NET 5中“出镜”。因此,您需要在保证代码能够被平滑地移植到.NET 5的同时,构建出属于自己的新的工具链。

通过WebAssembly上的Blazor,服务器端采用ASP.NET和Razor的模式,将来的.NET Core会更具有跨平台特性,它能够支持Windows、macOS和Linux平台;而在移动设备上,用户则可以使用Xamarin。可以说,将程序代码顺势迁移到.NET 5上,不仅是为了支持将来的Windows版本,而且也能够获取更多的平台和用户支持。

开始转向WinUI 3.0

Windows平台将在2020年持续发生变化。微软最终将Windows SDK一分为二,即:部分UI组件被划归为WinUI,而剩余的部分则被保留为操作系统级别的基本功能。在即将发布的 WinUI 3.0 中,UI组件将会与操作系统具有不同的发布节奏,并在发布时添加各种新的控件。它们不但能够在Windows 10中得到Win32和WinForms应用的支持,而且能够在通用的Windows平台(Universal Windows Platform,UWP)应用程序中被使用。

通过与 Uno Platform 的合作,WinUI也将在各种新式的浏览器(例如:基于Chromium的新型Edge)中得到支持。此类浏览器已将控件移植到了WebAssembly上,从而使得WinUI可以覆盖更多的品类。也就是说,我们只需进行少量的更改,就能够让现有的UWP应用程序直接使用WinUI 3.0。同时,C++代码也将能够使用新的控件,以添加对于 Microsoft Fluent设计语言 的支持。

将AKS用于云原生应用中

我们常说的“构建现代化的云应用”,其实是指:构建基于分布式微服务的应用程序,在需要的时间和地点部署容器化的代码,以及管理资源以响应需求。而所有这些加在一起,都需要编排器(orchestrator)来管理各项扩展和部署。虽然您可以通过kubectl和YAML配置文件,来实现Kubernetes。但是,在Azure上,您将获取另一种替代方案,即:适用于Linux和Windows容器的Azure Kubernetes Service(AKS) 托管选项

通过使用熟悉的Azure门户,您可以访问Azure自带的网络功能,并使用HashiCorp的Terraform等工具,来简化部署容器化应用的服务过程。通过了解和选用其他选项外,您还可以实现基于角色的访问控制,锁定资源式的访问,以及对于安全隐患的消除。

此外,AKS还能够自动纵向扩展您的Kubernetes集群,通过与Azure监视工具的集成,您可以实现对服务运营的密切关注。据此,您可以使用Kubernetes工具,细粒度地控制纯粹的Kubernetes平台和熟悉的Azure门户,进而进行混合式的管理;并对于其他Azure服务,可以采取托管式的访问。可以说,有了服务集成,我们便可以简化Kubernetes的各项操作,其中包括:直接访问Azure的存储空间,以获取持久性数据,进而实现对于Azure自身容器注册表的支持。

作为比较,如果您要在Azure上构建Kubernetes应用,特别是在考虑使用 Azure Dev Spaces之类的服务 时,您的选择空间并不大。而如果您打算将Dev Spaces建立在AKS之上,那么您就可以在一个安全的私有环境中进行构建、测试和调试自己的云原生代码,且不会影响到真正的生产环境与服务。

使用WSL 2和Docker在PC上进行云端开发

近年来,为了让开发人员能够重回Windows,微软在其Visual Studio Code中提供了易于定制的 程序编辑器 ,以方便用户快速地采用Python之类的流行的语言。这是一种新的Windows终端,属于针对Linux开发的Windows子系统(Windows Subsystem for Linux,WSL)。

早些时候,WSL模拟的是Linux内核;而在不久的将来,它会将自己的Linux内核升级到与Windows并行。未来的WSL 2旨在简化在PC上构建和测试云端各项应用。它将会包括:可以从Windows上访问Linux文件系统,支持使用Visual Studio Code进行远程编辑等。如今,Docker已开始测试适用于WSL 2的 Docker桌面版本 。该版本添加了原生Linux容器对于Windows的支持,用户可以使用熟悉的dockerfiles,来构建和部署本地的容器实例,并能够使用Code来直接处理其内容。

可见,Windows、Linux和Docker的结合,为构建强大的端到端开发工具集提供了灵活的基础。该工具集充分利用了每个平台各自优点,为用户提供了灵活的工作方式。当然,他们仍然可以将代码交付到通用存储库之中。

使用Azure Sphere保护物联网

我们需要通过自定义的Linux内核,来实现基于硬件的安全性。它能够与云托管的平台相结合,以确保操作系统本身、以及在硬件上运行的应用程序不会被第三方所篡改或插入恶意代码。

前些时,使用了微软安全ARM微控制器的开发板已经面世。最近又有一些相对便宜的产品被相继推出。如今,为了构建自己的硬件产品,您不但可以直接使用Azure Sphere,还可以用到一些针对生产线设计的模块和SOC。而在开发的过程中,您不必引入新的开发工具,所有使用Azure Sphere的开发都可以在熟悉的Visual Studio中进行。

此外,我们还可以将一组基于Sphere的保护单元,加载到现有的工业控制器上共同使用,以便让那些集成有您的应用程序的工业系统与PLC,获得额外的一层保护。据此,您便可以放心地连接、或添加到高风险的设备、或物联网平台上。

原文标题:5 Microsoft developer tools and technologies to explore in 2020,作者:Simon Bisson

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【责任编辑:庞桂玉 TEL:(010)68476606】


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK