Cross platform developmentwith C#By Michele Scandura
Michele ScanduraSenior Software Developer at Compass Informatics (www.compass.ie)EMAILmichele.scandura@outlook.comTWITTER@...
But… HTML5?“I think the biggest mistake that we made as a company is     betting too much on HTML5 as opposed to native”  ...
But… HTML5? You have to program in JavaScript  Write once, deploy everywhere not 100% true UI paradigms are different ...
But… HTML5?     iOS      Android   Windows Phone
C# as a multiplatform alternative                                   Plus a few nice additions Mono makes it possible to ...
Advantages in using C# Linq / Lamda, Parallel Linq, Tasks Memory management (no pointers, but leaks are still a problem)...
C# as a multiplatform alternative “Between Windows, iOS and Android, your C# code can             run on over 2.2 billion ...
Introducing Xamarin Newly released tools: Xamarin Studio,  Xamarin.Android and Xamarin.iOS (formerly  Mono for Android an...
Reusable code Most non-UI code can be shared across platforms   Core logic   Entities, messages, interfaces   Linq   ...
Reusable code: how to File linking Abstraction Observer pattern Partial classes Conditional compilation Portable cla...
Useful C# libraries TinyIoC / TinyMessenger WaveEngine MonoGame (XNA)            We have IoC containers, EmguCv (open ...
And native too Google Maps API V2 Flurry OxyPlot.2DGraphLib Chipmunk Physics And many more
Tips and tricks Developing for iOS requires a Mac Emulators are good but:     iOS provides an x86 simulator     Androi...
Demo time (sort of!)
Conclusions It all sounds great, isn’t it? Sometimes is not straightforward as it seems Relying on semi-closed platform...
Some linksApache Cordova - http://cordova.apache.org/Xamarin - http://xamarin.com/iOS Dev Center - https://developer.apple...
Upcoming SlideShare
Loading in …5
×

Cross platform development with C#

5,956 views

Published on

A very high level introduction to cross Platform development in C# with a focus on mobile (iOS, Android, WP)

1 Comment
0 Likes
Statistics
Notes
  • Take a look at Nevron Open Vision: http://www.nevron.com/Products.nevron-open-vision.overview.aspx

    Nevron is about to release the NOV cross-platform presentation layer, including a feature-rich set of UI tools for .NET developers. With NOV, developers will be able to use single code base to develop cross-platform applications and user interfaces.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
5,956
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
41
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Cross platform development with C#

  1. 1. Cross platform developmentwith C#By Michele Scandura
  2. 2. Michele ScanduraSenior Software Developer at Compass Informatics (www.compass.ie)EMAILmichele.scandura@outlook.comTWITTER@mikescandyBLOG???
  3. 3. But… HTML5?“I think the biggest mistake that we made as a company is betting too much on HTML5 as opposed to native” (Mark Zuckerberg, Sept. 2012) HTML5 is indeed a great technology and is here to stay Promise: write once, run everywhere JavaScript engines are getting faster, and you can use JavaScript on client and server But…
  4. 4. But… HTML5? You have to program in JavaScript  Write once, deploy everywhere not 100% true UI paradigms are different on each platform No access to native libraries
  5. 5. But… HTML5? iOS Android Windows Phone
  6. 6. C# as a multiplatform alternative  Plus a few nice additions Mono makes it possible to run C# code on the most Playstation Mobile (PS VITA) widespread platforms The Unity 3d Engine uses C# as a All Windows variants scripting language (and Unity runs on Wii and WiiU, PS3, XBOX, Flash) Linux PS4 will definitely run C# code OSX BSD, Solaris, Wii, PS3 iOS CPU architecture is not an issue: Android x86, x64, IA64, PowerPC, SPARC, ARM…
  7. 7. Advantages in using C# Linq / Lamda, Parallel Linq, Tasks Memory management (no pointers, but leaks are still a problem) Strongly typed implicit variable declaration Extension methods Strongly typed Generics WCF Async/await (This applies only if using Visual Studio) ReSharper
  8. 8. C# as a multiplatform alternative “Between Windows, iOS and Android, your C# code can run on over 2.2 billion devices” Nat Friedman (CEO of Xamarin, Jan 2013)
  9. 9. Introducing Xamarin Newly released tools: Xamarin Studio, Xamarin.Android and Xamarin.iOS (formerly Mono for Android and MonoTouch Provide full access to platform SDK 100% native Faster than native! (Mono vs. Dalvik, xobotos) Always in sync with native SDKs (iOS 6.1 released 28/1, MonoTouch update released the next day)
  10. 10. Reusable code Most non-UI code can be shared across platforms Core logic Entities, messages, interfaces Linq Network access File / Database access might be tricky
  11. 11. Reusable code: how to File linking Abstraction Observer pattern Partial classes Conditional compilation Portable class libraries
  12. 12. Useful C# libraries TinyIoC / TinyMessenger WaveEngine MonoGame (XNA) We have IoC containers, EmguCv (open CV) MVVM, 2D and 3D game NetTopologySuite engines, ORM, Image MVVMCross processing library, Logging, Web services, GIS tools… SQLite-Net ServiceStack Log4Net Many more
  13. 13. And native too Google Maps API V2 Flurry OxyPlot.2DGraphLib Chipmunk Physics And many more
  14. 14. Tips and tricks Developing for iOS requires a Mac Emulators are good but:  iOS provides an x86 simulator  Android provides both ARM and x86 emulators iOS deployment still requires the usual certificates and some Xcode Memory leaks Git support in TFS / Xamarin Studio
  15. 15. Demo time (sort of!)
  16. 16. Conclusions It all sounds great, isn’t it? Sometimes is not straightforward as it seems Relying on semi-closed platform Specific platform knowledge is still a must: get ready to learn some Java and objective-c Mobile is not only coding, UI and UX are crucial for a successful app
  17. 17. Some linksApache Cordova - http://cordova.apache.org/Xamarin - http://xamarin.com/iOS Dev Center - https://developer.apple.com/devcenter/ios/index.actionAndroid Developer - http://developer.android.com/index.htmlXamarin on GitHub - https://github.com/xamarinThe Mono Project - http://www.mono-project.com/Main_PageTinyIoC - https://github.com/grumpydev/TinyIoCTinyMessenger - https://github.com/grumpydev/TinyMessengerWaveEngine - http://www.waveengine.net/MonoGame (XNA) - http://monogame.net/EmguCv (open CV) - http://www.emgu.com/wiki/index.php/Main_PageNetTopologySuite - http://code.google.com/p/nettopologysuite/MVVMCross - https://github.com/slodge/MvvmCrossSQLite-Net - https://github.com/praeclarum/sqlite-netServiceStack - http://www.servicestack.net/Xamarin.iOS Bindings - https://github.com/mono/monotouch-bindingsOxyPlot.2DGraphLib - https://github.com/Emasoft/OxyPlot.2DGraphLib.MonoTouchShinobiControls - http://blog.xamarin.com/shinobicontrols-joins-the-xamarin-component-store-and-evolve-speaker-lineup/

×