Mono Project - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Mono Project

Description:

Based on the ECMA tc39 tg1/tg2/tg3 standards #1 Fun Open ... X86: Linux, xxBSD, Windows. PPC: Preview in October. Interpreter: StrongArm. PPC, Sparc, S390 ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 20
Provided by: dotne
Category:
Tags: mono | project

less

Transcript and Presenter's Notes

Title: Mono Project


1
Mono Project
  • Miguel de Icaza
  • (miguel_at_ximian.com)

2
Project Overview
  • Mono
  • Open Source implementation of .NET Framework
  • Development tools
  • Runtime engine
  • Compatible class libraries.
  • Based on the ECMA tc39 tg1/tg2/tg3 standards
  • 1 Fun Open Source Project.
  • Also, the most important one -)

3
Need
  • Fix the rusty development platform.
  • Reduce cost of development
  • Evolution 850k-wc, 17 people, 3years.
  • GC, safe runtime eliminate source of errors.
  • Threaded runtime enable many new uses.
  • Keep multi-language culture
  • Better languages to develop multi-year software.

4
Development Tools
  • Compilers produced by the Mono team
  • C compiler (100)
  • IL Assembler with generics support (90)
  • VB.NET (50)
  • Jscript (10)
  • Debugger
  • Both Mono and Unix applications.
  • Documentation system

5
The Mono team.
  • 7 full time developers from Novell.
  • 3 bound to contracts
  • 1-2 full time developers partly donated.
  • OpenLink's help in Windows.Forms.
  • 150 part-time contributors.
  • Coding, documentation, testing.

6
C
  • High level systems programming language
  • Strong typing
  • OO, single inheritance, multiple interface
  • Application development language
  • Not appropriate for scripting tasks.
  • Attributes
  • Novel mechanism annotate elements
  • C 2.0 working with ECMA team.
  • Iterators, anonymous methods, generic types,

7
Runtime Engine
  • Services
  • JIT/AOT compilation.
  • Garbage Collection.
  • Thread management.
  • Language independent

8
Runtime Engine

9
Mono Today
  • Self hosting
  • C written in C
  • Second generation compile engine.
  • Early debugger.
  • Components
  • Kernel
  • Xml (xpath,xslt)
  • asp.net (webforms)
  • ado.net
  • Mono
  • Mozilla
  • Gtk
  • Vorbis
  • OpenGL
  • Apache ASP.NET
  • Cairo
  • Other
  • ZipLib
  • WT

10
Mono components
11
Gtk GUI toolkit.
  • Binding to existing Gnome GUI toolkit.
  • Integrates with existing desktop.
  • Language bindings fit the Gnome tradition.
  • Fairly complete API audit still pending.
  • Various applications developed with it.
  • Mozilla bindings included.

12
Incomplete Windows.Forms
  • Win32 version most advanced.
  • Uses Wine as a library.
  • Plenty of controls/behavior missing.
  • Lack of Win32 GUI expertise.
  • Best compatibility (P/Invoke and Wndproc)
  • Integration track Gtk themes
  • Gtk version integrates with desktop.
  • Can not support tricky WndProc/PInvoke calls

13
Documentation Project
  • Monkeyguide
  • Tutorial on .Net, Mono, Gtk, Glade, etc.
  • Api Docs
  • Ecma body.
  • Gtk documentation.
  • The Spanish Hackers
  • Integrate all the sources
  • MonoDoc

14
New VM
  • Second Generation VM
  • Pre-compilation
  • Portability
  • Optimization platform.
  • Internally
  • CIL -gt MIR -gt LIR
  • SSA transform (a few today, more tomorrow)
  • Register Allocation Instruction scheduling.

15
Mono and Interop
  • Cross Language Interop
  • Similar in spirit to CORBA interop subset
  • Reusing existing C code
  • Platform Invoke
  • Custom Marshalling.
  • Embedding the Mono Runtime
  • Just like embedding Python.

16
Interesting case Java
  • IKVM jit compiler from jvm to cil.
  • Jeroen developed it on .NET in Windows.
  • Zoltan fixed the Mono issues.
  • Exposes Java lt-gt .NET object bridge.
  • Very robust.
  • Runs Eclipse, Jython, others.

17
CLS Interop subset

C
18
Platforms
  • JIT
  • X86 Linux, xxBSD, Windows.
  • PPC Preview in October.
  • Interpreter
  • StrongArm.
  • PPC, Sparc, S390
  • Hard to balance
  • Desire to add more optimizations vs ports.

19
More information
  • Mono
  • http//www.go-mono.com
  • http//www.go-mono.com/contributing.html
  • Microsoft.NET
  • http//msdn.microsoft.com/net
  • Ikvm (http//www.ikvm.net)
  • Team
  • mono-devel-list_at_ximian.com
  • Myself
  • miguel_at_ximian.com
Write a Comment
User Comments (0)
About PowerShow.com