微软宣布跨平台已经有几个年头,当C#代码可以在其他平台运行时,我相信对于每个热爱.net的程序猿还是十分欣慰的,最近工作需要在一直研究和学习.net的跨平台开发Xamarin,网上对其优点总结也是一大堆,什么真正的实现跨平台、什么无缝的api集成能力、丰富的UI组件等等,但经过一段时间的研究和学习,发现要学习好.net的跨平台开发Xamarin相关知识,学习成本还是挺高的,特别是对于我这种已经出来工作的人,并不是之前想象的只要会C#,就能简简单单开发出可以在Windows,IOS,Android各个平台运行的APP,目前所谓的.net跨平台开发,只是把所有java(Android)和object c,swift(IOS)替换成了C#的版本,其次把各平台能公用的代码、api都共享。各个平台之间也还是有需要单独维护的部分的。要学习.net的跨平台开发,对于一个合格的.net程序猿来说,首先要学习xaml,其次良好的MVC,MVVM设计模式相关的技术思想也是必不可少的,然后对Android,IOS,Linux相关的运行机制以及基础原理的学习也都是很重要的(想想国内都有Android,IOS专门的程序猿,光这两块的入门学习就可想而知),因此有人说相比较目前国内主流APP——Android,IOS,Windows都由各自的团队开发而言Xamarin其实是个鸡肋,因为对于个人而言它的学习成本并不会太低,而且由于起步较晚,目前国内主流公司APP都是各平台各自团队单独维护,用Xamarin.Froms开发的很少,开发时遇到坑了,学习和讨论的社区相对也会较少,对于企业而言如果企业有能力支持更多的团队、更多的技术各自维护自己平台的APP当然更好。
那是不是就没有学习它的必要了呢?其实我个人还是很喜欢而且也很乐意学习它的。
原因如下:
1,学习它在同类型的.Net程序员中更具有竞争优势。
2,分分钟转型其他技术 (如果真有一天因为公司需要或者其他外部因素影响真需要转为其他语言的开发,如果你之前有学习过Android,IOS,Linux相关的运行机制以及基础原理,那么我想上手另一门语言的开发也会是很容易上手的,毕竟技术其实是相通的)
3,对于一个企业而言,所有的平台尽可能的用同一门语言开发未必是件坏事,这样可以极大的提高开发人员的易用性,老板也是乐意的,这也许没准是未来企业开发软件的一种趋势。