You are on page 1of 23

Who am I?

Im a cross platform developer from a beautiful and tropical place I was a Linux guy for long time in the past Open Source contributor Currently work as Senior Developer for Readify Microsoft .Net lover, polyglot developer, ASP.NET MVP Multi-cat guy, husband, blogger, gamer, things like that http://www.cprieto.com or @cprieto

Assumptions
You know whats code You know whats .Net You are already a .Net developer You know theres life beyond Windows You are curious about monkeys You know a mono is a primate

Whats mono anyway?


Tip: this is not a biology class

Ok, Whats not Mono


Because sometimes myths are just myths

Seriously, this is not Mono


Mono is NOT a Linux [only] port to .Net
Mono is NOT attached to Microsoft [directly]

Mono is NOT just a compiler or interpreter


Mono is NOT a .Net copy Mono is NOT dead

Mono is more than a monkey


Many mono libraries MonoTouch MonoMac MonoDroid MonoDevelop IDE
Mac and Windows

Cecil, Zeroconf, etc.

LLVM compiler New Garbage Collector Sharpen Moonlight 4 C# Compiler as a Service Mono in games Mono in Servers

Git and Svn support

Compiler as a Service?
Because static languages are hot as well!

Whats supported in Mono?


Ok, you got me

Microsoft .Net libraries


C# 4.0, 3.0, 2.0 ASP.NET System.Core Core libraries MEF DLR (ipy, irb) Code Contracts (partially) LINQ, LINQ to SQL ADO.NET NuGet OrchardCMS F# VB XNA (MonoXNA) WCF (partially) Odata (client side)

Whats NOT supported


Windows Presentation Foundation

System.Management
Windows P/Invoke System.EnterpriseServices

Cross process transactions


COM WF (WF 4.0 will be implemented)

Porting your application


Crossing the river

Stylizer by Skybound

PlasticSCM by Codice

Unity3D by UNITY

Core and basics


Mono is CIL compatible with Microsoft implementation What about data access?
You cannot use EF yet But you can use NHibernate! Ok, you can use Mindscapes Lightspeed too VistaDB, MySQL, PostgreSQL, Firebird, SQLServer, SQLite

Do I have some other usefull libraries to use?


Bitsharp, Mono.Addins, MonoTorrent, GitSharp, Mono.Zeroconf, many others!

You can use MonoDevelop IDE

Pay attention to details


Paths are not the same
Interop is not your friend COM is not your mate

Did you really need that API?


What about cross platform libraries? MoMA is your ally!!!

Plenty of UI options
Winforms
Your old good friend?

Gtk# Qyoto

WX.Net
MonoCurses MonoMac*

iOS/Android

Simple Guidelines
Design your code to be presentation agnostic

Independent
Business Logic Presentation Layer

Just follow the advise of your pattern loving buddies


Model, View, Controller (MVC) Model, View, Presenter (MVP)

Model, View, ViewModel (MVVM)

Business Logic

WPF MonoTouch

MonoDroid
MonoMac

Gtk#

MOMA

A Funny acronym for an useful app!

What about web apps?


ASP.NET Webforms

ASP.NET MVC1, MVC2


Portions of ASP.NET MVC3 Monorail, FubuMVC, OpenRasta OrchardCMS NuGet Moonlight 4 Magical things like Manos de Mono! (no cross platform yet!)

Questions?

Come on! Dont be so shy!

You might also like