Exploring Moonlight: Novell's Implementation of Silverlight on Linux

Preview:

DESCRIPTION

Come experience .NET on Linux. Learn how to develop and deploy Microsoft Silverlight and cross platform server applications using Moonlight

Citation preview

Moonlight:Silverlight on Linux.

Miguel de Icazamiguel@novell.com

Getting here.

Ximian: early history

Ximian: Linux Desktop Startup founded in 1999 “fill the gaps” Develop missing pieces (and applications).

Mono Project

Mono: .NET on Unix. Open Source implementation. Better Developer Tools for Linux developers.

Allow Windows developers to port to Linux: Bring expertise. No need to learn new languages/APIs. No need to rewrite in Java/C++.

Silverlight, in 3 bullet points.

WPF/E at PDC Cute.

WPF/E at Mix 06 Still cute.

Silverlight 1.1 at Mix 07 Awesome, and in our domain.

Mix 07.

Interest at Mix 07 Journalist quote.

Marc Jalabert's “Can you demo it in 3 weeks?” Start work on May 31st. Remix 07 in Paris, France, June 21st.

Microsoft/Novell interoperability framework.

Microsoft Opening Up.

Open source efforts inside the company. DLR, IronPython, IronRuby and many more.

Opening up formats, protocols. Open Specification Promise (OOXML, WS-*)

Scott Guthrie, web guy in charge of .NET. Bob Muglia's interop initiative with Novell. Sam Ramji's group.

Microsoft/Novell agreement.

Microsoft to provide: Media Pack for all Moonlight users on Linux. Regression test suites. Complete specifications for implementation.

Novell to: Deliver a 100% compatible Moonlight. Support it on all major Linux

distributions/platforms.

Moonlight

Moonlight Today

Moonlight Roadmap.

Previews available now: http://www.go-mono.com/moonlight No media yet.

Moonlight 1.0: Available in June

Moonlight 2.0: Previews by the end of the summer. Final release shortly after MS Silverlight 2

mopen command tool.

mopen launches xaml files from the desktop Applications can be contained in directories Pure XAML or XAML + managed code. Similar to MacOS X “open”

Desklets: window-less XAML applications. Similar to Widgets, Gadgets.

Original Moonlight Core

Moonlight with MS Media Pack

Moonlight Directions Today

Complete/ship 1.0 Integration of MediaPack. Complete our media pipeline. Improve performance (complex scenes, drivers)

Parallel work on 2.0: VM changes developed in parallel.

Silverlight Class Libraries.

Core Libraries: Subset of 3.5 .NET Libraries. Most are a straight subset. A few one have different class hierarchies.

Silverlight APIs: Draw inspiration from WPF. Almost no code reuse possible.

DLR and DLR-based code is open source. Reuse existing Silverlight 2 controls.

2.1 class libraries

2.0 mscorlib

2.1mscorlib

2.0 mscorlib

2.0 mscorlib

2.0 mscorlib

Add new code from2.1

Mono Linker

Moonlight: APIs today

Moonlight 1.0 Tracks SL 1.0 No Mono. Testing new pipeline

Moonlight 1.1 Implements SL 1.1 Few missing features Development frozen

Moonlight 2.0 Track upcoming 2.0

Lots of changes Only started on 3.5

LINQ Others

Missing new work.

Moonlight SDK

Tools to develop Silverlight apps on Unix. Compiler (smcs) Class libraries. On Linux, MacOS X, Solaris

IDE Early Prototype of Silverlight designer written. Bringing our MonoDevelop IDE to MacOS X.

Wishes.

Work with other browser vendors: Opera, WebKit and Konqueror

Support BSD and custom Linux variants: Ship the binary codecs for those systems.

Use Moonlight on OSX for designer.

Mono

Mono. Our implementation of the CLR:

VM, JIT, AppDomains, GC, Remoting, etc. A re-implementation of the class libraries

Reflection, XML, etc ASP.NET, Web Services, ADO.NET

Compilers for most .NET languagesC# 3.0, VB.NETThird party compilers

Overall Progress.

2.0 mostly complete: Core, ASP.NET and ADO.NET are done Windows.Forms the only piece on hold.

3.5 the actual heir to 2.0: C# 3, LINQ, XLINQ mostly done Have not started on DLINQ

3.0 add-on: Only WCF in progress, no WPF at this point.

Microsoft's Open Source Code.

Reuse Microsoft-produced code: ASP.NET AJAX

Client side libraries. ASP.NET AJAX Control Toolkit.

Dynamic Language Runtime IronPython, IronRuby.

Visual Studio Deployment

Mono is binary compatible with .Net Same .DLL and .EXE file formats. Implements the same APIs.

Winforms or ASP.NET apps

Demo

Mono Migration Analysis

Demo

Recommended