微软企业应用开发三大方向:跨平台、开放/开源与DevOps
軟件和互聯網正在改變傳統企業,軟件的職能逐漸從管理內部員工變成核心的商業競爭能力,在今天這種大環境下,我們應該用的新開發技術和方法。微軟公司全球資深副總裁、開發平臺事業部潘正磊(Julia)認為,把IT托管到云上并不是真正的高效生產力,云計算最主要的是提供各種各樣的服務,為企業創造新的商業價值。也就是說,云平臺需要提供各種易用、強大的工具來支持開發人員實現數字化轉型,不管是認知服務、流媒體服務還是物聯網、大數據的支持。
除了彈性、可擴展的基礎設施云平臺,微軟還從跨平臺、開放/開源與DevOps三個方面為開發者提供開發工具來實現企業的高效生產率?;谶@些經驗和技術,從2012開始到今天Visual Studio 2015年發布之后,微軟的交付速度從三年多到三個月,再到可以三個星期為客戶提供新功能。
跨平臺:Xamarin的整合與開源
在應用高效開發的過程中,要避免iOS版本、Android版本甚至Windows版本的重復性開發,增加代碼共享、避免用不同的編程語言不同的開發環境來編不同的APP是自然的思路。微軟提供了三套解決方案來增加代碼共享。
C++。微軟的Office產品全部是基于C++的代碼共享,如果在iOS或者Android上下載微軟的產品,里面大量的C++代碼是跟Mac和Windows桌面產品共享的。
針對JavaScript的Apache Cordova架構,在Visual Studio 2015里做了很多支持它的開發工具。
收購了Xamarin提供給所有Visual Studio開發人員使用,沒有任何新增費用,包括在Mac上提供這項支持,此外還將Xamarin的運行時全部開源。
潘正磊介紹,基于Xamarin,開發人員可以用C#編程語言構建完全原生的iOS和Android的APP——用Apache Cordova可能還會擔心性能問題,但Xamarin編的完全是原生的APP,沒有任何性能和執行的問題,而且Xamarin還可以極大的支持代碼共享在iOS和Android上。
Xamarin還有一個非常酷的功能:Xamarin Test Cloud,有幾百種不同的設備在后端,通過云服務形式提供給開發人員做不同設備的匹配測試,而且有一個非常炫的界面。Xamarin對企業用戶來說最大的好處是能夠極大地利用現有人才,而且能夠共享前后端代碼,為企業提供移動的服務編程。
互聯網醫療的創業公司微診集智的宋劍飛介紹,其微診App按照國內主流設計,有類似微信的聊天、類似微博的回復評論,基于Xamarin開發的APP與原生APP相比流暢度和使用體都是一模一樣的。
Xamarin可以在兩個層面做代碼復用呢,第一是APP的網絡操作和和一些計算邏輯可以跨IOS和Android的,因為都是C#代碼,只是UI層有區別,要按照具體的SDK來做開發。第二是前后端也可以復用。
MVC里有Model層,APP也有Model層,因為需要數據傳輸模式,兩個對象是一樣的,采用Xamarin技術可以做到至少Model層在APP復用,跟后端代碼也可以復用。比如校驗,APP和服務器校驗兩次,要是原生開發APP可能需要用Java寫一套,Objective-C寫一套,C#寫一套用Xamarin就可以跨過這三套。首先對C#的開發人員我們可以用最熟悉的C#工具做對象處理,非常快捷。其次是C#5.0的Async語法,也極大地提升生產力,APP是單線程的,必須不斷做線程交互,有了Async之后,我們可以以串行方式做并行的事。
開發iOS需要在Mac上,有兩種做法,比較常見的是在Mac上開發,里面跑一個Windows虛擬機,我認為效率不高;我是在Windows的PC上跑一個Mac的虛擬機,既可以保證我在Windows下面開發Android調試外圍界面,還可以開發iOS。
潘正磊稱,在收購宣布之后,Xamarin用戶可以不用付費完全使用,Xamarin的日用戶量馬上就上漲3~4倍。微軟認為,Xamarin的價格是最大的問題之一。
Xamarin最初并沒有在中國推廣,中國客戶就算想買Xamarin也不知道哪里去刷信用卡,后來才有了CSDN軟件商城與Xamarin的合作。中國作為Visual Studio是一個非常大的用戶市場,潘正磊表示,微軟也在跟Xamarin團隊溝通,希望很快可以做好中文版本,推廣給中國的開發者。
CSDN軟件商城是目前Xamarin在中國的唯一合作伙伴,在三年的時間里已經為近兩百家移動開發企業提供技術和培訓服務。同時,CSDN也是微軟MSDN產品在中國戰略合作伙伴,為企業提供開發工具的優惠解決方案。CSDN軟件商城旨在為企業提供高生產力的開發技術與工具,成為開發團隊在技術合作上的最佳伙伴。更多產品信息請訪問CSDN軟件商城。
開放與開源:.Net Core技術
微軟2014年11月開源了.NET技術,2015年11月發布了.NET Core第一個版本。潘正磊表示,.NET是微軟14年前推出的為技術,在新的“移動為先,云為先”的大環境下,原有的.NET已經不適合在云端運行大量并發式服務,微軟就把最核心的運行時.NET Core拿出來做技術更新。.NET Core的好處是非常小,只包括開發者需要的Class Library,非常模塊化。
這套技術已經在Windows里第一次發布,會逐漸把它搬到服務端來。這上面微軟會架構Base Class Library,一套統一內庫,這就為前后端共享提供了技術支持,這會在2016年下半年推出。
網易游戲工程師周峰介紹了采用.Net Core開發《絕代雙驕》游戲后端的經驗。
前端用的是Unity引擎,非常自然的想法就是在后端也用C#來寫,因為網易后端一直用Linux作為操作平臺,積累了大量運維經驗和開發經驗,像監控、容災、機房各方面配套都在Linux上,所以非常希望后端能夠享受Linux成熟生態系統的便利。采用.Net Core之后,可以享受前端和后端語言一致性的好處,有非常多的開發語言的重用,特別是游戲行業有非常多驗證邏輯需要在前端和后端一起跑,比如一場核心戰斗。游戲行業會有獨特的挑戰,像外掛,需要在前端后端做非常強的驗證,這些驗證的邏輯如果分兩套語言來寫的話,會帶來非常大的問題,還有非?,F實的成本和進度的考量。另一方面的好處是人才培養,統一開發語言和編程環境之后,我們可以真正聚焦問題的核心,思考用戶情景和商業價值,而不是思考優先隊列在不同的平臺上有幾種寫法,用不同的編程語言如何實現,這是更深遠的好處。
很多游戲特別是手機弱視交換游戲后端都可以抽象地稱為Web式架構,這是.Net Core特別得心應手的。我們在做后端架構時最重要的有兩點,一是單臺機器的性能要特別好,二是可延展性和擴展性要特別好,所有的邏輯都要做到平行擴展,做到備份與容災,我們的邏輯縱向切分為邏輯服務器和共享的團隊服務器。我們曾經碰到一個技術問題:在Linux上總是會有大量第三方依賴,微軟技術和這些第三方生態能否夠和諧融合在一起?我們花了幾個月的時間和微軟工程師緊密合作,迅速地把重依賴庫結合到了產品中。
我們完整的架構和邏輯都在Linux上,能夠為游戲前端豐富的展現提供堅實的后臺支撐。這里也分享一些性能數據,做后臺一方面服務是要能夠平行擴展,能夠應對突發的;另外一個關鍵的因素是投資回報率:用多少服務器來承載用戶量,對游戲公司特別重要。和以前用Java和典型的服務器架構做橫向比較,.Net Core在典型的用戶情景上對我們的支持非常有力。業內典型手游服務器至少要做到一萬人同服,上千人同時響應,無論是測試環境還是生產環境.Net Core都能很好地解決問題,還有獨特的優勢:例如性能非常穩定。當我們進行硬件更新換代和升級時,.Net Core帶來的邊際效應更好,這是合作中令人欣喜的地方。原來我們標準服務器是兩套,用了.Net Core之后非常有可能把兩臺服務器變成一臺,一臺服務器就可以支撐一個大區的游戲玩家。
潘正磊談到開源的體會時表示:微軟所有的代碼開源之后,開發者可以在自己使用場景中發現問題,然后發現一些優化的途徑,然后把優化的代碼直接給微軟了,所以微軟在開源過程中能夠非常好地跟社區、跟開發人員、使用人員一起把產品做的最好,這也是沒有開源之前比較難想象的一件事情。
DevOps:核心是四個持續
DevOps中文譯為開發運維一體化,但潘正磊認為DevOps最核心的是四個持續:持續開發、持續交付、持續監控和持續學習。持續開發,希望每一次開發都是高質量的,很多功能三個星期迭代之后需要交付,這種持續發布是運維的一部分;通過持續監控,收集到及時的反饋,把遇到的問題非??斓亟鉀Q。持續開發、交付、監控和學習的一個流程,不管是開發內部服務,還是云服務都是適用的。
微軟支持DevOps開發模式的是SaaS的服務Visual Studio Team Services。微軟內部,無論是服務器產品還是網絡服務,都是用三個星期迭代的。Visual Studio IDE有一個DevOps,核心是一個持續開發、持續交付、持續監控和持續學習的閉環。而2012或者之前的版本沒有這種能力,只能給開發人員一個全新的完整版本,沒辦法進行功能模塊的更新。
網上服務每三個星期發布一次,最新功能三個星期之后會發布在Visual Studio上面,我們內部的也是三個星期一次內部的發布,我們的工程師會實時使用上一個迭代的產品來開發下一個迭代,每六個星期就會把我們最新的產品作為一個技術預覽版的形式放在外面,給所有用戶下載來收集及時的反饋這些都是為我們的持續交互來做延伸。通過持續監控,收集到及時的反饋把遇到的問題非??斓亟鉀Q,這就是我們DevOps的體驗。
潘正磊表示,很多DevOps在Visual Studio 2015最新版本中都得到了體現,這些功能和工具可以為不同企業做定制。工具是輔助開發團隊達到所需效果,要知道自己的方法論是什么。TFS 2015在敏捷的項目規劃、統一的版本管理、測試,質量管理、自動化部署等方面都有非常多新功能,為不同的工作方式打造了基礎。微軟在Microsoft Azure上也部署了Visual Studio Team Services,對不需要長久維持私有TFS Server的企業也是不錯的選擇。
原文地址:http://geek.csdn.net/news/detail/77485
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的微软企业应用开发三大方向:跨平台、开放/开源与DevOps的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员求职面试三部曲之三:快速适应新的工
- 下一篇: dotnetConf 2016 线上虚拟