基于Xamarin 2.0的跨平台移动开发 -...
Transcript of 基于Xamarin 2.0的跨平台移动开发 -...
![Page 1: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/1.jpg)
基于Xamarin 2.0的跨平台移动开发
华南师范⼤大学⺴⽹网络教育学院程序开发总监 卢建晖
13年4月20⽇日星期六
![Page 2: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/2.jpg)
概要
• ⾃自我介绍
• 谈谈移动开发
• Mono
• Xamarin
• CrossPlatform
13年4月20⽇日星期六
![Page 4: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/4.jpg)
移动开发
iOS
2007 .9
Android
2008 .10
WindowsPhone
2010 .10
Windows 8/RT
2012.10
13年4月20⽇日星期六
![Page 5: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/5.jpg)
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⽇日星期六
![Page 6: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/6.jpg)
iOS
Windows(Windows Phone/Windows 8)
Android
企业内部的移动开发
proj1
proj2
proj3
proj4
proj1 proj2
proj3 proj4
proj4proj3
proj1 proj2
13年4月20⽇日星期六
![Page 7: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/7.jpg)
企业在移动终端开发中所⾯面临的问题
平台越多,开发成本就越⼤大
内部员⼯工就是码农,需要不断学习,⽽而且培训费⽤用⾼高
管理统筹难
......................
⽤用⼀一种语⾔言,便捷的开发⼯工具去简化开发团队?
13年4月20⽇日星期六
![Page 8: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/8.jpg)
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⽇日星期六
![Page 9: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/9.jpg)
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⽇日星期六
![Page 10: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/10.jpg)
MonoTouch Demo
13年4月20⽇日星期六
![Page 11: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/11.jpg)
为何选择Mono
UI层(原⽣生UI)
UI逻辑组织
核⼼心
数据层
数据逻辑层
安全层
业务逻辑层
服务访问层
虽然每个移动端的UI展现不同,但是核⼼心功能都是⼀一样,⽽而这些代码是可以重⽤用 。虽然可能调⽤用类库不⼀一样,但是也可以通过判断预加载进⾏行处理。
13年4月20⽇日星期六
![Page 12: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/12.jpg)
iOSUI层(原⽣生UI)
UI逻辑组织
核⼼心数据层
数据逻辑层安全层 业务逻辑层
服务访问层
AndroidUI层(原⽣生UI)
UI逻辑组织
WindowsPhoneUI层(原⽣生UI)
UI逻辑组织
Windows 8/RTUI层(原⽣生UI)
UI逻辑组织
通过C#实现跨移动平台的逻辑代码共享
13年4月20⽇日星期六
![Page 13: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/13.jpg)
Xamarin 2.0 新的开始
新的Xamain Studio
作为Visual Studio 的插件,进⾏行iOS/Android的开发
组件商城(http://components.xamarin.com/)
aync / await
13年4月20⽇日星期六
![Page 14: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/14.jpg)
再谈跨平台设计模式MVC / MVP / MVVM
代码共享file share link
异步
虽然不同平台在异步线程⽅方⾯面有不同,但是也可以通过C#的语⾔言特性去优化
Xamarin.Mobile
13年4月20⽇日星期六
![Page 15: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/15.jpg)
在Visual Studio 上的简单Demo
13年4月20⽇日星期六
![Page 16: 基于Xamarin 2.0的跨平台移动开发 - course.gdou.comcourse.gdou.com/blog/image/luk/xamarin.pdf · 准(Ecma-334 和Ecma-335)的.NET 具,包括 C# 编译器和共通语执平台。](https://reader031.fdocuments.net/reader031/viewer/2022013120/5a78a53f7f8b9a8c428e87b8/html5/thumbnails/16.jpg)
谢谢
13年4月20⽇日星期六