240 likes | 345 Views
Cross Platform Mobile Development with .NET. Greg Shackles Senior Software Engineer OLO Online Ordering greg@gregshackles.com. Who is this guy?. Greg Shackles greg@gregshackles.com gregshackles.com Twitter: @ gshackles Google+: plus.tl/ gshackles github.com/ gshackles. C# To Go.
E N D
Cross Platform Mobile Development with .NET Greg Shackles Senior Software Engineer OLO Online Ordering greg@gregshackles.com
Who is this guy? Greg Shackles greg@gregshackles.com gregshackles.com Twitter: @gshackles Google+: plus.tl/gshackles github.com/gshackles
C# To Go http://shackl.es/CSharpToGo
Cross Platform Solutions and many more…
Reusability Story UI Silverlight MonoTouch Mono for Android C# Business Logic Runtime .NET Mono Platform WP7 iOS Android
What is Mono? Implementation of the .NET CLR Open source Cross platform Supports most of .NET 4.0 mono-project.com
MonoTouch Bindings to CocoaTouch .NET – LINQ, generics, etc (Moonlight) AOT compilation Linker Memory management Integrates with Interface Builder ios.xamarin.com
Mono for Android Wraps Java/Android API .NET – LINQ, generics, etc (Moonlight) Linker Visual Studio 2010 or MonoDevelop android.xamarin.com
Mono for Android Architecture • Android/Managed Callable Wrappers • JNI bridges to talk between Android and Mono
Mono for Android API .NET events replace listener interfaces Action replaces Runnable Enumerations Properties Attributes and tooling generate configuration Uses standard Android resource files
Platform Comparison • UI • Tooling • IDE • Emulator • Multitasking / Lifecycle • Storage • File system • Database • Shared Resources
Code Sharing Techniques • Link files • Preprocessor directives #if MONOTOUCH • Messaging (publish/subscribe) • Abstraction • Third party libraries • sqlite-net • TinyIoC/ TinyMessenger • MonoMobile.Extensions
App Architecture App.MonoTouch App.MonoAndroid App.WP7 CC.Core.MonoTouch CC.Core.MonoAndroid CC.Core.WP7 CodeCamp.Core Entities Libraries DataAccess Messaging ViewModels