Create Native iOS, Android,
Mac and Windows apps in C#.

官方网站:http://xamarin.com/

使用武器

Run a C# app, get a C# shirt. Get yours now at xamarin.com/sharp-shirt

Xamarin 是由早期的Mono项目演变而来,原本是在Linux上执行C#程序的一个开放原始码项目。后来陆续发表支持iOS的Mono Touch framework以及Mono For Android Framework。因此它在市场上并不是一个新的产品。2011年,原本在Novell的Mono项目团队独立成立一家公司,正式将名称改为Xamarin。

Xamarin是一个行动App开发平台,提供跨平台开发能力,开发人员透过Xamarin开发工具与程序语言,即可开发出iOS、Android 与Windows 等平台的原生(Native) App 应用程序,不须个别使用各平台的开发工具与程序语言,不只是「write-once, run everywhere」的跨平台解决方案,更可达到 「write your code once, and present native UIs on each platform.」之跨平台开发能力。由于Xamarin可直接产生各平台之原生App应用程序,相较于其他跨平台方案,藉由Xamarin所开发出来的App应用程序,更能发挥出各行动平台的功能与特性,且具有最佳的执行效能。

以Xamarin开发App应用程序的方法概述如下 : 开发人员在单一开发环境中即能管理、撰写程序与测试各行动平台的App应用程序,可以在同一个方案中统合所有平台的项目,包括iOS、Android、Windows Phone与Windows 8 Store App。

Xamarin 开发平台主要包含以下4大部分 :
开发程序语言:Xamarin 以C# 作为开发程序语言,开发人员直接撰写C# 即可进行开发。
整合开发工具:Xamarin 提供整合开发工具 (IDE) Xamarin Studio,开发人员可直接于此工具上进行开发、除错、测试与仿真 等作业。Xamarin也针对Microsoft Visual Studio提供附挂套件 (Plug-In)。
跨平台开发框架: (Mono .Net Framework)Xamarin 提供开发框架,支持跨平台的功能实作 (cross-platform implementation)。
编译程序: Xamarin 具有各平台的编译程序,可直接编译为 iOS 与 Android 平台的机器码。

五大特色
快速建立原生(Native)的行动装置应用程序:
透过 C#亲和且功能齐全的语言特性,搭配.NET Framework 的 Base Class Library(BCL)的便利性,让开发人员能以最高的生产力开发行动装置应用程序。目前 Mono 支持 C# 5.0 的语言规范,开发人员可以用Lambda Expression、LINQ 甚至是 Async/Await 的异步处理。
程序代码共享:
现行由 Objective-C 所开发的 iOS 应用程序以及由 Java 所开发的 Android 应用程序,无法达到程序代码共享。Xamarin 则是采用C#撰写,因此透过良好的设计,可以在不同平台间共享商业逻辑以及数据存取等程序,毋需重新撰写。除了省下重新撰写的时间成本外,对于版本维护及一致性也有相当大的帮助。
与 Visual Studio 整合:
Xamarin 提供了 Visual Studio 2010/2012 的 plug-in,让原本就熟悉 Visual Studio 的开发者不用再熟悉其他的开发工具。在建立项目时,可以直接建立 iOS 及 Android 的项目模板。开发团队也可以将 iOS 及Android 的程序代码纳入到 ALM,使用 Team Foundation Server 进行版本及建置的管理。
确保第一时间更新:
Xamarin 对于 iOS 及 Android 的版本更新不遗余力,在 iOS SDK 5.0, 6.0 以 6.1, 都与 Apple 在同一天发表对应的 Framework 版本。7.0 也承诺会在同一天发表。而 Android 方面, Xamarin 甚至将 Android 的原始码, 从原本的 Java 改由 C#重新撰写,而且效能也得到大幅的提升。
原生的应用程序效能:
Xamarin 针对iOS及Android平台开发编译程序。将C#程序代码直接编译成ARM CPU的机器码。因此效能将与原生模式开发的应用程序相比,没有不同。而在Android 系统上,由于Xamarin 不使用Android的Dalvik 虚拟机,改为采用CLR,经测试其效能更甚于原生的应用程序。

下表为目前在行动平台上开发App应用程序的方法比较

Xamarin支持MVC设计模式,开发人员可以设计哪些是与用户接口相关的部份,并将与平台无关的商业逻辑、服务存取、数据存取以及数据层从接口抽离出来,依此为依据将应用程序区分为两部份, 分别为core以及user interface,有效达到程序代码共享,让设计架构更严谨。

