Microsoft平台开发人员在2020年应该关注什么?
.NET 5, winui3.0, AKS, WSL 2,以及AzureSphere
在2019年底,当你把你的应用程序开发计划和你的技术路线图放在一起时,它值得你向前看。过去几年,微软在很多平台上都有了很大的改变,而且这种改变的速度并没有放慢。
2020年你应该关注什么?为什么?以下是针对Windows、Azure以及其他平台的5个选项。它们并不是惟一的,但是它们应该让您走上一条通向更现代的开发平台和工具集的道路。
开始过渡到.NET 5
构建.NET代码所面临的最大挑战可能是随着.NET 5在2020年底的发布,从老旧的.NET Framework向.NET Core的转变。将.NET的两部分结合在一起是有意义的,即使它确实需要丢失一些旧的api。微软在.NET GitHub资源库上发布了一个列表,列出了哪些内容可以迁移,哪些不可以迁移。一些缺失的api将转移到社区实现,而其他api将获得更多现代替代方案。
如果您支持和开发.NETFramework代码,2020年将为您提供一个很好的机会来探索将来如何交付代码。当前的.NET Core 3.1版本是一个长期支持版本,并且与.NET Standard库一起支持.NET 5中将提供的许多API。将代码移植到.NET Core 3.1中可为您提供探索的机会不仅需要对代码进行哪些更改,还需要构建新的工具链。
.NET Core的未来是跨平台的,Blazor可以通过ASP.NET和Razor在WebAssembly上和服务器端使用。Windows,macOS和Linux上的.NET Core;并在移动设备上使用Xamarin。将代码迁移到.NET 5不仅是支持将来的Windows版本,而且是将其交付给更多平台和用户的机会。
开始探索WinUI 3.0
Windows平台将在2020年发生变化。微软最终将Windows SDK分为两部分:将UI组件分离为WinUI,并保留操作系统级别的功能。在即将发布的WinUI 3.0中,UI组件将能够以与操作系统不同的节奏进行发布,并在发布时添加新控件。它们将在Windows 10中受支持,可在Win32和WinForms应用程序以及通用Windows平台(UWP)应用程序中使用。
通过与UnoPlatform的合作关系,WinUI也将在现代浏览器(例如基于Chromium的新型Edge)等现代浏览器中得到支持,该平台将控件移植到WebAssembly,从而使WinUI可以覆盖更多的受众。现有的UWP应用程序将能够使用WinUI 3.0,而只需进行很少的更改,C ++代码将能够使用新控件添加对Microsoft Fluent设计语言的支持。
将AKS用于云原生应用程序
构建现代的云应用程序意味着构建基于分布式微服务的应用程序,在需要的时间和地点部署容器化的代码,以及管理资源以响应需求。所有这些加在一起需要协调器来管理扩展和部署。您可以自己实现Kubernetes,进入kubectl和YAML配置文件的本质。但是,Azure上有一个替代方案:Azure Kubernetes Service的托管选项,适用于Linux和Windows容器。
通过使用熟悉的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在笔记本电脑上进行云开发
不久之前,您在任何开发者活动中都只会看到一行发光的Apple徽标。现在,它的阵容更加复杂了,因为微软一直致力于使开发人员重回Windows,可以快速访问流行的语言,例如Python,Visual Studio Code中易于定制的程序员编辑器,新的Windows Terminal,以及大多数重要的是Windows Linux子系统(WSL)。
WSL最初模拟Linux内核,不久将升级为与Windows一起运行的自己的Linux内核。 WSL 2旨在简化在PC上构建和测试云应用程序的工作,还将包括可从Windows访问的Linux文件系统,并支持使用Visual Studio Code进行远程编辑。 Docker已开始测试适用于WSL 2的Docker桌面版本。这将Windows的本机Linux容器支持添加到Windows,使用熟悉的dockerfiles构建和部署本地容器实例,并使用Code直接处理其内容。
Windows,Linux和Docker的结合为构建强大的端到端开发工具集提供了灵活的基础,该工具集充分利用了每个平台,并为您提供了灵活的工作方式,同时仍可将代码交付到通用存储库。
使用Azure Sphere保护物联网
自从我上次查看Microsoft安全物联网平台AzureSphere以来已经有一段时间了。将基于硬件的安全性与自定义Linux内核和云托管的管理平台相结合是一种确保操作系统和在硬件上运行的应用程序未被篡改,并且无法更改或插入代码的方式由恶意的第三方。
使用微软的安全ARM微控制器的开发板已经面世了一段时间,最近又有便宜的替代品加入其中。很显然,Azure Sphere现在可以在您的产品中使用,并且可以使用生产就绪的模块和SOC,因此您可以围绕它构建自己的硬件。您不需要新的开发工具;所有Azure Sphere开发都在熟悉的Visual Studio中进行。
一组更有趣的发展是一组基于Sphere的保护单元,可以与现有的工业控制器一起使用,在将PLC和其他现有的工业系统与您的应用程序集成时增加了一层保护,从而使您可以连接可能已经考虑过的设备过去风险太大,无法添加到物联网平台。