2020年值得探究的五款微軟開發(fā)者技術(shù)
譯文【51CTO.com快譯】不可否認(rèn),Microsoft近年來已經(jīng)變得越來越開放了。其廣泛的開發(fā)工具和眾多平臺構(gòu)建產(chǎn)品,讓各類程序員們在應(yīng)用開發(fā)計劃、和技術(shù)路線圖上有著豐富的選擇。在本文中,我們將帶領(lǐng)您一起探究Windows、Azure、以及開發(fā)者工具的應(yīng)用發(fā)展趨勢。
準(zhǔn)備過渡到.NET 5?
2020年底(譯者注:大約是在11月份,當(dāng)然微軟會在上半年推出第一個預(yù)覽版),微軟即將發(fā)布.NET 5。而對于那些習(xí)慣于構(gòu)建.NET代碼的開發(fā)人員來說,他們可能面臨的一個最大挑戰(zhàn)是:陳舊的.NET Framework向.NET Core的轉(zhuǎn)變,會帶來各種使用上的變化。顯然,在將.NET升級過渡到新的版本之后,微軟勢必會放棄一些較為陳舊的API。
目前,微軟已經(jīng)在.NET的GitHub數(shù)據(jù)庫中,列出了哪些API會被沿用過去,而哪些會被直接“拋棄”。當(dāng)然,對于那些即將缺失的API而言,其中的一部分會被轉(zhuǎn)移到社區(qū)中,由各類開發(fā)者予以實現(xiàn),而其他的一些API則可能被更多的現(xiàn)代化方案所替代。
因此,如果您正在支持和開發(fā).NET Framework的相關(guān)代碼,那么您可以利用2020年去深入思考和探究將來將如何去實現(xiàn)與交付代碼。畢竟,當(dāng)前的.NET Core 3.1版本已經(jīng)發(fā)布了一段時間,而且擁有著良好的技術(shù)支持。它與.NET標(biāo)準(zhǔn)庫所共同支持的許多API,將繼續(xù)在.NET 5中“出鏡”。因此,您需要在保證代碼能夠被平滑地移植到.NET 5的同時,構(gòu)建出屬于自己的新的工具鏈。
通過WebAssembly上的Blazor,服務(wù)器端采用ASP.NET和Razor的模式,將來的.NET Core會更具有跨平臺特性,它能夠支持Windows、macOS和Linux平臺;而在移動設(shè)備上,用戶則可以使用Xamarin。可以說,將程序代碼順勢遷移到.NET 5上,不僅是為了支持將來的Windows版本,而且也能夠獲取更多的平臺和用戶支持。
開始轉(zhuǎn)向WinUI 3.0
Windows平臺將在2020年持續(xù)發(fā)生變化。微軟最終將Windows SDK一分為二,即:部分UI組件被劃歸為WinUI,而剩余的部分則被保留為操作系統(tǒng)級別的基本功能。在即將發(fā)布的WinUI 3.0中,UI組件將會與操作系統(tǒng)具有不同的發(fā)布節(jié)奏,并在發(fā)布時添加各種新的控件。它們不但能夠在Windows 10中得到Win32和WinForms應(yīng)用的支持,而且能夠在通用的Windows平臺(Universal Windows Platform,UWP)應(yīng)用程序中被使用。
通過與Uno Platform的合作,WinUI也將在各種新式的瀏覽器(例如:基于Chromium的新型Edge)中得到支持。此類瀏覽器已將控件移植到了WebAssembly上,從而使得WinUI可以覆蓋更多的品類。也就是說,我們只需進(jìn)行少量的更改,就能夠讓現(xiàn)有的UWP應(yīng)用程序直接使用WinUI 3.0。同時,C++代碼也將能夠使用新的控件,以添加對于Microsoft Fluent設(shè)計語言的支持。
將AKS用于云原生應(yīng)用中
我們常說的“構(gòu)建現(xiàn)代化的云應(yīng)用”,其實是指:構(gòu)建基于分布式微服務(wù)的應(yīng)用程序,在需要的時間和地點部署容器化的代碼,以及管理資源以響應(yīng)需求。而所有這些加在一起,都需要編排器(orchestrator)來管理各項擴(kuò)展和部署。雖然您可以通過kubectl和YAML配置文件,來實現(xiàn)Kubernetes。但是,在Azure上,您將獲取另一種替代方案,即:適用于Linux和Windows容器的Azure Kubernetes Service(AKS)托管選項。
通過使用熟悉的Azure門戶,您可以訪問Azure自帶的網(wǎng)絡(luò)功能,并使用HashiCorp的Terraform等工具,來簡化部署容器化應(yīng)用的服務(wù)過程。通過了解和選用其他選項外,您還可以實現(xiàn)基于角色的訪問控制,鎖定資源式的訪問,以及對于安全隱患的消除。
此外,AKS還能夠自動縱向擴(kuò)展您的Kubernetes集群,通過與Azure監(jiān)視工具的集成,您可以實現(xiàn)對服務(wù)運(yùn)營的密切關(guān)注。據(jù)此,您可以使用Kubernetes工具,細(xì)粒度地控制純粹的Kubernetes平臺和熟悉的Azure門戶,進(jìn)而進(jìn)行混合式的管理;并對于其他Azure服務(wù),可以采取托管式的訪問。可以說,有了服務(wù)集成,我們便可以簡化Kubernetes的各項操作,其中包括:直接訪問Azure的存儲空間,以獲取持久性數(shù)據(jù),進(jìn)而實現(xiàn)對于Azure自身容器注冊表的支持。
作為比較,如果您要在Azure上構(gòu)建Kubernetes應(yīng)用,特別是在考慮使用Azure Dev Spaces之類的服務(wù)時,您的選擇空間并不大。而如果您打算將Dev Spaces建立在AKS之上,那么您就可以在一個安全的私有環(huán)境中進(jìn)行構(gòu)建、測試和調(diào)試自己的云原生代碼,且不會影響到真正的生產(chǎn)環(huán)境與服務(wù)。
使用WSL 2和Docker在PC上進(jìn)行云端開發(fā)
近年來,為了讓開發(fā)人員能夠重回Windows,微軟在其Visual Studio Code中提供了易于定制的程序編輯器,以方便用戶快速地采用Python之類的流行的語言。這是一種新的Windows終端,屬于針對Linux開發(fā)的Windows子系統(tǒng)(Windows Subsystem for Linux,WSL)。
早些時候,WSL模擬的是Linux內(nèi)核;而在不久的將來,它會將自己的Linux內(nèi)核升級到與Windows并行。未來的WSL 2旨在簡化在PC上構(gòu)建和測試云端各項應(yīng)用。它將會包括:可以從Windows上訪問Linux文件系統(tǒng),支持使用Visual Studio Code進(jìn)行遠(yuǎn)程編輯等。如今,Docker已開始測試適用于WSL 2的Docker桌面版本。該版本添加了原生Linux容器對于Windows的支持,用戶可以使用熟悉的dockerfiles,來構(gòu)建和部署本地的容器實例,并能夠使用Code來直接處理其內(nèi)容。
可見,Windows、Linux和Docker的結(jié)合,為構(gòu)建強(qiáng)大的端到端開發(fā)工具集提供了靈活的基礎(chǔ)。該工具集充分利用了每個平臺各自優(yōu)點,為用戶提供了靈活的工作方式。當(dāng)然,他們?nèi)匀豢梢詫⒋a交付到通用存儲庫之中。
使用Azure Sphere保護(hù)物聯(lián)網(wǎng)
我們需要通過自定義的Linux內(nèi)核,來實現(xiàn)基于硬件的安全性。它能夠與云托管的平臺相結(jié)合,以確保操作系統(tǒng)本身、以及在硬件上運(yùn)行的應(yīng)用程序不會被第三方所篡改或插入惡意代碼。
前些時,使用了微軟安全ARM微控制器的開發(fā)板已經(jīng)面世。最近又有一些相對便宜的產(chǎn)品被相繼推出。如今,為了構(gòu)建自己的硬件產(chǎn)品,您不但可以直接使用Azure Sphere,還可以用到一些針對生產(chǎn)線設(shè)計的模塊和SOC。而在開發(fā)的過程中,您不必引入新的開發(fā)工具,所有使用Azure Sphere的開發(fā)都可以在熟悉的Visual Studio中進(jìn)行。
此外,我們還可以將一組基于Sphere的保護(hù)單元,加載到現(xiàn)有的工業(yè)控制器上共同使用,以便讓那些集成有您的應(yīng)用程序的工業(yè)系統(tǒng)與PLC,獲得額外的一層保護(hù)。據(jù)此,您便可以放心地連接、或添加到高風(fēng)險的設(shè)備、或物聯(lián)網(wǎng)平臺上。
原文標(biāo)題:5 Microsoft developer tools and technologies to explore in 2020,作者:Simon Bisson
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】




























