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. JavaSE 集合类TreeSet存储自定义对象

    文章目录 一.自动排序功能测试 二.对自定义类的自动排序 一.自动排序功能测试 public class TreeSetDemo { public static void main(String ar ...

  2. Gitlab使用时的一些注意事项

    1 gitlab-runner 不选中,在commit没有tab的时候,runner不会进行运行 2 在新安装的gitlab的环境上更改@localhost为远程地址 2.1  vim /opt/gi ...

  3. JupyterLab绘制:柱状图,饼状图,直方图,散点图,折线图

    JupyterLab绘图 喜欢python的同学,可以到 https://v3u.cn/(刘悦的技术博客) 里面去看看,爬虫,数据库,flask,Django,机器学习,前端知识点,JavaScrip ...

  4. 第八周助教工作总结——NWNU李泓毅

    1.助教博客链接: https://www.cnblogs.com/NWNU-LHY/ 2.作业要求博客链接: http://www.cnblogs.com/nwnu-daizh/p/10687492 ...

  5. P3805 【模板】manacher算法

    #include <bits/stdc++.h> #define up(i,l,r) for(register int i = (l);i <= (r); i++) #define ...

  6. (30)3 ways to make better decisions — by thinking like a computer

    https://www.ted.com/talks/tom_griffiths_3_ways_to_make_better_decisions_by_thinking_like_a_computer0 ...

  7. 一个简单的TensorFlow可视化MNIST数据集识别程序

    下面是TensorFlow可视化MNIST数据集识别程序,可视化内容是,TensorFlow计算图,表(loss, 直方图, 标准差(stddev)) # -*- coding: utf-8 -*- ...

  8. Windows 注册表 16进制时间转换( Convert Reg_binary Time to a Datetime )

    背景: Windows注册表中,存在大量16进制的时间,以 reg_binary存储在注册表中. 例如: 0D 6C A4 4B 37 C5 CE 01 这种值日常报表中需要转换为适合人阅读的格式,实 ...

  9. svn提交出现错误 svn: Working copy 'D:\...'locked.

    更新svn内容时出现如下的错误: svn: Working copy 'D:\tools\Workspaces\EclipseForNewSTLJ\javashop\b2c\src\main\weba ...

  10. [转]Comparing sFlow and NetFlow in a vSwitch

    As virtualization shifts the network edge from top of rack switches to software virtual switches run ...