Xamarin是无懈可击还是鸡肋?浅谈对Xamarin的学习

微软宣布跨平台已经有几个年头,当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,对于一个企业而言,所有的平台尽可能的用同一门语言开发未必是件坏事,这样可以极大的提高开发人员的易用性,老板也是乐意的,这也许没准是未来企业开发软件的一种趋势。
Xamarin是无懈可击还是鸡肋?浅谈对Xamarin的学习的更多相关文章
- 浅谈我的MongoDB学习(二)
上一篇简单讲了mongodb的安装,mongo的windows服务安装,这样服务器重启windows服务会自动重启mongodb的server,然后我们就可以用客户端去管理数据了.mongodb客户端 ...
- 浅谈我的MongoDB学习(一)
这是第一次写博客,不当之处敬请见谅,最近由于项目需要,对mongodb略有研究,网上也有一些相关资料,下面是我自己摸索的一些东西,希望能跟大家分享一下当然,这也是我自己第一次在项目中使用,若理解有误, ...
- 浅谈Java的主要学习要点_上海尚学堂java培训课程思维导图
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥 ...
- 浅谈:从为什么学习python到如何学好python
虽然目前的编程语言有很多,但是基础语法上的概念,本质上都是相通的.可以做到一通百通.所以没有必要为了学哪门语言纠结太多. python是目前市面上,我个人认为是最简洁&&最优雅& ...
- [2009国家集训队]小Z的袜子(hose) 浅谈莫队
浅谈莫队 推荐学习博客 http://foreseeable97.logdown.com/posts/158522-233333 借用题目: bzoj 2038 2009 国家集训队 小Z的袜子htt ...
- scrapy分布式浅谈+京东示例
scrapy分布式浅谈+京东示例: 学习目标: 分布式概念与使用场景 浅谈去重 浅谈断点续爬 分布式爬虫编写流程 基于scrapy_redis的分布式爬虫(阳关院务与京东图书案例) 环境准备: 下载r ...
- 浅谈配置chrome浏览器允许跨域操作的方法
浅谈配置chrome浏览器允许跨域操作的方法 一:(Lying人生感悟.可忽略) 最近有一天,对着镜子,发现满脸疲惫.脸色蜡黄.头发蓬松.眼神空洞,于是痛诉着说生活的不如意,工作没激情,工资不高,一个 ...
- 浅谈C++三层架构
浅谈C++三层架构 三层架构并不是MVC,MVC是一个很早就有的经典的程序设计模式,M-V-C分为三层,M(Model)-V(View)-C(Control). web开发中的三层架构是指:数据访问层 ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
随机推荐
- Java language
1.Java开发环境: java编译运行过程: 1. 编译期:.java源文件,经过编译,生成.class字节码文件 2. 运行期:JVM加载.class并运行.class - 特点:跨平台.一次编程 ...
- Gradle学习系列之读懂Gradle语法
转载地址: http://www.cnblogs.com/CloudTeng/p/3418072.html Gradle是一种声明式的构建工具.在执行时,Gradle并不会一开始便顺序执行build. ...
- 使用crypt配置Basic Auth登录认证
简介 Basic Auth用于服务端简单的登录认证,通常使用服务器Nginx.Apache本身即可完成.比如我们要限定某个域名或者页面必须输入用户名.密码才能登录,但又不想使用后端开发语言,此时Bas ...
- unity5.5 ugui使用美术字
文件转载自:http://www.jianshu.com/p/a4e6d1ca3ca0 项目需要使用美术字加强战斗效果表现,按以往NGUI的使用经验,这个应该很简单,随便Google一下都有数篇技术博 ...
- 转:Bash Shell常用快捷键
转载:原文出处 移动光标 ctrl+b: 前移一个字符(backward) ctrl+f: 后移一个字符(forward) alt+b: 前移一个单词 alt+f: 后移一个单词 ctrl+a: 移到 ...
- ASP.NET Core 中的 ORM 之 Dapper
目录 Dapper 简介 使用 Dapper 使用 Dapper Contrib 或其他扩展 引入工作单元 Unit of Work 源代码 参考 Dapper 简介 Dapper是.NET的一款轻量 ...
- Tensorflow学习笔记(2):tf.nn.dropout 与 tf.layers.dropout
A quick glance through tensorflow/python/layers/core.py and tensorflow/python/ops/nn_ops.pyreveals t ...
- 深入学习卷积神经网络(CNN)的原理知识
网上关于卷积神经网络的相关知识以及数不胜数,所以本文在学习了前人的博客和知乎,在别人博客的基础上整理的知识点,便于自己理解,以后复习也可以常看看,但是如果侵犯到哪位大神的权利,请联系小编,谢谢.好了下 ...
- MyBatis从入门到放弃五:调用存储过程(SQLServer2012)
前言 如果是相对于复杂的SQL逻辑我们肯定是基于存储过程开发,这篇学习下执行存储过程,调用存储过程如果参数较多我们可以创建parameterMap. 搭建开发环境 开发环境和上篇文章保持相同 创建存储 ...
- kubernetes系列(一)安装和配置
谈到kubernetes(或者说k8s)不得不提到云计算.虚拟化以及容器技术,相关介绍网上一大堆,不再赘述.而kubernetes的出现就是为了高效的管理云端运行的docker容器. 环境 docke ...