Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><strong>Disclaimer:</strong> I've got a <a href="https://github.com/slodge/MvvmCross/" rel="nofollow">particular Mvvm methodology</a> that I use for sharing code across multi-platform projects...</p> <p>Despite this, I genuinely don't believe in "one size fits all" frameworks - I think you need to be careful to pick an approach that best suits your project, your developers and your organisation.</p> <p>With that said, some of the tools you can use within the Mono development approach are:</p> <ul> <li>using <a href="http://msdn.microsoft.com/en-us/library/gg597391.aspx" rel="nofollow">Portable Class Libraries</a> to share exactly the same code between platforms</li> <li>using platform specific Class Libraries to share code between platforms, linking these using the <a href="http://msdn.microsoft.com/en-us/library/ff921108%28v=PandP.20%29.aspx" rel="nofollow">Project Linker tool</a> from Microsoft</li> <li>using #define code within your class libraries to provide platform specific implementations of the projects (I personally try to avoid this approach, but it does often provide the quickest route to market)</li> <li>using DI/IoC techniques to provide components for those occasions when platform specific implementations really are required.</li> <li>using a assembly linking to provide IoC - e.g. this is what the <a href="http://xamarin.com/mobileapi" rel="nofollow">Xamarin MobileAPI</a> does</li> <li>using server-based logic for genuine shared functionality - e.g. using REST or SOAP-XML services to implement logic</li> <li>sharing tests (e.g. NUnit) between platforms to assure the quality of your logic</li> <li>using shared code techniques - MVC (<a href="http://code.google.com/p/monocross/" rel="nofollow">MonoCross</a>) or MVVM (<a href="https://github.com/RobertKozak/MonoMobile.Views" rel="nofollow">MonoMobile.Views</a> or <a href="http://github.com/slodge/mvvmcross" rel="nofollow">MvvmCross</a>) for UI "controller" logic; MonoTouch.Dialog and MonoDroid.Dialog for "View-level" abstractions; <a href="https://github.com/praeclarum/CrossGraphics" rel="nofollow">CrossGraphics</a> for UI "drawing"; SQLite.Net for database; etc.</li> </ul> <p>I'm finding the MonoTouch, MonoDroid and the Microsoft tools provide real and signigicant benefits in developing cross platform code - but you do have to work and think to achieve this.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload