Xamarin 读
“ˈzæmərin”,是一个基于开源项目mono的可以使用C#开发的收费的跨平台(iOS、Android、Windows
Phone、Mac)解决方式。


    1.原理
        Xamarin.iOS:
            也就是之前的 MonoTouch(Mono for iOS),使⽤静态编译(Ahead-Of-Time)⽅式将C#代码编译为
ARM⼆进制代码。 
        Xamarin.Android:
            即之前的MonoDroid(Mono for Android) 。是将C# 代码编译成IL封装到MonoVM+JIT.
        
    2.优劣势
        在Xamarin2.0下开发跨平台应用,最多是逻辑层和数据訪问层的代码能够共用,而最花费时间的界面搭建则须要针对不同的平台进行订制。

当时Xamarin的优势是C#开发者不须要再学习java和Objective-C了,缺点是须要了解各个平台界面的API,实际能节省下来的工作量并不多。

        幸运的是Xamarin3.0带来了Xamarin.Forms,界面部分也能共享一套代码了。真正可以达到“write
your code once, and present native UIs on each platform.”(一次编写。在各平台使用原生控件展现)的效果。

这也是Xamarin最吸引我的地方。眼下CSDN为Xamarin在中国大陆的代理,正在开展一些对应的培训。


        当然,有优势肯定也有劣势。眼下Xamarin.Forms的版本号为1.2.2
Prerelease
3 版。bug相当多(但更新较快)。提供的控件不多,最主要的Radio Button和CheckBox没有(官方解释:这两个不是每一个平台都有的控件),须要自己重写Renderer。

在Android平台上,使用Xamarin.Forms开发略微复杂些的应用。启动速度较慢。让人不得不为它设计一个启动界面。还有就是Xamarin的中文文档差点儿没有,当中大部分资料来自台湾。CSDN上的论坛才20条帖子...眼下有问题比較靠谱的解决方法是在它的官方论坛或者加QQ群:385020493提问。


   
    3.开发环境
        Xamarin能够在Windows和Mac上进行开发:
        Windows:    Xamarin Studio 或 Xamarin for Visual Studio(2010 -2013) Plugin(推荐)
                Mac:    Xamarin Studio

    4.技术基础
        C#基础,可以创建WCF、rest服务、掌握C#5.0,.net4.5后async、awaitkeyword。

学过Silverlight或wpf的最好:由于它们布局文件都使用xaml。包含设计模式也是同样的MVVM,了解Binding数据绑定、Command命令、DI依赖注入、DP依赖属性等等内容。

知识结构文件夹:AOT静态编译 相应中文

   5.系统支持
  • Android 4.0 or higher
  • iOS 6.1 or higher
  • Windows Phone 8 (using Visual Studio)


