【前言】
2016年5月11日,我在新浪微博上留言「不是我不明白,這世界變化快啊!坐在微軟的辦公室裡研究了一宿Ubuntu Linux,五年前想都不敢想」,並附上了一張Ubuntu gcc編譯開放原始碼專案時的截圖。是啊,這個世界變化真是太快了!別說五年前,就是三年前,一直從事微軟技術路線的我也沒有想過未來將要在Linux上部署我的應用。
微軟公司在新任CEO的帶領下開始踏上了新的征程,迅速地開始向開放原始碼領域轉型。公司向開放原始碼領域轉型的第一個動作就令人矚目,微軟首席執行官Satya Nadella在2014年10月直接對媒體喊出了"Microsoft Loves Linux"!緊接著,微軟在2014年年底宣佈.NET Core要支援跨平台,作業系統囊括了Linux、OS X甚至FreeBSD,並且將.NET Core的程式放到了Github上。然後,微軟又推出了廣受好評的輕量級跨平台的IDE:Visual Studio Code。至今開放原始碼界已經給Visual Studio Code貢獻了上千個擴充外掛程式。進一步,微軟宣佈SQL Server將在2017年正式支援Linux,並且透過收購Xamarin公司一舉收攬了Gnome和Mono專案的創始人Miguel de Icaza這種開放原始碼界明星等級的人物進入公司……。
微軟公司目前已經和開放原始碼界展開了緊密的合作,從雲端大數據平台到行動端開發,在微軟的產品中你都可以看到世界著名開放原始碼軟體基金會Apache的身影。現在再討論「要不要開放原始碼?要不要跨平台?」已經毫無意義了。微軟的工程師現在只關心一個專案或產品的哪部分要開放原始碼?要支援幾種作業系統平台?
為什麼要寫這樣一本書?這是一個好問題!經過這三年微軟向開放原始碼和跨平台領域的轉變,微軟已經在開放原始碼和跨平台領域建置出了一套自己的技術系統。從伺服器端的.NET Core、ASP.NET和Web API,到Web 端的TypeScript指令碼語言,再到行動端的Apache Cordova和Xamarin,微軟已經可以支援開發者使用完全開放原始碼和跨平台的技術建置自己的應用。再配合免費的Visual Studio Community版本以及支援Git版本控制的Visual Studio Online,開發者可以不花一分錢就可以在微軟的平台上實現以開放原始碼專案為基礎的應用程式生命週期管理。微軟現在的開放原始碼技術系統架構可以幫助創業者和開發人員大幅降低創業的門檻和成本,迅速地將自己的創新想法變成現實。
作者撰寫這本書,主要是為了透過一個非常簡單的電子商務專案,將目前微軟開放原始碼跨平台的技術系統結構串聯起來,幫助創業者和開發人員了解和掌握如何使用微軟的開放原始碼跨平台技術來迅速建置自己的應用。然後啟用微軟雲Azure的力量,快速部署和整合,迅速地將自己的技術產品和想法推廣到每個使用者手中。
本書不是一本單獨說明某個微軟開放原始碼技術的圖書。恰恰相反,本書是把微軟開發工具和開發服務(Visual Studio 2015、Visual Studio Online),微軟開放原始碼開發技術(.NET Core1.0、Apache Cordova、Xamarin)和微軟雲(Azure)等各種相關技術串聯起來的一本書。透過本書讀者可以了解到如何利用這些開放原始碼、免費的工具和技術建置自己的應用。
本書的程式全部開放原始碼,讀者有興趣可造訪https://github.com/micli/MuscleFellow 取得本書相關的原始程式碼。同時讀者也可以透過造訪http://musclefellow.chiancloudapp.cn來體驗已經部署好的網站和Web API。
本書的創作始於2016 年1 月。期間,.NET Core 從beta 8 演進到1.0 RTM。種種變化也給作者寫作帶來相當大的痛苦,很多工作在每次.NET Core 新版本發佈之後都要重新調整,很多章節的內容也因此全部故障而永遠無法與讀者見面。
如何高效率地閱讀本書
對於已經非常熟悉微軟戰略的讀者,可以直接從第3章開始閱讀。對於雲端運算和微軟戰略不是很熟悉的讀者,建議從頭開始閱讀。
從本書第5章開始,將有關開發和程式。建議讀者從Github上下載程式,再與本書內容對照著學習和閱讀。
本書適合哪些讀者
本書適合那些對使用微軟技術建置應用以及對微軟雲端平台Azure部署應用有興趣的人員,也適用於對開放原始碼技術有興趣的讀者。同時,對有志於網際網路創業,尤其是期望快速架設應用的創業者極具參考價值。
致謝
首先,我要感謝我的家人,尤其是我的女兒。在女兒需要陪伴成長的年紀,我佔用了大量本屬於她的時間去寫作。尤其是連續寫作兩本書的情況下,使得我很長一段時間都沒有好好地陪她。我對我的女兒充滿了愧疚。此外,我也非常感謝我內心深愛的那個人。
其次,我要感謝我的同事劉穎老師和清華大學出版社的盛東亮編輯。本書的成書和你們的鼓勵和支援密不可分的。
最後,我還想感謝胡德民(Peter Hu)和我的老闆趙立威。在最近一年的時間裡,胡德民幫我安排了很多與微軟開放原始碼、跨平台相關的技術演講,使我有機會全方面地接觸微軟相關的開放原始碼技術,尤其是Xamarin。同時,我的老闆趙立威也非常支援我的寫作,在寫作過程中給予我很大的鼓勵和支援。
作者聯繫方式
由於作者能力有限,書中難免會有疏失之處,請讀者多多諒解也請不吝賜教。
電子郵寄地址:mic_lee2000@foxmail.com
繁體中文版說明
本書中所有程式碼均托管於github,不時會有勘誤及更動,為保留全書程式碼的完整性,本書中有關程式操作的介面及程式碼執行結果均保留簡體中文圖例,請讀者自行對照書中文字。