Cross Platform Net Development With Mono And My Sql Presentation
-
Upload
snowland-nk -
Category
Technology
-
view
2.128 -
download
2
Transcript of Cross Platform Net Development With Mono And My Sql Presentation
BrainShare Presentation Template - Safe Harbor Statement
Cross-Platform .NET:
Mono and MySQL
Joseph Hill
Product Manager for Mono, Novell
Joe Audette
Founder, Source Tree Solutions, LLC
What Can You Do with Mono?
Migrate Microsoft .NET desktop and server applications to Linux without significant investment in rewriting code
Target multiple platforms and increase addressable market
Leverage existing expertise in computer languages for more efficient development
Mono (mn), n:
A complete and modern development platform for Linux
The necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix
A thriving open source project with a growing community
What is Mono?
Multi-platform, Multi-language
C#
Visual Basic
Boo
IronRuby
x86
SPARC
StrongARM
s390
PowerPC
CommonIntermediateLanguage
Code Generation:Just-In-Timeor Ahead-of-Time
IronPython
JavaScript
F#
Java (IKVM)
Interesting thing about Mono/.NETCIL (Common Intermediate Language): the "Lingua Franca" for computer languages. Allows you to write a front-end compiler (C#, Java, etc.) and instead of generating native machine code, you generate code for the intermediate language. So you always map to a single language, then the single language gets mapped to the target OS.
We take the IL and generate code that will run on a number of platforms.
So today we have very good coverage of languages that you can use with Mono. C# 2.0 (you can use full generics), VB.NET, Java applications - with IKVM which has been incredibly popluar - and a bunch of other languages.
Mono 1.0 (7/04)
.NET 3.0 / .NET 3.5
.NET 2.0
C# 2.0Generics
Upgrades to stack.
.NET 1.1
Server: ASP.NET
Gtk#
WinForms
Upgrades to stack.
C# 3.0LINQ
WCFWFWPF
Mono 1.2 (11/06)
.NET 3.0 / .NET 3.5
.NET 2.0
C# 2.0Generics
Upgrades to stack.
.NET 1.1
Server: ASP.NET
Gtk#
WinForms
Upgrades to stack.
C# 3.0LINQ
WCFWFWPF
Mono Today: Mono 1.9 March 2008
ASP.NET 1.1 & 2.0
Web Forms & Web Services
Support for ASP.NET AJAX
ADO.NET 1.1 & 2.0
SQL Server, Oracle, PostgreSQL
MySQL, Sybase, DB2, SQLite, etc
Win Forms 1.1 & 2.0
C# 1.0, 2.0, 3.0
LINQ
GTK#
Mono 2.0 (Summer 08)
.NET 3.0 / .NET 3.5
.NET 2.0
C# 2.0Generics
Upgrades to stack.
.NET 1.1
Server: ASP.NET
Gtk#
WinForms
Upgrades to stack.
C# 3.0LINQ
WCFWFWPF
Mono 3.0 (Olive)
.NET 3.0 / .NET 3.5
.NET 2.0
C# 2.0Generics
Upgrades to stack.
.NET 1.1
Server: ASP.NET
Gtk#
WinForms
Upgrades to stack.
C# 3.0LINQ
WCFWFWPF
Mono Migration Analyzer (MoMA)
Inspects CIL byte code
Looks for uses, compares with implementation
Missing methods
Todo methods (flagged with an attribute)
MoMA is the best place to start; full report of how easy your existing app will be to migrate
http://www.mono-project.com/Moma
We started building the left side of the stack, ie, ASP.NET, ADO.NET, Windows.Forms, and that stack is done for 1.1 and 70% done for .NET 2.0. We can run a lot of apps with that. But we didn't really know what people were using, which controls, which bugs actually matter, etc. So, a couple of months ago we built a tool that people could run on windows, and would allow us to figure out what to implement. So we have developed this. Inspects the byte code, looks at methods, and ships with a definition of everything that Mono has. Generates a report and sends it to our website.
Developers can use this tool to find out what apps are portable, and which apps are not portable. So, once the data is submitted, let's see what the data looks like. We aggregate all the data that people have sent us. Between Mono 1.2.2 and 1.2.3 we implemented 2000 methods.
Regarding apps submitted to us, 16% are VB, 67% are Windows.Forms, 28% are .NET 1.1, and 72% are .NET 2.0.
mojoPortal What Is It?
Content Management/Web Site Framework
Project began with the idea of supporting MySql and Mono
Current Features Blogs, Forums, Calendars, Maps, Image Gallery, Ecommerce, and more
Download it from www.mojoportal.com
mojoPortal Architecture
Cross Platform Development
Visual Studio 2005/2008
MonoDevelop
Developing with MonoDevelop
Free .NET IDE for Linux and Mac OS X
Code completion
Refactoring
Class management
Built-in help
VS 2005 project support
Gtk# designer support
ASP.NET support
C#/VB/Boo/C/C++ support
Much More
Getting Mono
Mono
http://www.mono-project.com/Downloads
MoMA
http://www.mono-project.com/MoMA
Moonlight
http://www.mono-project.com/Moonlight
http://go-mono.com/moonlight
Mono projects
http://packages.opensuse-community.org/
mojoPortal
http://www.mojoportal.com
Mono Stacks
ASP.NET
ADO.NETWindows.Forms
Mono Runtime
(Implementation of ECMA #335)
MySQL/Postgress
Microsoft Compatibility Libraries
Mono Libraries
Mozilla
Apache Mono
Novell LDAP
Java Compatibility
Evolution#
Novell iFolder
GTK#
Gnome#
Virtual Machine: Multilanguage
(Implementation of ECMA #335)
Gtk#/Gnome
Mono Stack
Bonjour
Identity
Sqlite#
Addins
D-Bus#
Novell APIs:iFolder, LDAP
Desktop: GTK#
Cecil
Rocks
MySQL
Mozilla
Apache Mono
OpenOffice
Java Compatibility
ASP.NET
ADO.NETWindows.Forms
ASP.NET
ADO.NETWindows.Forms
.NET StackDone some very important thingsGTK# work - provided bindings for building GUI applicationsat Novell, we try to not write C-Code very much, we try to use managed languages- in the last couple of years we've done Banshee, F-Spot, desktop searchFairly successful in creating an ecosystem of class libraries that would complement Mono
IKVM - allows you to run unmodified Java apps on top of Mono. Takes your Java byte code and xlates on the fly and generates code for the CIL.
Has exploded into a universe of API and class libraries.Cecil - a library that lets you manipulate executabeles, insect, make mods, insert code, inspect code, etc.
Platform Support
32 bit:
x86
SPARC
S390, IBM
ARM family
PowerPC
64 bit:
x86-64
s390x, IBM
Itanium
Operating Systems:
Linux
Solaris
MacOS X
Windows
Nokia/Maemo
Contributed ports:
Alpha, MIPS (not finished).
Presented by,MySQL & OReilly Media, Inc.