2020年微软平台开发者应该关注什么?.NET5、winui3.0、AKS、WSL2和AzureSphere在2019年底,当你把你的应用程序开发计划和你的技术路线图放在一起时,是值得向前看的。在过去的几年里,微软在许多平台上都发生了很大变化,而且变化的步伐并没有放缓。2020年你应该关注什么?为什么?以下是适用于Windows、Azure及更高版本的5个选项。他们不是唯一的,但他们应该让您走上更现代的开发平台和工具集的道路。开始向.NET5的过渡也许构建.NET代码的最大挑战是随着2020年底.NET5的发布,从旧的.NETFramework向.NETCore的过渡。将这两个部分结合起来是有意义的.NET在一起,即使它确实需要丢失一些旧的API。Microsoft已在.NETGitHub存储库上发布了一份列表,其中列出了可以迁移的内容和不能迁移的内容。一些缺失的API将移至社区实施,而其他API将获得更现代的替代方案。如果您支持和开发.NETFramework代码,2020年将为您提供一个很好的机会来探索您的代码在未来将如何交付。当前的.NETCore3.1版本是一个长期支持版本,与.NETStandard库一起支持许多将在.NET5中可用的API。将您的代码移植到.NETCore3.1使您有机会不仅要探索需要对代码进行哪些更改,还要探索构建新的工具链。.NETCore的未来是跨平台的,Blazor可以通过ASP.NET和Razor在WebAssembly和服务器端使用。Windows、macOS和Linux上的.NETCore;和移动端的Xamarin。将代码迁移到.NET5不仅是支持未来Windows版本的机会,也是将其交付给更多平台和用户的机会。开始探索WinUI3.0Windows平台将在2020年发生变化。微软最终将WindowsSDK拆分为两部分:将UI组件分离到WinUI中,并保留操作系统级别的功能。在即将发布的WinUI3.0版本中,UI组件将能够以不同于操作系统的节奏发布,并在发布时添加新的控件。它们将在Windows10中得到支持,在Win32和WinForms应用程序以及通用Windows平台(UWP)应用程序中可用。通过与UnoPlatform的合作,WinUI也将在现代浏览器中得到支持,例如新的基于Chromium的Edge,后者将控件移植到WebAssembly,从而使WinUI能够覆盖更广泛的受众。现有的UWP应用程序将能够使用WinUI3.0,只需很少的更改,C++代码将能够使用新控件添加对MicrosoftFluent设计语言的支持。将AKS用于云原生应用程序构建现代云应用程序意味着基于分布式微服务构建应用程序,在需要的时间和地点部署容器化代码,并根据需求管理资源。所有这些结合起来需要一个协调器来管理扩展和部署。你可以自己实现Kubernetes,深入了解kubectl和YAML配置文件的本质。但是,Azure上有一个替代方案:AzureKubernetes服务的托管选项,可用于Linux和Windows容器。通过使用熟悉的Azure门户,访问Azure自身的网络功能以及使用HashiCorp的Terraform等工具的能力简化了部署容器化应用程序和服务的过程。其他选项包括基于角色的访问控制,以锁定对资源的访问,减少安全风险。AKS自动向上和向下扩展您的Kubernetes集群,并且它与Azure的监视工具集成,因此您可以密切关注服务操作。结果是纯Kubernetes平台的混合管理,使用Kubernetes工具和熟悉的Azure门户进行细粒度控制,以管理对其他Azure服务的访问。服务集成可以简化Kubernetes操作,例如,通过直接访问AzureStorage获取持久数据并支持Azure自己的容器注册表。如果您想在Azure上构建Kubernetes应用程序,您别无选择,尤其是在考虑像AzureDevSpaces这样的服务时。DevSpaces建立在AKS之上,为你提供了一个安全的私有环境来构建、测试和调试你的云原生代码,而不会影响生产服务。使用WSL2和Docker在笔记本电脑上进行云开发不久前,您在任何开发者活动中看到的都是一排发光的Apple徽标。现在,它的阵容更加复杂,因为微软一直在努力让开发人员回到Windows,可以快速访问流行语言,如Python、VisualStudioCode中易于定制的程序员编辑器、新的Windows终端等等。重要的是适用于Linux的Windows子系统(WSL)。WSL最初模拟Linux内核,很快将升级到与Windows一起运行的自己的Linux内核。WSL2旨在简化在PC上构建和测试云应用程序,还将包括一个可从Windows访问的Linux文件系统,并支持使用VisualStudioCode进行远程编辑。Docker已经开始测试适用于WSL2的DockerDesktop版本。这为Windows添加了原生Linux容器支持,使用熟悉的dockerfiles来构建和部署本地容器实例,并使用Code直接处理它们的内容。Windows、Linux和Docker的组合为构建强大的端到端开发工具集提供了一个灵活的基础,该工具集充分利用了每个平台,让您可以灵活地工作,同时仍将代码交付到通用存储库。使用AzureSphere保护IoT我已经有一段时间没有关注Microsoft的安全IoT平台AzureSphere了。将基于硬件的安全性与自定义Linux内核和云托管管理平台相结合,可以确保硬件上运行的操作系统和应用程序未被篡改,并且代码不会被恶意第三方更改或插入。使用Microsoft的安全ARM微控制器的开发板已经上市一段时间了,最??近又加入了更便宜的替代品。显然,AzureSphere现在在您的产品中可用,带有生产就绪模块和SOC,因此您可以围绕它构建自己的硬件。您不需要新的开发工具;所有AzureSphere开发都在熟悉的VisualStudio中进行。其中一个更有趣的发展是一组基于Sphere的保护单元,可与现有工业控制器一起使用,在将PLC和其他现有工业系统与您的应用程序集成时增加一层保护,从而使您能够连接您可能会使用的设备过去认为添加到物联网平台风险太大。
