2011年.NET社區回顧:韜光養晦的一年
2011年對于 .NET 平臺和微軟技術而言,可以算是稍顯平靜的一年,當然也還是有少許可圈可點的事件,值得我們回顧一下。不過,在平靜的 2011 年里,其實發布了很多 2012 即將發布的新產品新技術的測試版或預覽版。所以說本篇文章既是一個回顧也是一個展望。
Windows Phone 7 趨于成熟
雖然微軟于 2010 年就推出了 Windows Phone 7,但是直到 2011 年如期發布了 Mango 更新后,Windows Phone 7 的發展和應用開發才算進入正軌。尤其 Nokia 與微軟的聯盟,有些人不看好,有些人認為這會帶來智能手機的三足鼎立。
Mango 針對最終用戶和開發者帶來了幾個方面的重大更新:支持包括中文簡體在內更多語言且內置了多語言輸入法,更快的應用程序切換,支持多任務系統,瀏覽器使用 IE9 內核,支持后臺任務的開發,背景音樂的支持,可創建多個 Live Tiles,本地數據庫的支持等等。需要注意的一點是,Mango 更新對于操作系統而言版本號是7.5,而 SDK 的版本號7.1。
由于 Mango 帶來了以上如此巨大的更新,促使很多廠商尤其國內的廠商開始推出 WP7 版本的應用程序。有了多語言的支持,中文軟件不用再集成一個第三方的輸入法;有了更快的應用程序切換和多任務支持,開發應用可以更加關注于應用功能本身,不用花太多精力去處理墓碑機制;有了多個 Live Tiles 和后臺任務的支持,可以開發一款天氣應用,在開始界面顯示多個城市天氣信息的 Live Tiles,并在后臺任務中定時更新數據息;由于瀏覽器使用了 IE9 內核,讓 HTML5 的應用可以無縫地移植到 WP7 上,也可以自然而然地支持類似 PhoneGap 這樣的移動 Web 開發框架;有了背景音樂的支持,現在我們也用到體驗更佳的豆瓣 FM 或 AIRPLAY 精選。
所以,2012年 WP7 的開發會獲得開發社區的更多關注,也會催生更多優秀 APP 的出現。
基礎框架的不斷增強
.NET 框架本身的大版本發布基本和開發工具保持一致,不過微軟也采用了另外一種更靈活的模式來增強 .NET 框架的功能——即針對 .NET 各個組成部分進行快速增量發布。
微軟于 2011 年初,正式發布了 ASP.NET MVC 3,這次的發布帶來很多重要改變:使用 Razor 作為默認的模板引擎,增強了 JavaScript 和 jQuery 的支持,強大的依賴注入功能等等。在發布 ASP.NET MVC 3 的同時,微軟也一起發布了很多用于 Web 開發的關聯產品:IIS Express 7.5,SQL Server Compact Edition 4,Web Deploy,Web Farm Framework 2.0,Orchard 1.0(一個基于 ASP.NET MVC 3 的 CMS),WebMatrix 1.0(支持 ASP.NET MVC 3 的輕量級 Web 開發 IDE)。以及 NuGet——VS 中強大的依賴包管理工具。需要更多的信息,可以參看 Scott Guthrie 的文章。
ADO.NET Entity Framework 在 2011 年分別發布了三次增量版本,4月份發布的4.1,后來的4.1 Update,最后是 11 月發布的4.2。在 EF 4.1 和4.2中最大的增強莫過于支持 Code-First 特性和 DbContext API。
隨著 .NET 的子集和分化越來越多,微軟也意識到開發跨多個子集的類庫所帶來的麻煩,于是發布了被稱為“Portable Library Tools”的工具,可以幫助大家開發針對多個平臺的類庫(可移植庫),支持的平臺有:.NET Framework 4,Silverlight,Windows Phone 7,Xbox 360,甚至 Mono。
另外,醞釀兩年之后,微軟發布了 Reactive Extensions(Rx)庫的1. 0 版。Rx 把事件驅動 UI 與 LINQ、并發性和異步調用結合起來。更多信息參見:Rx 1.0 解決了異步數據訪問的問題。同時,微軟還發布了 Ix(Interactive Extensions,交互擴展),一組基于 Rx 技術擴展 LINQ 查詢操作符的類庫。
當然,還有一個不得不說的東西就是 Silverlight。微軟在 2011 年底低調發布了 Silverlight 5,Silverlight 5 提供了許多新的功能,如:支持H.264,更強大的內容保護技術,GPU 解碼支持,UI 處理的性能提升,脫離瀏覽器運行特性的加強,以及針對開發體驗的諸多改善。但是由于微軟已經完全擁抱 HTML5,Silverlight 5 就顯得有點尷尬。不過 Silverlight 也不是完全無用武之地,作為一個輕量級的客戶端開發框架已經完全能夠勝任,而且 Silverlight 作為 Windows Phone 7 的開發技術之一將會長期存在。
最后,當然需要談到 .NET 框架本身的發展。在 2011 年 7 月微軟發布了.NET Framework 4.0 的更新,這個版本包含了眾多補丁和特性,包括 HTML5 和對移植庫的支持,有些內容之前也曾單獨發布過。除此,微軟還發布了 .NET Framework 4.5 的開發者預覽版,其中展示了很多新特性。
操作系統、服務器和云服務
早在 2010 年,微軟就展示了下一代操作系統 Windows 8 的相關信息;但直到去年的 9 月份,微軟才在 BUILD 會議上向開發者提供了開發者預覽版,讓眾多開發者一窺 Windows 8 帶來的新特性。雖然對于普通消費者而言,Windows 8 最大的改變在于支持 ARM 處理器,這為更加節能的 Windows 8 平板電腦做好了準備。而對于開發者而言,最需要關心的莫過于 Windows 8 應用模型、開發平臺和工具。其中 WinRT(Windows Runtime)是微軟至 Win32 以來對 Windows 的 API 進行最重大的更新,可以說是 Win32面向對象的替代品,當然也支持 C# 或 VB 調用。另外,Windows 8 也帶來了類似于 Windows Phone 7 中的 Metro UI,并為 Metro UI 的程序提供了 Windows Store。開發人員可以選擇 HTML5/JavaScript 的組合,也可以選擇 XAML/C++、C#、VB 的組合開發 Metro UI 應用;對于游戲開發,要充分利用硬件性能的話只能選用C++/DirectX 11.1,休閑類游戲也可以使用 XAML 或 HTML5 來開發界面。
SQL Server 在 2011 也發布了最新版本的預覽版,開發代號名為“Denali”,正式發布的時候會稱之為 SQL Server 2012,除了更加關注 BI 和大數據外,2012作為一個更大的筐也是為了理順 2008 R2 一系列新功能。
微軟的云平臺 Windows Azure 在 2011 年也進行了很多更新,最為重要的也許就是更加開放,比如支持 Node.js,支持 Apache Hadoop,Windows Azure SDK for Java 的支持,Windows Azure Plugin for Eclipse 的更新,MongoDB 的支持,Solr/Lucene 的支持,Memcached 的支持等。
Mono 的重生與開源
Mono 在 2011 遭遇了重大變故,由于 Novell 被 Attachmate 接管,解散了整個 Mono 團隊,但是 Miguel de Icaza 作為 Mono 之父緊接著創立了 Xamarin 公司,獲得了 Mono 相關的知識產權,實現了 Mono 的重生。更多信息可以參見:2011年 Mono 發展歷程。目前在移動平臺上 Mono 作為一個重要的跨平臺技術,已經得到了大量的關注和使用。
雖然 IronPython 的創造者 Jimmy 于 2010 年就離開了微軟,但是在 2011 中,IronPython 還是繼續獲得了發展。2011年 4 月,IronPython 完整實現了 Python 2.7 的功能。另外微軟還發布了 Python Tools for Visual Studio (PTVS)開源項目,可以在 Visual Studio 中編輯 Python 代碼,并支持 CPython、IronPython、Jython 和 PyPy 這四種主要的解釋器,還支持 REPL,HPC,NumPy 和 SciPy 程序庫等高級功能。
開發工具
微軟于 2011 年春天正式發布了 Visual Studio 2010 的 SP1,除了修正部分錯誤、優化性能外,微軟聽取了社區的反饋,提供了傳統模式的幫助文檔查看器。鑒于微軟對 HTML5 采取積極的態度,那么 Visual Studio 為 HTML5 提供更好的支持是理所當然的了。
在 2011 年,微軟針對開發工具的另外一個大動作,就是正式發布 Visual Studio LightSwitch 2011。其提供了一款價格相對低廉,功能靈活的 RAD(快速應用程序開發)工具,給那些只進行業務應用開發的企業和水平相對初級的開發人員甚至非開發人員使用,讓他們能夠以最簡單的方式快速開發出可以運行于桌面、Web 和云中的業務應用程序。同時,Visual Studio LightSwitch 也提供編碼開發的方式,讓有編碼能力的開發人員來增強和擴展 LightSwitch 應用的功能,比如可以通過擴展支持 Office 的使用,或者報表工具。
當然,微軟 2011 年發布的輕量級 IDE 還有上面提到的 WebMatrix。它是一個面向學生、臨時用戶和開發小型站點的開發人員可以使用的快速 Web 應用開發工具,除了支持 ASP.NET 外,還支持 PHP。
最后,Visual Studio 2012 的開發者預覽版也同 Windows 8 開發者預覽版一起發布,不過這個還是非常初級的預覽版,很多新功能尚未展示出來。
NUI 新機遇
微軟在 NUI(自然用戶界面)上多年的研究,終于在 2010 年發布的 Kinect for XBox 360 得以體現。Kinect 提供了面部識別,骨骼追蹤,動作識別,語言識別等功能,讓你除了通過鼠標鍵盤、觸摸板、游戲控制器等輸入設備,還可以通過動作和語音來和電腦交互。 Kinect 一開始展示給世人的僅僅是游戲機的一個附件,讓大家可以在 XBox 360 上可以玩體感游戲。然而,微軟對于 Kinect 的期望不僅限于此,而是打算以 Kinect 作為打開 NUI 應用和開發的新里程。所以,微軟在 2011 年發布了 Kinect for Windows SDK 的兩個測試版本,并按照計劃于 2012 年 2 月發布 Kinect for Windows SDK 正式版,也是自然而然的事情了。在 Kinect for Windows 的宣傳視頻中,我們可以看到,Kinect 除了在娛樂方面以外,在教育、醫療、公共安全等方面都大有用武之地。關于 Kinect for Windows 的演示可見:演示1,演示2,演示3。
隨著 Kinect 的推出,以及 Siri 的火熱,運用 NUI 技術的應用將會是未來開發的一個熱點。