2020年微軟開發工具和技術的探索
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和其他現有的工業系統與您的應用程序集成時增加了一層保護,從而使您可以連接可能已經考慮過的設備過去風險太大,無法添加到物聯網平臺。