来源:http://xamarin.csdn.net/module/btc/xamarin/product#id3

Xamarin简介与Xamarin支持MVC设计模式的更多相关文章

  1. Xamarin简介

    简介 简单来说,Xamarin提供了使用C#完成iOS,Android和Windows Phone三个移动平台开发的可能性Xamarin包括Xamarin.Andriod.Xamarin.IOS.Xa ...

  2. Django框架(一):MVC设计模式、Django简介

    1. MVC设计模式 MVC设计模式:Model-View-Controller简写. 最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪8 ...

  3. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  4. MVC设计模式简介

    刚刚学习了MVC相关知识,在这里进行一下总结MVC设计模式提高了Java开发中的代码可读性,提高了开发效率,实乃开发利器 1在MVC中由客户端发送一个带参数的请求,经过servlet处理后做出相应的处 ...

  5. 第80节:Java中的MVC设计模式

    第80节:Java中的MVC设计模式 前言 了解java中的mvc模式.复习以及回顾! 事务,设置自动连接提交关闭. setAutoCommit(false); conn.commit(); conn ...

  6. AngularJS_01之基础概述、设计原则及MVC设计模式

    1.AngularJS: 开源的JS框架,用来开发单一页面应用,以及数据操作频繁的场景:2.设计原则: ①YAGNI原则:You Aren't Gonna Need It! 不要写不需要的代码! ②K ...

  7. 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销

    第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...

  8. javacript中的mvc设计模式

    以下内容为原创翻译,翻译不对的地方还请原谅,凑合着看吧. 原文网址是: 来源:http://www.alexatnet.com/articles/model-view-controller-mvc-j ...

  9. 【原创翻译】认识MVC设计模式:web应用开发的基础(实际编码篇)

    原文地址:http://www.larryullman.com/2009/10/15/understanding-mvc-part-3/ 全系列INDEX [原创翻译]认识MVC设计模式:web应用开 ...

随机推荐

  1. Eclipse 透视图(Perspective)

    什么是透视图? 透视图是一个包含一系列视图和内容编辑器的可视容器.默认的透视图叫 java. Eclipse 窗口可以打开多个透视图,但在同一时间只能有一个透视图处于激活状态. 用户可以在两个透视图之 ...

  2. 目标检测之线段检测---lsd line segment detector

    (1)线段检测应用背景 (2)线段检测原理简介 (3)线段检测实例 a line segment detector (4)hough 变换和 lsd 的区别 --------------------- ...

  3. php+redis秒杀

    啥都不说了,看代码 前台: 包括开始和结束的秒杀时间,倒计时插件,统一看一遍再去写代码,思路会更清晰. js文件引入一个.min.js和一个插件js(在下面,自己复制吧) // JavaScript ...

  4. 初窥ElasticSearch

    初窥ElasticSearch 官网上面的,不知道讲的是什么.. youtube上面有一个start with,内容是在windows以下跑这个elastic search,然后用一个fidler工具 ...

  5. Golang中的正则表达式

    声明:文章转自GoLove 用法: 单一: . 匹配任意一个字符,如果设置 s = true,则可以匹配换行符 [字符类] 匹配"字符类"中的一个字符,"字符类" ...

  6. Android OpenCV集成摄像头图片动态识别车牌号

    最近两天开发一个使用OpenCV集成的一个识别车牌号的项目,困难重重,总结一下相关经验,以及开发注意事项: 一.开发环境: Android Studio 个人版本 3.1.4 NDK下载:14b CM ...

  7. N - Broken Keyboard (a.k.a. Beiju Text)(DFS,链表)

    N - Broken Keyboard (a.k.a. Beiju Text) Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:% ...

  8. cocos2d-x-3.1rc0中找不到"extensions/ExtensionMacros.h"的问题

    笔者导入UI编辑器的资源时,提示无法打开包括文件:“extensions/ExtensionMacros.h”: No such file or directory” 然后参考了3.0的一篇文章.得出 ...

  9. django restframework 的日常使用

    本文讨论 django restframework 的日常使用,满足常用 api 编写的需求,比如 List, Detail, Update, Put, Patch 等等.探讨 django rest ...

  10. JSTL 标签库

    1. JSTL 概述 JSTL 是 apache 对 EL 表达式的扩展, JSTL 是标签语言! 需要导入 jstl-1.2.jar 包 2. JSTL 标签库 core: 核心标签库; fmt: ...