基于xamarin 2.0的跨平台移动开发 -...
TRANSCRIPT
基于Xamarin 2.0的跨平台移动开发
华南师范⼤大学⺴⽹网络教育学院程序开发总监 卢建晖
13年4月20⽇日星期六
概要
• ⾃自我介绍
• 谈谈移动开发
• Mono
• Xamarin
• CrossPlatform
13年4月20⽇日星期六
移动开发
iOS
2007 .9
Android
2008 .10
WindowsPhone
2010 .10
Windows 8/RT
2012.10
13年4月20⽇日星期六
Windows 8/RT
iOS
Windows Phone
Android
WinJS+Html5/C#+XAML(Visual Studio)
C#+XAML(Visual Studio)
Java+XML(Eclipse)
Objective-C+.xib/.storyboard(Xcode)
13年4月20⽇日星期六
iOS
Windows(Windows Phone/Windows 8)
Android
企业内部的移动开发
proj1
proj2
proj3
proj4
proj1 proj2
proj3 proj4
proj4proj3
proj1 proj2
13年4月20⽇日星期六
企业在移动终端开发中所⾯面临的问题
平台越多,开发成本就越⼤大
内部员⼯工就是码农,需要不断学习,⽽而且培训费⽤用⾼高
管理统筹难
......................
⽤用⼀一种语⾔言,便捷的开发⼯工具去简化开发团队?
13年4月20⽇日星期六
Mono
Mono是跨平台的.net 开发环境,之前是⼀一个由Novell 公司主持的项⺫⽬目。该项⺫⽬目的⺫⽬目标是创建⼀一系列符合ECMA 标准(Ecma-334 和Ecma-335)的.NET ⼯工具,包括C# 编译器和共通语⾔言执⾏行平台。与微软的.NET Framework 不同,Mono 项⺫⽬目不仅可以运⾏行于Windows 系统上,还可以运⾏行于Linux,FreeBSD,Unix,Mac OS X 和Solaris。
App
Class Library
Common Language Runtime
Operating System
MonoTouch
MonoAndroid
MonoWeb
C#
13年4月20⽇日星期六
MonoTouch(Mono for iOS)使⽤用静态编译(Ahead-Of-Time)⽅方式将C#代码编译为 ARM⼆二进制代码。
这⾥里要说明⼀一下,使⽤用MonoTouch创建的每⼀一个应⽤用程序都是独⽴立的,也就是说应⽤用程序所需要的东⻄西都要打包,之所以这样是因为iPhone不允许使⽤用共享库。MonoTouch通过绑定⽅方式向C#公开iPhone的原⽣生库,因⽽而不⽤用在语⾔言之间做转换。
MonoDroid(Mono for Android)是将C# 代码编译成IL封装到MonoVM+JIT.
13年4月20⽇日星期六
MonoTouch Demo
13年4月20⽇日星期六
为何选择Mono
UI层(原⽣生UI)
UI逻辑组织
核⼼心
数据层
数据逻辑层
安全层
业务逻辑层
服务访问层
虽然每个移动端的UI展现不同,但是核⼼心功能都是⼀一样,⽽而这些代码是可以重⽤用 。虽然可能调⽤用类库不⼀一样,但是也可以通过判断预加载进⾏行处理。
13年4月20⽇日星期六
iOSUI层(原⽣生UI)
UI逻辑组织
核⼼心数据层
数据逻辑层安全层 业务逻辑层
服务访问层
AndroidUI层(原⽣生UI)
UI逻辑组织
WindowsPhoneUI层(原⽣生UI)
UI逻辑组织
Windows 8/RTUI层(原⽣生UI)
UI逻辑组织
通过C#实现跨移动平台的逻辑代码共享
13年4月20⽇日星期六
Xamarin 2.0 新的开始
新的Xamain Studio
作为Visual Studio 的插件,进⾏行iOS/Android的开发
组件商城(http://components.xamarin.com/)
aync / await
13年4月20⽇日星期六
再谈跨平台设计模式MVC / MVP / MVVM
代码共享file share link
异步
虽然不同平台在异步线程⽅方⾯面有不同,但是也可以通过C#的语⾔言特性去优化
Xamarin.Mobile
13年4月20⽇日星期六
在Visual Studio 上的简单Demo
13年4月20⽇日星期六
谢谢
13年4月20⽇日星期六