盡管現在的"微軟平臺"的含義已經與往日大相徑庭,但微軟在紐約舉辦Connect 2016大會為開發人員制定了針對其平臺的計劃。
今天的口號是"任何開發人員,任何應用程序,任何平臺",而幾年前的主題是"Windows無處不在"。
Connect大會屬于微軟的開發人員部門,與由Windows部門舉辦的Build活動不同。因此,大會上的主題演講也不那么關注Windows操作系統的開發。
微軟同Windows的關系變得復雜。一方面,它有一個Windows開發人員社區,希望保持其信心;但另一方面,它想要說服更廣泛的開發人員群體,讓他們相信該公司有適用于其他平臺,特別是iOS和Android移動客戶端以及用于Web和服務器應用程序的Linux的工具和框架。
因此,該公司正忙于排除在Windows外使用其技術的障礙。只要快速瀏覽一下主要的Connect公告就表明了這一點:微軟作為白金會員加入Linux基金會,發布了SQL Server for Linux的公共預覽版。谷歌加入.NET基金會,Visual Studio for Mac預覽版發布;Azure App Service現在支持Linux了。三星發布針對Tizen的Visual Studio Tools。Visual Studio Mobile Center宣布在iOS、Android和Windows上測試移動應用程序。跨平臺.NET Core 1.1和Entity Framework Core 1.1發布。
現在沒有任何關于Windows Everywhere的跡象,不過有一些關于.NET Everywhere的證據,谷歌和三星顯示出對它支持。
在今年早些時候被收購之后,Xamarin對微軟的影響是Connect大會上另一個值得注意的地方。Xamarin成立的目的是使C#開發者能夠瞄準移動平臺,并且由于iOS和安卓系統的成功而迅速增長。另一方面,微軟一直在努力吸引開發人員到其通用Windows平臺(UWP)上,因為沒有iOS和安卓,它就不夠通用。因此,Xamarin提供了答案。
多年來一直跟蹤微軟開發人員故事的轉折和轉向的開發人員,將知道有許多種XAML,一種基于XML的語言,最常被用來定義用戶界面。有WPF(Windows Presentation Foundation)XAML、Silverlight XAML和UWP XAML,所有的這些語言都有所不同。 Xamarin介紹了另一種變體, Xamarin.Forms技術使用它,允許開發人員一次性為多個平臺定義UI。
Xamarin.Forms立刻大受歡迎,甚至超出了它的創造者的期望,特別是因為該公司長期以來一直主張為每個平臺單獨創建一個原生UI。盡管它有局限性,但是它可以創造高效率,特別是對于forms-over-data業務應用程序更是如此,對這類程序來說,最后一個程度的美化是不必要的。Xamarin.Forms現在瞄準UWP以及iOS和安卓系統,并且顯然會在未來的版本中添加Mac OS。
負責開發部門的微軟企業副總裁Julia Liuson提醒我Xamarin.Forms的能力不如XAML的其他變體。
她表示,"UWP應用程序使用的XAML版本是一個真正的平臺,它可以讓你做一切可能的事情,而Xamarin.Forms是一個了不起的應用,但你不能使用它來描述一切可能的東西,針對所有不同的平臺口味。"Xamarin.Forms和UWP XAML之間目前還沒有融合的計劃。
也就是說,與UWP XAML相比,Xamarin.Forms滿足的是開發者更迫切的需求,所以如果它有一個更光明的未來就毫不令人感到意外了。
我也向Liuson提出了Visual Basic(VB)是否有未來這個棘手的問題。她表示,Visual Studio 2017中的所有新功能--都可能會在Connect大會上發布--"都同樣地適用于Visual Basic和C#"。一個Visual Basic用戶"應該對于我們如何帶來更多的能力和更多的生產力的做法感覺非常好。
Liuson承認,這也就是說VB沒有像C#一樣獲得相同的投資。她對《The Reg》表示,"隨著.NET不斷擴展,我們觀察到的是Visual Basic開發人員傾向于專注于一組知名的業務應用程序:ASP.NET、Windows Forms和WPF。我們將繼續在這些領域提供大力支持,但是當涉及到全新的功能集時,我們沒有觀察到Visual Basic開發人員接受這些。所以我們把重點放在VB客戶工作的領域上。"
這意味著,想要跟隨微軟走出Windows的VB開發人員應該學習C#或另一種語言。
Visual Studio 2017如何揭示出微軟的新方向
Visual Studio 2017還展示出微軟的方式是如何改變的。它比以往任何時候都更加巨大,雖然新的安裝程序可以減輕這種痛苦,使您能夠用比以前更清爽和更靈活的方式挑選并選擇所需的組件。選擇的菜單包括:
Python
Node.js
針對Linux Development的Visual C++
Clang with Microsoft CodeGen (對Windows 上的C++有更多標準兼容)
Docker工具
Azure工具堆棧
使用Visual Studio 2017,我開始一個新的ASP.NET Core項目,并檢查Enable Container (Docker) Support的選項。我被提示安裝Docker for Windows,這樣做了之后不久就啟動并運行了一個"Hello world"ASP.NET應用程序。值得注意的是,Docker正在運行一個Debian容器,快速查看PATH環境,現在是Hyper-V,而不是Virtual Box。
Visual Studio 2017在Windows上的Docker上的Linux容器中運行ASP.NET Core
Stack Overflow的首席執行官Joel Spolsky參加了Connect大會。早在九十年代,他的第一份工作是在微軟負責Excel方面的工作。因此,筆者請他比較一下曾經的微軟和今天的微軟有什么不同。
他表示,"我在微軟共事的每個人都有這種態度,我們是巨大的,我們贏了,就算表現大度我們也負擔得起,我們可以幫助Lotus集成1-2-3到Windows并幫助WordPerfect到Windows,與此同時,Excel團隊和Word團隊則正在與他們競爭。"
"今天的微軟已經把這一點帶到了另一個層面,想要成為每個人最喜歡的公司,無論你是誰。開發工具的錢已經轉移到提供云計算服務--這是可計量的,而且無法盜版--現在Visual Studio只是在Azure上獲取東西的一種方式。這使他們處于一個非常舒適的位置,能夠對世界上每個人都友好。
不過Spolsky斷言,許多人仍然警惕微軟,不斷回憶起它是如何阻止瀏覽器的開發,抵制開源或其他各種真實或想象中的罪行。
此外,有了吹噓了一年的一系列技術,微軟平臺開發人員還沒有迎來一個輕松時刻,而忽略了下一個。
該公司對C#和.NET的承諾從來沒有食言,這仍然是真的,雖然它的投資現在更多地集中在跨平臺.NET核心而不是讓只針對Windows的 .NET Framework發展成熟。
今天的微軟正在轉型。跨平臺的過程并不容易。新的.NET核心針對所有的帳戶,但長期開發.NET的開發人員卻由于缺少部件而感到沮喪。 Linux上的SQL Server不如Windows上那么好,并且.NET Stored Procedures到Reporting Services還有差異。Windows上的容器支持剛剛開始。
然而,在目前方向的背后有動力,有些事情很明顯。 Xamarin工具是非常重要的并能夠滿足真正的需要。 無論UWP是否真的追上對公司來說不再是至關重要的了。它讓開源變得有意義,并樂于支持其他人的平臺,只要它能帶來云計算銷售的希望就行。