2020年值得探究的五款微軟開發者技術
譯文【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】