Download presentation
Presentation is loading. Please wait.
1
Cross-Platform .NET: Mono and MySQL
Joseph Hill Product Manager for Mono, Novell Joe Audette Founder, Source Tree Solutions, LLC
3
Multi-platform, Multi-language
x86 C# Visual Basic SPARC Boo Java (IKVM) Common Intermediate Language Code Generation: Just-In-Time or Ahead-of-Time StrongARM F# JavaScript Interesting thing about Mono/.NET CIL (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. s390 IronPython IronRuby PowerPC
4
Mono® 1.0 (7/04) .NET 3.0 / .NET 3.5 .NET 2.0 .NET 1.1 Server: ASP.NET
WCF WF WPF .NET 2.0 .NET 1.1 Upgrades to stack. Upgrades to stack. Server: ASP.NET Gtk# WinForms C# 2.0 Generics C# 3.0 LINQ
5
Mono® 1.2 (11/06) .NET 3.0 / .NET 3.5 .NET 2.0 .NET 1.1 Server:
WCF WF WPF .NET 2.0 .NET 1.1 Upgrades to stack. Upgrades to stack. Server: ASP.NET Gtk# WinForms C# 2.0 Generics C# 3.0 LINQ
6
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#
7
Mono® 2.0 (Summer 08) .NET 3.0 / .NET 3.5 .NET 2.0 .NET 1.1 Server:
WCF WF WPF .NET 2.0 .NET 1.1 Upgrades to stack. Upgrades to stack. Server: ASP.NET Gtk# WinForms C# 2.0 Generics C# 3.0 LINQ
8
Mono® 3.0 (Olive) .NET 3.0 / .NET 3.5 .NET 2.0 .NET 1.1 Server:
WCF WF WPF .NET 2.0 .NET 1.1 Upgrades to stack. Upgrades to stack. Server: ASP.NET Gtk# WinForms C# 2.0 Generics C# 3.0 LINQ
9
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 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 and 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.
10
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
11
mojoPortal Architecture
12
Cross Platform Development
Visual Studio 2005/2008 MonoDevelop
13
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
14
Getting Mono Mono http://www.mono-project.com/Downloads MoMA
Moonlight Mono projects mojoPortal
15
Virtual Machine: Multilanguage
Mono® Stacks ASP.NET ADO.NET Windows.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# ASP.NET ASP.NET MySQL Gtk#/Gnome D-Bus# Mozilla Bonjour Novell APIs: iFolder, LDAP ADO.NET ADO.NET Apache Mono Identity Desktop: GTK# OpenOffice Sqlite# Cecil Windows.Forms Windows.Forms Java Compatibility Addins Rocks .NET Stack Mono Stack Virtual Machine: Multilanguage Done some very important things GTK# work - provided bindings for building GUI applications at 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 search Fairly 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. (Implementation of ECMA #335)
16
Platform Support 32 bit: Operating Systems: x86 Linux SPARC Solaris
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).
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.