Your SlideShare is downloading. ×
BrainShare Presentation Template - Safe Harbor Statement
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

BrainShare Presentation Template - Safe Harbor Statement


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • 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.
  • When we were about 70% complete with ASP.NET, ADO.NET, and Windows.Forms 2.0, we could run a lot of applications; however, we didn't really know what people were using, which controls, which bugs actually matter, etc. So, in November 06, 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. Beyond that, the tool provides a roadmap to developers to point them to which parts of their application may need modifications to be enabled to run on Linux.
  • Transcript

    • 1. Cross-Platform .NET: Mono and Moonlight Joseph Hill Product Manager
    • 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
    • 3. Multi-platform, Multi-language
    • 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
    • 5. APIs Tao.Framework ASP.NET Apache and FastCGI System.Data SQL Server Server Postgres, MySQL Sqlite, Oracle, Sybase Tao.Framework C5 NDesk.DBus Third Party Gtk# Windows.Forms Cocoa# Client Mono.Cairo Gdk# Pango# Mono.RelaxNG Java/IKVM Mono.ZeroConf Mono.Nat Mono.Cecil Novell.Ldap Mono.Fuse Mono.Addins Gecko# (Mozilla)‏ Mono.Nat Mono.Torrent Mono.Upnp Infrastructure
    • 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:
      • FireFox Add-in:
    • 7. Mono ® 1.0 (7/04) ‏ .NET 3.0 / .NET 3.5 .NET 2.0 C# 2.0 Generics Upgrades to stack. .NET 1.1 Server: ASP.NET Gtk# WinForms Upgrades to stack. C# 3.0 LINQ WCF WF WPF
    • 8. Mono ® 2.0 (October 08) ‏ .NET 3.0 / .NET 3.5 .NET 2.0 C# 2.0 Generics Upgrades to stack. .NET 1.1 Server: ASP.NET Gtk# WinForms Upgrades to stack. C# 3.0 LINQ WCF WF WPF
    • 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#
    • 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) ‏
    • 11. Mono ® 3.0 (Olive) ‏ .NET 3.0 / .NET 3.5 .NET 2.0 C# 2.0 Generics Upgrades to stack. .NET 1.1 Server: ASP.NET Gtk# WinForms Upgrades to stack. C# 3.0 LINQ WCF WF WPF
    • 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.0
            • TBD
    • 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
    • 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
    • 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:
    • 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
    • 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
    • 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
        • “ Best in Show” at CES
        • 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 MSFT's .NetCF.”
        • --Tim Nichols, Sansa Connect¸ Zing
    • 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
    • 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
    • 21. Getting Mono
      • Mono
      • MoMA
      • Moonlight
      • Mono projects
    • 22.  
    • 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.
    • 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.
    • 25. Safe Harbor Statement The 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 Disclaimer This 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.