VS會不會成為移動開發首選?C#會不會崛起?

新聞說VS可以通吃三大平台,是不是意味著開發移動應用不需要用MAC機,或者說MAC系統了?


其實Delphi早就出了個FireMonkey通吃三大平台。可惜我至今沒見別人用過。


Xamarin這個產品已經過了臨界動量了,完全可以用來開發商業產品


Microsoft 做成 Sun 那樣的時候,VS 就通吃八大平台了。


VS最終通吃三大平台,是微軟做出的妥協,也是去Windows中心化的結果。C#和.NET作為一門優秀的編程語言和一套強悍的編程框架,本來就不應該讓Windows平台獨享。

然而,你永遠無法用跨平台的生產工具製作出能和Native媲美的應用,因為每個操作系統都有自己的設計語言、編程框架和生態系統,跨平台則將這些個性元素全部抽象出去了。使用VS能開發Android應用甚至iOS應用沒錯,Android還好說,谷歌並沒有從生產到發布把控制權牢牢的攥在手中,而做iOS開發,開發者證書、模擬器環境、Debug信息、應用分發、針對硬體的性能優化以及VS編譯出來的機器碼效率如何都是個問題。哪天VS真的做大做強,蘋果一個不願意,就能從任意一個環節斷開整個開發鏈條,到時候就哭去吧。看看谷歌是如何封殺WinPhone版YouTube的就知道了。

C#會不會崛起我不知道,因為題主問的「崛起」根本無法定義,我只知道C#是一門易學易用、開發效率唯快不破的好語言,而在.NET開源之後將有更多的編程愛好者去用它。而VS是個好IDE,我看好它能部分取代Eclipse和Xcode,但真正用作Android和iOS開發時,至少需要一台Native機器(原生Mac的系統,裝有Xcode,獲取有開發者證書)的配合。


神馬叫C Sharp會不會崛起……


跨平台的框架戰勝平台Native的API幾乎是不可能的,除非這個平台背後的支持公司太弱,Apple和Google怎麼看也不像好惹的。

跨平台的框架設計目標也從來不是在任何平台都做到最強,而是降低多平台的開發成本,目標客戶通常不是通用軟體和系統開發商,而是專用軟體、企業內部工具或者是一些比較小眾的產品。

在PC時代,Qt算是跨平台領域做到最強了,但是和Cocoa、WPF比還是有差距的。

我覺得開發iOS App必須用Mac是個不錯的filter,連一套Mac+iPhone都買不起的就不要去給App Store添亂了,人肉審核每個App,工作量很大的。


怎麼這麼多文不對題的提問?問題的內容和標題有任何聯繫嗎?

這就是個站隊問題,提出來有意思么?開發工具的選擇,在每個項目,甚至在每個模塊都可以不同。在VS里寫代碼eclipse里重構很正常,沒有人規定你開發的時候必須只用一種開發工具或者語言。

是否有人會用VS作為移動開發首選?肯定會。

是否所有人都會用VS作為移動開發首選?肯定不會。

多少人會用VS作為移動開發首選?去印個幾百萬份調查表再說。

怎麼MAC的問題來亂入了?這個蘋果的限制從來就沒改過好么?微軟做了什麼和蘋果規定你能不能做什麼有什麼關係?

PS 就算VS成功也不意味著C#成功啊,還有各大平台都支持的C++呢。


我個人是蠻看好xamarin的~

從語言層面來看,c#本來就比objc跟java好。

說objc好的人可以看看swift。iOS平台比較特殊,可以先不討論。但我們能不能把c#或者說xamarin想像為jave的「swift」?

純粹做安卓開發用xamarin也是挺好的選擇。

xamarin看上去很美,就是缺乏重量級的應用案例。看看微軟要不要自己搞些出來吧;在此之前,互聯網創業企業考慮用它的風險頗高。

個人開發者,特別是接外包賺外快或者說做企業應用,我是覺得xamarin很好。

PS:xamarin編譯iOS應用的時候,也是需要有mac系統的。


看到有人提xamarin forms,過來說下...

千萬不要用來做商業開發,除非你只使用他提供的控制項,簡單的頁面切換,不複雜的特效。如果不是,那幾乎是個噩夢。XF現在別看版本好到1.3了其實還有很多不成熟的地方,BUG不少,性能也不行。由於XF renderer這個中間層存在,而且他們還不開源,自定義的UI什麼的很多時候都是在摸著石頭過河,有的時候真是令人抓狂。

JAR binding部分也有bug似乎,我用新版本的就提示錯誤...


你以為我是因為Windows不能編iOS而選的Mac OS 么?


題主先分清IDE、語言、平台這幾個概念先。

Xamarin,有自己的IDE可供選用,跨平台的。當然我更喜歡用VS,因為有各種好用的插件,只不過前一陣stable也出bug,一調試就各種IsBusy然後卡住了,要摔鍵盤才能解決。

Xamarin,也可以用F#等語言,更加高大上。

buildiOS的app也是要Mac的。

Xamarin還是有很多路走,本身就各種bug。

本來美好的願望就是做到代碼級的跨平台,一套PCL代碼,安卓、iOS到處運行。但是現在還是一套代碼,到處fix啊。想想也是,Google和Apple兩條船中間搭了個木板,就說兩家一條船了,這兩條船深淺大小還不一樣,能不晃么。


下個Xamarin體驗一下唄。開發可以在Windows,但是iOS app一定只有MAC 才能Build。這是一個license的問題,就算是MAC虛擬機build也不符合。


說道跨平台,很多人都誤以為.net的目的是在所有的平台上提供完全一致的API——當然這是不可能的,到時候會有很多平台相關的、不能跨平台用的API pack (windows的一些pack已經出現了好多年了),給你們解決特殊的問題,然後用MSBuild的奇技淫巧在編譯不同平台的exe的時候鏈接到不同的文件就可以了,就如同我們在C++一如既往的那麼做一樣。

本來要在不同的平台上呈現完全一樣的GUI,就不現實。


微軟win平台現在鼓吹javascript


我用過xamarin開發ios應用,給我的感覺,就是對於簡單應用,xamarin真tm的快。當時連學帶開發,我只用了一個星期就把一個windows phone項目移植到ios上了,業務邏輯部分99%的代碼都可以共享。

當然,我的項目只是一個比較簡單的應用,從界面到業務邏輯都在xamarin里搞定。大型項目的話我更願意用objc來寫ui,用c#來寫業務邏輯。但是,目前的xamarin,還無法做到。xamarin編譯的類庫原生的objc無法調用,但反過來卻是可以的。也就是說,你只能在objc和c#之間2選1。


開發安卓還是Android studio吧......

其實你們有沒有考慮過一個問題。VS企業版多少錢?就算VS開發Android的各方面水平與Android studio持平公司也要考慮考慮要不要花錢買。


看了樓上大神們的回答,我發現我還是老老實實用java寫安卓吧


要崛起早就崛起了→_→


蘋果的規定是你要發行一個 iOS 應用必須在 Mac OS X 上簽名,想在網上下個盜版 VS 寫 iOS 應用這種事的話還是洗洗睡吧


Xamarin已經完全免費,很多公司都已經用 Xamarin來開發商業產品了,就是用C#同時寫iOS和Android的app


推薦閱讀:

舊的 iOS 應用該如何適配 iOS 7?
App 的頻繁升級,會讓你覺得厭煩嗎?
在Unity3D的Asset Store中賣插件有什麼值得分享的經驗?
零基礎初學者如何學習製作APP?

TAG:iOS開發 | Android開發 | MicrosoftVisualStudio | WindowsPhone開發 |