从零開始学Xamarin.Forms(一) 概述的更多相关文章

  1. 从零開始学Xamarin.Forms(二) 环境搭建、创建项目

    一.环境搭建 Windows下环境搭建:     1.下载并安装jdk.Android SDK和NDK.当然还须要 VS2013 update 2(VS2010.VS2012均可)以上. a.  最新 ...

  2. 从零開始学Swift之Hello World进化版

    上节课,也就是昨晚啦,我们学习到从零開始学Swift之Hello World.那一节仅仅有一句代码,大家会认为不够过瘾. 那么这节课,就给大家来多点瘾货吧! 先上图! //var 代表变量的类型, s ...

  3. 关东升的《从零開始学Swift》即将出版

    大家好: 苹果2015WWDC大会公布了Swift2.0,它较之前的版本号Swift1.x有非常大的变化.所以我即将出版<从零開始学Swift><从零開始学Swift>将在&l ...

  4. 《PHP 5.5从零開始学(视频教学版)》内容简单介绍、文件夹

    <PHP 5.5从零開始学(视频教学版)>当当网购买地址: http://product.dangdang.com/23586810.html <PHP 5.5从零開始学(视频教学版 ...

  5. 从零开始学Xamarin.Forms(一) 概述

    原文:从零开始学Xamarin.Forms(一) 概述     Xamarin 读 "ˈzæmərin",是一个基于开源项目mono的能够使用C#开发的收费的跨平台(iOS.And ...

  6. 从零開始学android&lt;数据存储(1)SharedPreferences属性文件.三十五.&gt;

    在android中有五种保存数据的方法.各自是: Shared Preferences Store private primitive data in key-value pairs. 相应属性的键值 ...

  7. 【高德地图API】从零開始学高德JS API(五)路线规划——驾车|公交|步行

    先来看两个问题:路线规划与导航有什么差别?步行导航与驾车导航有什么差别? 回答: 1.路线规划,指的是为用户提供3条路线推荐.[高德]在提供路线规划的时候,会提供用户自己定义路线规划功能,这是别家没有 ...

  8. 第13章、布局Layouts之RelativeLayout相对布局(从零開始学Android)

    RelativeLayout相对布局 RelativeLayout是一种相对布局,控件的位置是依照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最经常使用,也是最灵活的一种布 ...

  9. 从零開始学android&lt;SeekBar滑动组件.二十二.&gt;

    拖动条能够由用户自己进行手工的调节,比如:当用户须要调整播放器音量或者是电影的播放进度时都会使用到拖动条,SeekBar类的定义结构例如以下所看到的: java.lang.Object    ↳ an ...

随机推荐

  1. jieba库词频统计

    一.jieba 库简介 (1) jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组:除此之外,jieba 库还提供了增加自定义中文 ...

  2. maven 在clean package时,出现:找不到符号 [ERROR] 符号: 方法 sqlDdlFilter(java.lang.String) 解决办法

    另一个项目中增加了,sqlDdlFilter 在调用的项目中clean package时,出现 找不到符号[ERROR] 符号: 方法 sqlDdlFilter(java.lang.String) 原 ...

  3. Filter笔记

    1.Filter [1] Filter简介 > Filter翻译为中文是过滤器的意思. > Filter是JavaWeb的三大web组件之一:Servlet.Filter.Listener ...

  4. Postfix邮件服务器

    http://www.postfix.org/INSTALL.html https://www.cnblogs.com/alex-note/p/6840160.html http://linux.vb ...

  5. ubuntu18.04搭建nfs

    1.服务端安装 #apt-get update -y #apt-get install -y nfs-kernel-server #apt-get enable nfs-kernel-server 2 ...

  6. Liang-Barsky直线段裁剪算法

    Liang-Barsky直线段裁剪算法 梁友栋与Barsky提出的裁剪算法以直线的参数方程为基础,把判断直线段与窗口边界求交的 二维裁剪问题转化为求解一组不等式,确定直线段参数的一维裁剪问题.设起点为 ...

  7. elasticsearch 修改磁盘比例限制

    命令为:下面也可以单独进行限制,官网说可以设置具体数值,但是无没成功,有成功的大神可以在下面告诉我一下哈 PUT _cluster/settings{ "persistent": ...

  8. Flask web 开发出现错误:TypeError: Allowed methods have to be iterables of strings, for example: @app.route(..., methods=["POST"])

    没有发现普通都语法错误,然后一一比对官方教程里面的代码,发现是在“@bp.route('/<int:id>/delete', methods=('POST'))”这一行代码里面method ...

  9. HTML基本格式和文本元素(标签)介绍

    <!doctype html>//声明文档类型 <html lang="zh-cn">//文档开始,后面是声明是中文页面的意思,en是英语的意思 <h ...

  10. IDEA 的黄线标注 取消

    用IDEA经常会遇到found duplicate code的问题,下面有黄线标注,严重影响强迫症患者的使用.下面就是如何取消的方法 在设置中把这个勾取消即可1 转载于:  https://blog. ...