Top Banner
23

Cross plataform development with mono [fonts]

May 17, 2015

Download

Technology

kementeus

Small session and talk about Mono and Cross development platform development for .Net developers. Talk shared in DDD Melbourne and DDD Adelaide 2011
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Cross plataform development with mono [fonts]
Page 2: Cross plataform development with mono [fonts]

Who am I? I’m 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

Page 3: Cross plataform development with mono [fonts]

Assumptions

You know what’s code

You know what’s .Net

You are already a .Net developer

You know there’s life beyond Windows

You are curious about monkeys…

You know a mono is a primate

Page 4: Cross plataform development with mono [fonts]

What’s mono anyway?

Tip: this is not a biology class…

Page 5: Cross plataform development with mono [fonts]

Ok, What’s not Mono…

Because sometimes myths are just myths…

Page 6: Cross plataform development with mono [fonts]

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

Page 7: Cross plataform development with mono [fonts]

Mono is more than a monkey… MonoTouch

MonoMac

MonoDroid

MonoDevelop IDE Mac and Windows

Git and Svn support

Many mono libraries Cecil, Zeroconf, etc.

LLVM compiler

New Garbage Collector

Sharpen

Moonlight 4

C# Compiler as a Service

Mono in games

Mono in Servers

Page 8: Cross plataform development with mono [fonts]

Compiler as a Service?

Because static languages are hot as well!

Page 9: Cross plataform development with mono [fonts]

What’s supported in Mono?

Ok, you got me…

Page 10: Cross plataform development with mono [fonts]

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)

Page 11: Cross plataform development with mono [fonts]

What’s NOT supported Windows Presentation Foundation

System.Management

Windows P/Invoke

System.EnterpriseServices

Cross process transactions

COM

WF (WF 4.0 will be implemented)

Page 12: Cross plataform development with mono [fonts]

Porting your application

Crossing the river…

Page 13: Cross plataform development with mono [fonts]

Stylizer by Skybound

Page 14: Cross plataform development with mono [fonts]

PlasticSCM by Codice

Page 15: Cross plataform development with mono [fonts]

Unity3D by UNITY

Page 16: Cross plataform development with mono [fonts]

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 Mindscape’s 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

Page 17: Cross plataform development with mono [fonts]

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!!!

Page 18: Cross plataform development with mono [fonts]

Plenty of UI options… Winforms

Your old “good” friend?

Gtk#

Qyoto

WX.Net

MonoCurses

MonoMac*

iOS/Android

Page 19: Cross plataform development with mono [fonts]

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)

Page 20: Cross plataform development with mono [fonts]

Business LogicWPF

MonoTouch

MonoDroid

MonoMac

Gtk#

Page 21: Cross plataform development with mono [fonts]

MOMA

A Funny acronym for an useful app!

Page 22: Cross plataform development with mono [fonts]

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!)

Page 23: Cross plataform development with mono [fonts]

Questions?

Come on! Don’t be so shy!