.NET的一点历史故事:误入歧途,越陷越深
移動計算的時代其實早已有了苗頭,起碼微軟的 Windows CE、諾基亞的 Symbian 都曾經給手機用戶多少帶來了一些便利,黑莓則由于接入了企業郵件等商業應用而日進斗金,甚至 Sun 也給自己的 Java 平臺做了一個 J2ME 標準,試圖用 J2EE 那一套搞法在移動計算平臺分一杯羹。但是2007年1月蘋果發布自己設計的 iPhone 智能手機,并在當年10月啟動應用商店計劃之后,拿手機來處理日常事情才逐漸變為一件既酷又很方便的生活方式。11月,谷歌聯合幾個手機廠商啟動了 Android 手機平臺,則是拉開了智能手機平臺兩強相爭的序幕。
提及 Android 就不能不提到谷歌的幾個聰明選擇。首先,Android 操作系統的源代碼是公開的(但管理方式不同于通常意義上的開源項目),這就讓開發者可以了解它內部的運行機制。其次,應用開發使用開發者眾多的 Java 語言,開發環境是 Eclipse 搭配 Android Development Toolkit,這使得從一開始 Android 平臺就不缺少優秀的開發者。最后,谷歌采用了一個相對開放的生態系統,允許第三方定制,也不排斥第三方商店。所以在很短的時間內,Android 就追上了蘋果 iOS 的步伐,把 J2ME 標準完全替代,這也為日后甲骨文和谷歌的法律糾紛埋下了伏筆。
2008年8月11日,iOS(當時名字還是iPhone OS)開始支持應用商店。10月22日,HTC 發布第一款搭載 Android 的手機 Dream。智能手機之戰正式開鑼。在這個戰場兵戎相見的時候,微軟公司呢?微軟公司居然缺席了,為什么呢?微軟這時候干什么去了?事情還是要翻回2007年9月5號。這天微軟發布了一個名叫 Silverlight 的產品,開始叫板 Adobe 的 Flash。
前面我們已經談到 .NET 這個生態系統的幾個平臺。微軟官方提供了兼顧服務器和桌面的 .NET Framework、配合 Windows CE 移動開發的 .NET Compact Framework、配合單片機嵌入式系統的 .NET Macro Framework,而開源項目 Mono 則提供了 Mac 和 Linux 平臺的 .NET Framework 兼容環境。這里面有一個缺環,就是假如你要開發一個比較復雜的網站應用,總有些功能(比如視頻播放)沒法用 .NET 技術來實現,而需要借由 ActiveX 或者 Flash。所以 .NET 開發團隊通過裁剪 .NET Framework (主要是 CLR、BCL 和 WPF),在短時間內做出來一個能夠像 Flash 一樣運行在瀏覽器中的計算平臺。因為這次不能叫 .NET Browser Framework了,所以起了一個非常奇怪的名字 Silverlight。
和之前的幾個 .NET 子系統不同,Silverlight 是微軟第一個跨平臺的 CLR 實現,比如能夠運行在 Mac 平臺的 Safari 瀏覽器中。而且微軟難得的提供了跨瀏覽器支持,使得 Silverlight 程序能夠在 Firefox 和 Chrome 中運行。因為 WPF 出現之后桌面程序設計進入了一個非常高效的階段,同樣使用 XAML 語言的 Silverlight 也吸引了 WPF 開發者的目光。微軟也和 NBC 電視臺等合作伙伴一起做出了不少視頻媒體方面的應用。當然 Silverlight 技術生不逢時,像 Flash 一樣在 HTML 5 標準逐漸成熟之后到了淘汰邊緣。而且提到淘汰這個詞匯,Flash 畢竟有十幾年的用戶積累在那里,只會慢慢退出。而本來就沒有特別亮點的 Silverlight 就銀光一閃,消失在歷史的長河中。
當然2007年年底之后微軟另外一個大事是重新設計 .NET Framework 的核心部件,全力推動 .NET Framework 4.0 的開發。值得一提的是,或許是由于 Java 開源帶來的壓力,2007年10月3號起微軟采用非開源協議的方式公開了部分 .NET Framework 的參考代碼。Enterprise Libraries、Sandcastle 和 Managed Extension Framework 則在2008年先后以完全開源的方式登陸了 CodePlex。微軟在試圖從 .NET 生態圈的外圍來嘗試了解開源社區的運作方式,直到2009年4月2日正式開源了 ASP.NET MVC 框架,為全面走向開放開源做好了準備。
可惜的是,直到2009年底微軟都沒有能夠在智能手機領域做出自己的平臺和開發技術,白白把這個巨大的新市場拱手讓給了蘋果和谷歌。甚至曾經孱弱的開源項目 Mono 都在這個時候突然彎道超車,走上了一條完全不同的發展道路,最終破繭成蝶。下一章我們就來看看 Mono 項目早期的一些故事。
相關文章:
.NET 的一點歷史往事:和 Java 的恩怨
.NET的一點歷史故事:招兵買馬和聚義山林
.NET的一點歷史故事:擦肩而過的機遇
原文地址:http://weibo.com/ttarticle/p/show?id=2309404102566349825331
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的.NET的一点历史故事:误入歧途,越陷越深的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Entity Framework Cor
- 下一篇: 了解 C# foreach 内部语句和使