230 likes | 493 Vues
Who am I?. I'm a cross platform developer from a tropical and beautiful placeWas a Linux guy for long time in the pastOpen Source contributorSenior Software Developer for ReadifyPolyglot developer, Microsoft .Net fan, ASP.NET MVPMulti-cat guy, husband, blogger, gamer, those kind of thingshttp
E N D
2. Who am I? I’m a cross platform developer from a tropical and beautiful place
Was a Linux guy for long time in the past
Open Source contributor
Senior Software Developer for Readify
Polyglot developer, Microsoft .Net fan, ASP.NET MVP
Multi-cat guy, husband, blogger, gamer, those kind of things…
http://www.cprieto.com or @cprieto
3. Agenda What’s mono anyway?
What can mono give me?
Can I port my application to Mono?
Tips, highlights, some advices about porting my apps to mono
Questions…
4. Assumptions You know what code is
You know what .Net is
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
5. What’s mono anyway? Tip: this is not a biology class…
6. Ok, What’s not Mono… Because sometimes myths are just myths…
7. What it is not… 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
8. Mono is more than a monkey… MonoTouch
MonoMac
MonoDroid
MonoDevelop IDE
Mac and Windows
Git and Svn support
Many mono libraries
Cecil, Zeroconf, webkit#, etc.
LLVM compiler
New Garbage Collector
Sharpen
Moonlight 4
C# Compiler as a Service
Mono in games
Mono in Servers
9. Just a simple demo… Is it a bird? Is it a plane? No it’s a Compiler Service!
10. What’s supported in Mono? Ok, you got me…
11. 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)
12. 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)
13. Porting your application Crossing the river…
14. Stylizer by Skybound
15. PlasticSCM by Codice
16. Unity3D by UNITY
17. 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 ?
18. 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!!!
19. What about my user interface? I mean, I need to show something…
20. Plenty of UI options… Winforms
Your old “good” friend?
Gtk#
Qyoto
WX.Net
MonoCurses
MonoMac*
iOS/Android
21. 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)
23. 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!)
24. Questions? Come on! Don’t be so shy!