BrainShare Presentation Template - Safe Harbor Statement
-
Upload
sampetruda -
Category
Documents
-
view
632 -
download
2
Transcript of BrainShare Presentation Template - Safe Harbor Statement
Safe Harbor StatementThe following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of features or functionality described for Novell products remains at the sole discretion of Novell.
Cross-Platform .NET: Mono and Moonlight
Joseph HillProduct [email protected]
© Novell Inc. All rights reserved
2
What is Mono®?
• 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 (mō•nō), 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
© Novell Inc. All rights reserved
3
Multi-platform, Multi-language
© Novell Inc. All rights reserved
4
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
• Devices– Nintendo Wii
– Sony Playstation 3
– iPhone
© Novell Inc. All rights reserved
5
APIs
ASP.NETASP.NET
Apache and FastCGI
Apache and FastCGI
System.DataSQL Server
System.DataSQL Server
ServerServer
Postgres, MySQLSqlite, Oracle, SybasePostgres, MySQL
Sqlite, Oracle, Sybase
Tao.FrameworkTao.Framework
C5C5
NDesk.DBusNDesk.DBus
Third PartyThird Party
Gtk#Gtk# Windows.FormsWindows.Forms
Cocoa#Cocoa#
ClientClient
Mono.CairoMono.CairoGdk#Gdk#
Pango#Pango#
Mono.RelaxNGMono.RelaxNGJava/IKVMJava/IKVM
Mono.ZeroConfMono.ZeroConf Mono.NatMono.NatMono.CecilMono.Cecil
Novell.LdapNovell.Ldap Mono.FuseMono.Fuse
Mono.AddinsMono.Addins
Gecko# (Mozilla)Gecko# (Mozilla)Mono.NatMono.NatMono.TorrentMono.Torrent Mono.UpnpMono.Upnp
InfrastructureInfrastructure
Tao.Framework\
© Novell Inc. All rights reserved
6
“Moonlight”: Silverlight for Linux
• Moonlight 1.0>Beta – 12/2/2008>Final – 2/11/2009 (Current)
• Moonlight 2.0>Alpha – 3/18/2009>Final – September 2009
• More Info:– http://mono-project.com/Moonlight
• FireFox Add-in:– http://go-mono.com/moonlight
© Novell Inc. All rights reserved
7
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
WCFWF
WPF
© Novell Inc. All rights reserved
8
Mono® 2.0 (October 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
WCFWF
WPF
© Novell Inc. All rights reserved
9
Mono® Today:Mono® 2.2 – January 2009
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
Sybase, MySQL, DB2, SQLite, etc
Win Forms 1.1 & 2.0
C# 1.0, 2.0, 3.0
GTK#
© Novell Inc. All rights reserved
10
New in Mono® 2.2
– New JIT engine (Linear IL)
– Full AOT, Full Generics Sharing
– Mono.Simd
– ASP.NET Routing
– C# Compiler Services> Shell
> C# Eval (Mono.CSharp.Evaluator)
© Novell Inc. All rights reserved
11
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
WCFWF
WPF
© Novell Inc. All rights reserved
12
Mono® Roadmap Mono 2.4 (March 09)
> ASP.NET 3.5 APIs
> MSBuild Alpha
> MonoDevelop 2.0
» Includes Integrated GUI debugger
> ASP.NET MVC
– Mono 2.6 (June 09)> Windows.Forms - OS X Update
> LINQ to DB integration
> MSBuild Alpha
> Silverlight 2.0 Preview
> Beta version of new multi-runtime, multi-target C# compiler
Mono 3.0TBD
http://www.mono-project.com/Roadmap
© Novell Inc. All rights reserved
13
Mono® Migration Analyzer (MoMA)
• Inspects CIL byte code
• Looks for uses, compares with implementation
– Missing methods
– Unmanaged Calls
– “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
© Novell Inc. All rights reserved
14
Develop Anywhere - Deploy Anywhere
• Mono includes a toolchain for Linux
– command-line C# & VB compilers
– MonoDevelop IDE
– Much More...
• Mono's runtime is also binary-compatible with .NET on Windows
– Use Visual Studio IDE to Develop, Compile, and Debug code
– Take advantage of tools available in the .NET ecosystem for profiling, static analysis, etc.
– Deploy to Linux, OS X, etc
© Novell Inc. All rights reserved
15
Commercial Mono®-based Apps
• Patient information system
• 3D game modeling tool
• Windows to Linux migration tool
• Test automation software
• Managed office wiki
• Instant messaging & social networking
• Cross-platform CRM
• Embeddable SQL database engine
–Hundreds of application developed using Mono, including:
© Novell Inc. All rights reserved
16
Case Study: Graffiti CMS
• Who– Telligent – Creators of Community Server
• Business Challenges– Windows-only solution limited market reach– Established competitors provide cross-platform offerings
• Mono Solution– Support for ASP.NET 2.0
> Host with apache or fastcgi servers
– Multiple Database backends> VistaDB
> MySQL
> SQL Server
> Access
http://www.graffiticms.com/
© Novell Inc. All rights reserved
17
Case Study: Codice
• Who– Developers of PlasticSCM configuration management– Extremely competitive market– Tradeoff between high-end expense and low-end functionality– Bring high-end SCM technology to small/medium software teams
• Business Challenges– Windows-only solution limited market reach– High-end features available and affordable on multiple platforms, while still
being easy to install and use– Advanced features like branch handling and security settings, without
imposing development restrictions– As powerful as Clearcase, easy to use, fast and affordable to any-sized team
• Mono Solution– Advanced features of C#– Single code-base for Windows/Linux– Fast time to market
http://www.codicesoftware.com/
© Novell Inc. All rights reserved
18
Mobile Devices
• Sansa Connect– First Wi-Fi™ based MP3 player from
SanDisk’s audio line; plays music, photos and Internet radio
– Running Linux, entire application stack is built on Mono, running on an ARM processor
– Developed by zing.net
– “Best in Show” at CES
I've been doing stuff like this for the past 4 or 5 years, I've been doing stuff like this for the past 4 or 5 years, and I can definitely say that mono is WAY better than and I can definitely say that mono is WAY better than MSFT's .NetCF.”MSFT's .NetCF.”
--Tim Nichols, Sansa Connect¸ Zing--Tim Nichols, Sansa Connect¸ Zing
© Novell Inc. All rights reserved
19
Case Study: Second Life
• Who– 3-D virtual world entirely built and owned by its Residents– Inhabited by 9,333,833 Residents from around the globe
• Business Challenges– As of August 2006, 3000 computers, growing at 300 machines/month– 12,000 distinct scripts, 3 million lines of script code (user code)– Current scripting language LSL running out of steam
• Mono Solution– High performance JIT VM– Existing LSL code JITed and optimized by Mono engine and run at native speeds– Gives developers the flexibility they need in using the LSL language– Opens the doors to the Second Life developers to use other CLI languages like C#,
Boo, Python or JavaScript side-by-side.– 50 – 150 times faster– Less than 50% of the memory use
http://www.secondlife.com
© Novell Inc. All rights reserved
20
Case Study: Otee
• Who– Creator of the Unity 3D game development system– Used by leading game development studios worldwide– "Best Use of Mac OS X Graphics" at Apple's World Wide Developer Conference
• Business Challenges– Python for scripting becoming too slow and unwieldy for growing code base– New solution had to be very fast because game code runs in real-time– Had to be portable to support making games for multiple platforms– Wide range of developer backgrounds, programming languages– Had to be easy to understand, accommodate wide range of users and skill levels
• Mono Solution– Allowed OTEE to give developers a choice between JavaScript, C# and Boo– Very short learning curve and immediate familiarity with scripting in Unity– Mono scripting provides power to create complex game logic, without sacrificing
performance.– Unity now enjoys a rapidly growing user base on both Windows and Mac OS X
http://unity3d.com/
© Novell Inc. All rights reserved
21
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/
© Novell Inc. All rights reserved
23
Embeddable Runtime.
• Mono® Virtual Machine:
– Embeddable in C/C++ applications.
– ~4Mb footprint for basic setup (uncompressed).
– Allows C code to call managed code.
– Allows managed code to call into main application.
• Fast:
– JIT engine provides the speed.
– Choice of languages.
© Novell Inc. All rights reserved
24
Mono Licensing
• Can I write commercial or proprietary applications that run with Mono?
– Yes. The licensing scheme is planned to allow proprietary developers to write applications with Mono.
• We use three open source licenses:> The C# Compiler and tools are released under the terms of the GNU
General Public License (Moving to MIT X11 in Mono 2.0)
> The runtime libraries are under the GNU Library GPL 2.0
> The class libraries are released under the terms of the MIT X11 license.
• Mono runtime and Mono C# Compiler are available under a proprietary license for those who can not use the LGPL and the GPL in their code.
Safe Harbor StatementThe following is intended to outline our general product direction. It is intended for information purposes only, and may
not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of features or functionality described for Novell products remains at the sole discretion of Novell.
General DisclaimerThis document is not to be construed as a promise by any participating company to develop, deliver, or market a product. Novell, Inc.,
makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc., reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All Novell marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.