Mono at Microsoft Tech Days Japan 2009

Embed Size (px)

Citation preview

Mono

Atsushi EnomotoNovell, Inc.

atokbanshee. SL,unitysshots, simdtext

paintdotnet, MoMA, gsharp, remixtokyo, rubyclockusing System.IO;from f in Directory.GetFiles ("/etc") where f.EndsWith ("rc") select f;gsharp with Bansheeusing Banshee.ServiceStack;using Banshee.Sources;Describe (typeof (SourceManager));var engine = ServiceManager.PlayerEngine;engine;Describe (engine);engine.IsPlaying ();engine.Pause();engine.CurrentTrack;Describe (engine.CurrentTrack);engine.Play();

About this sessionfirst public mono/moonlight sessionat Microsoft

the best of PDC2008

About memono contributor since 0.17 (2002)

sys.xml, and random stuff

Topics

Mono introduction

Mono and .NET interop

PDC 2008 Mono session highlights

Moonlight

Mono - .NET everywhere

Moonlight - silverlight on Linux (so far)

The Mono Project

Windowsx86Linux etc.x86,ppc,arm ...Macx86,ppc.NETSilverlightMonoMoonlight

Mono:Introduction

Miguel de Icaza:GNOMEXimian

MicrosoftCOM Unix

.NET ECMA (@MSDN)

Mono rationale:.NETLinux/GNOME

.NETcross platform

.NET

2001: the bootstrap

Mono: .NET everywhere

.NETeverywhere!

mono: CLI (VES)

mcs: C# ,

xsp: ASP.NET

$ mono [options] xsp2.exe [options]

Mono: GNOME dev. platform

GNOME

GTK#: C# binding for gtk+

GTK#:banshee, f-spot, beagle, tomboy, gnome do ...MonoDevelop IDE Gtk# GUI

Mono in games

Second Life (Linden Lab) - Linden script

ILmono

Unity (Unity3D)Mac OS X

Nintendo WiiiPhone Mono on Wii, Mono on iPhone

FusionFall (Cartoon Network)

Mono

for .NETInteroperability

Demo

Windows Forms on Linux [paint-mono]

ASP.NET on Linux

C# 3.NET coverage

Mono 2.0/2.2 .NET 2.0 + .NET 3.5

ADO.NETASP.NETWinformsWPFworkflowWCF

C# 2 / genericsMono 2.0Mono 1.2Mono 1.0ECMA CLI.NET 1.x.NET 2.0.NET 3.0.NET 3.5 / SP1

Mono does not support ...

.NET 3.0:

Windows: COM, MSMQ, WMI, ACL etc.

GC

ClickOnce

APIMonoTODOAttribute

throw new NotImplementedException();

APIAPI status page (http://go-mono.com/status)

.NET

MoMA

MoMA (Mono Migration Analyzer) APIAPIP/Invoke

DEMO

MoMA

MoMA (Mono Migration Analyzer) APIAPIP/Invoke

DEMO

Mono

more porting blockers

Mono.NET

slash/backslash

MONO_IOMAP

(ASP.NET) web.config, gmcs -codepage:932

more porting blockers

private

P/Invoke[DllImport (user32.dll)]

ANSI (monoutf-8)

FooBarW() / in *.config / pray

and bugs (please report!)

Mono: .NET everywhere, rich GNOME, embedded

Mono 2.0 .NET 2.0 + .NET 3.5

no .NET 3.0, no Windows-ism

MoMANG

The Root of MonoFramework

Mono Runtime (VES)

written in C (API)

VES

GACside-by-side

P/Invoke (*.so on Linux, *.dylib on OS X)

() ()coreclr

IL verifier (Mono 2.4)

Win32 I/O

: native code interop

C#P/Invoke - [DllImport (gdiplus)]

static extern Status GdipCreateLineBrushI(...);

icall - [MethodImpl (MethodImplOptions.InternalCall)]

static extern bool CreateDirectory(...);

Win32 I/Oves_icall_System_IO_MonoIO_CreateDirectory(...);

Sys.Drawing, Windows.Formslibgdiplus

:

[deprecated], JIT (Just In Time),

AOT (Ahead Of Time), full AOT (2.2)

full AOT

IL

interpVES

JIT

AOTJIT

full AOT

Build your own runtime

mkbundle

mono linkerIL

.NET CF

linker + mkbundle: minimal deployment

mscorlibConsoleHello.exe

Hello.exemscorlib

Mono 2.2 highlight: Mono.Simd

SIMD:

Mono.Simd.dllmanaged codeSIMD

C#/IL/

JITsimdMono.SimdSIMD

mono --optimize=[simd|-simd] -v -v -v -v test.exe

mcs: Mono C# Compiler

C#C#.NET

Mono 2.0(2008/10)C# 3.0

Mono.CSharp.dll: C# EvaluatorC# 5.0 - compiler as a service (API)

mcs net1_1.cs

gmcs net_2_0_or_3_5.cs

smcs net_2_1.cs (silverlight)

Demo: gsharp

Mono.AttachMonoinjectAPI

gsharp: C# shell with VM attach API

mono:

Mono.Simd: JITC# Evaluatorgsharp

Moonlight

Moonlight brief history

2007/5: MS, Mix '07SilverlightMiguel

2007/6: ReMix '07 France

2007/9: MS/Novelltest cases / media codec

2008/3: Moonlight at Mix '08 ( John Lam )

2009/1: Moonlight 1.0

Moonlight technology layers

OSlibmoon (C++)mediacodecmozillaplugin (C++)silverlight.js[1.0]

MonoMSUserUser contents (HTML, JavaScript)

XAP packageCoreCLRMoonlight technology layers

libmoon (C++)mono runtime (VES)mscorlib.dll,System.dll,System.*.dllSystem.Windows.dllSystem.Windows.Browser.dllSilverlight Controls (dll)DO/DP

mediacodecDLRDLRmozillaplugin (C++)silverlight.jsSDKDLLsUser contents (HTML, JavaScript)[2.0]

MonoMSUserOSAppDLLs

Microsoft helps Moonlight

DLR (, IronPython, IronRuby): MS-PL

Silverlight Controls: MS-PL

testcases

media codec

Try Moonlight 1.0

2009/1/20

Silverlight 1.0

SL 1.0 (see mono website)

Moonlight 2.0 work (ongoing)

Silverlight 2.0 - managed codeMoonlight2.0

CoreCLR: IL verifier, CoreCLR mono

- linker, tunerAPIMono.Cecil: CIL

full CLRDLL

internal

Demo

Moonlight 1.0

Moonlight 2.0

Mono resources:website: http://mono-project.com

blogs: http://go-mono.com/monologue

Contact:[email protected]

searchatsushieno

mono meeting

Click to edit the title text format