SlideShare uma empresa Scribd logo
1 de 41
Cross-Platform .NET
               with Mono
               Frank Rego
               Product Manager
               frego@novell.com




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.
What is Mono®?

              Mono (mō•nō), n:
              1. A complete and modern development platform for Linux
              2. The necessary software to develop and run .NET client and
                 server applications on Linux, Solaris, Mac OS X, Windows,
                 and Unix
              3. “Monkey” in Spanish

    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
    © Novell Inc. All rights reserved
2
Mono® Development

        Development Groups:
    •


              18 developers at Novell
          –



        External contributors:
    •


              400+ collaborators over the history of Mono.
          –



              50+ active on a given month.
          –



        Not possible without open source community.
    •




    © Novell Inc. All rights reserved
3
Project Status
Goals

        Originally:
    •


              Improve our development platform on Linux.
          –


        As the community grew:
    •


              Expand to support Microsoft APIs.
          –


        As Mono® got more complete:
    •


              Provide a complete cross platform runtime.
          –


              Allow Windows developers to port to Linux.
          –




    © Novell Inc. All rights reserved
5
Mono® Architecture

        An open source implementation of the .NET standard
    •
        with three main components:

        Class library – comprehensive set
                                                Simplified Mono Architecture
          of facilities for application
          development that can be used by       Your Application (C#, others)
          any .NET language.
                                            1
        Common Language Runtime –                Class Library
         supports the execution of apps
         written in Intermediate Language
         (after compilation by                   Common Language
                                            2    Runtime
         Mono compiler)
        Operating System – .NET runs on
         Windows... Mono provides the
                                            3    Operating System
         framework to develop and run
         .NET code on multiple                                   1: Library
                                                                 2: Common Language Specification
         operating systems                                       3. Native Operating System API


    © Novell Inc. All rights reserved
6
Mono® Stacks

                                                                                                    D-Bus#
                                                      MySQL/Postgress                             Evolution#
                                        MySQL/Postgress         Gtk#/Gnome
    ASP.NET
          ASP.NET
     ASP.NET

                                                                                                 Novell APIs:
                                                              Mozilla                            Novell iFolder
                                             Mozilla                      Bonjour
                                                                                                 iFolder, LDAP

          ADO.NET                                          Apache Mono                              GTK#
                                          Apache Mono                                            Desktop: GTK#
    ADO.NET                                                               Identity
     ADO.NET


                                                            Novell LDAP                            Gnome#
                                                                                                      Cecil
                                           OpenOffice                     Sqlite#
        Windows.Forms
Windows.Forms                           Java Compatibility Compatibility
                                                         Java
 Windows.Forms                                                                                    Google APIs
                                                              Java Compatibility
    Microsoft Compatibility Libraries                                           Mono Libraries
    .NET Stack                                                     Mono Stack


                                        Virtual Machine: Multilanguage
                                                 Mono Runtime
                                             (Implementation of ECMA #335)




    © Novell Inc. All rights reserved
7
Platforms, CIL, Code Generation.

                                                                             x86
               C#

           Fortran

                                                                           SPAR
             Eiffel
                                                                           C
              C++                         Common       Code Generation:
                                        Intermediate                      StrongAR
                                                          Just-In-Time
                                          Language     or Ahead-of-Time   M
        JavaScript

      Visual Basic
                                                                            s390
             Java

            Cobol
                                                                          PowerPC

    © Novell Inc. All rights reserved
8
Platform Support

        32 bit:                             Operating Systems:
    •                                   •

               x86                               Linux
           –                                 –

               SPARC                             Solaris
           –                                 –

               S390, IBM                         MacOS X
           –                                 –

               ARM family                        Windows
           –                                 –

               PowerPC                           Nokia/Maemo
           –                                 –

        64 bit:
    •

                                            Contributed ports:
               x86-64                   •
           –

               s390x, IBM                        Alpha, MIPS (not finished).
           –                                 –

               Itanium
           –




    © Novell Inc. All rights reserved
9
Language Support

         C# 1.0, C# 2.0: Work on C# 3.0 to start soon.
     •

         VB.NET: New compiler for Mono
     •

         Java: IKVM library provides Java compatibility, Uses GNU Classpath
     •

         Boo: Explicitly typed, Python-inspired language..
     •

         IronPython: Microsoft's own open source implementation.
     •

         Nemerle: New hybrid (functional, object-oriented and imperative)
     •

         Phalanger: PHP compiler, commercial, recently open sourced.
     •

         Ruby.NET (under development): University of Queensland
     •

         PHP.NET (under development): Google summer of code 2005
     •




     © Novell Inc. All rights reserved
10
Visual Basic.NET

         New Compiler
     •

               A new from-scratch effort, written in Visual Basic 8
           –

               Implements VB.NET 8 (Generics)
           –

               Essential for ASP.NET support (ASP.NET has to be able to
           –
               compile VB code found in ASPX files at runtime)
               Can do Visual Basic development *in* Linux (as opposed to
           –

               using Linux only as a deployment target)
               Included in Mono® 1.2.4 release
           –

                     Visual Basic 8 compiler – targets 2.0 framework
                 >

                     Mainsoft's Visual Basic runtime for 2.0. - supports both 1.0 and
                 >
                     2.0 profiles.
               MonoDevelop v 0.14 includes VB support
           –



     © Novell Inc. All rights reserved
11
Mono® 1.0 (7/04)


       Windows Vista: .Net 3.0: 2007


                   .NET 2.0                                               Server:
                                                                         WCF/Indigo



                       .NET 1.1                              C# 2.0
                                                            Generics



                          Server:                                          Client
                                         Gtk#   WinForms
                          ASP.NET                          Upgrades to   WPF/Avalon
                                                             stack.




     © Novell Inc. All rights reserved
12
Mono® 1.2 (11/06)


       Windows Vista: .Net 3.0: 2007


                   .NET 2.0                                               Server:
                                                                         WCF/Indigo



                       .NET 1.1                              C# 2.0
                                                            Generics



                          Server:                                          Client
                                         Gtk#   WinForms
                          ASP.NET                          Upgrades to   WPF/Avalon
                                                             stack.




     © Novell Inc. All rights reserved
13
Mono® 1.2 Details

         Reliability and scalability:          .NET 2.0
     •                                     •

               ZenWorks and iFolder                 C# 2.0 Complete
           –                                    –
               pushed Mono on the server            Some 2.0 API support.
                                                –

               xsp 1.0: 8 request/second
           –
                                                    IronPython works.
                                                –
               xsp 1.2: 250
           –
                                               Debugger:
                                           •
               request/second
                                                    x86 and x86-64 debugger.
                                                –
         GUI
     •
                                                    CLI-only, limited in
                                                –
               Windows Forms 1.1 debuts.
           –
                                                    scenarios (no xsp).
               Gtk# 2.x series: updated
           –
                                                    Needs usability testing.
                                                –
               binding, updated to Gtk+
               2.8


     © Novell Inc. All rights reserved
14
Mono® 1.2.4 Details
     Since the release in November 9th of 2006 of Mono 1.2, we
     have made four incremental updates to Mono with the
     following highlights:

         VB.NET compiler and runtime were            Improved fidelity and performance of
     •                                           •
         released.                                   System.Drawing, support for Metafiles.
         2.0 support completed for Web               MSBuild able to build projects.
     •                                           •
         Services (Generics).                        SafeHandles, HandleRef support.
                                                 •
         ASP.NET WebForms are complete
     •
                                                     MIPS, Alpha ports and Solaris/amd64
                                                 •
         (except for WebParts).                      ports.
         Extensive improvements to
     •
                                                     Mono can now run without shared
                                                 •
         Windows.Forms and 2.0 updates for it.       memory segments.
         Release of Mono Migration Assistant.
     •
                                                     New Mono.DataConvert library
                                                 •
         Partial C# 3 support and System.Core
     •
                                                     ADO.NET 2.0 updates, and support for
                                                 •
         assembly.                                   output parameters on stored
         System.Media implemented.                   procedures
     •

         HTTPS support in HttpListener.              installvst tool for installing ASP.NET
     •                                           •
                                                     starter kits.
         2.0 Socket API
     •
                                                     New Sqlite bindings.
                                                 •

     © Novell Inc. All rights reserved
15
Mono® 2.0


       Windows Vista: .Net 3.0: 2007


                   .NET 2.0                                               Server:
                                                                         WCF/Indigo



                       .NET 1.1                              C# 2.0
                                                            Generics



                          Server:                                          Client
                                         Gtk#   WinForms
                          ASP.NET                          Upgrades to   WPF/Avalon
                                                             stack.




     © Novell Inc. All rights reserved
16
Mono 2.0 Directions

         Mono® 2.0: Core.                        Gtk#
     •                                       •

               .NET 2.0 API support.                  Databinding support.
           –                                      –

               CAS available.
           –

               New optimizations.
           –
                                                 Languages:
                                             •
               Compacting GC.
           –
                                                      VB compiler
                                                  –
               MonoDevelop + Debugger.
           –
                                                      GCC-based compilers
                                                  –




         Improve Support:
     •                                           Schedule
                                             •
               Windows integration, build.
           –
                                                      ASP.NET 1H 2007
                                                  –

               Visual Studio integration.
           –
                                                      WinForms 2H 2007
                                                  –

               MacOS X and X-Code.
           –


     © Novell Inc. All rights reserved
17
C# 3.0

         Mono® will support C# 3.0
     •


               Largely incremental release
           –


               C# 3.0 introduces several language extensions that build on
           –

               C# 2.0 to support the creation and use of higher order,
               functional style class libraries.

                     implicitly typed local variables, extension methods, lambda expressions,
                 >
                     object initializers, expression trees, and language integrated query (LINQ)

               Need to fix as many bugs as possible in C# 2.0
           –
               implementation before starting to work on C# 3.0




     © Novell Inc. All rights reserved
18
Olive Project

     A set of add-on libraries for the Mono® core that bring some of
     the new .NET APIs to Mono.
         Currently Olive contains:
     •                                                        .NET 3.0 Stack in Vista
                Workflow APIs
            –
                                                                                       .NET Development
                                                         .NET 3.0 Applications
                Communication Foundation APIs.                                               Tools
            –

                System.Query
            –
                                                                            .NET 3.0
                System.Xml.XLinq
            –
                                                            WCF         WPF           WCS         WWF
                                                          (Indigo)    (Avalon)     (infocard)   (Workflow)
                PresentationFramework and
            –
                WindowsBase (only XAML support)
                                                            .NET 2.0 CLR .NET 2.0 Base Class Libraries
                                                            ASP .NET 2.0 ASO.NET 2,0, WinForms 2.0
         Status
     •

                Pre-alpha state, API is still shifting
            –
                                                                           Windows
                                                              (Windows XP,Windows Server 2003/R2
                Development still in very early stages
            –                                                           Vista/Longhorn)

                Contributions, bug reports welcome
            –
                                                                          PC Hardware

                2009 target
            –

     © Novell Inc. All rights reserved
19
Mono and Silverlight
         Cross-browser plug-in for creating next
     •
         generation rich interactive applications
         Aimed at the Web, a way of spicing up
     •

         existing web applications without
         rewriting what already works.
         Mono project team developed the
     •

         Silverlight implementation in 21 days.
         Mono port
     •

               Allows Linux/Unix users to have access
           –
               to content produced with it
               Use Linux as a developer platform for
           –
               Silverlight-powered web sites.
               Use .NET languages to create Web
           –
               applications that run on any Linux device
               or other platforms that Mono supports.



     © Novell Inc. All rights reserved
20
Mono® Project Roadmap
Mono 1.2 (Q406)        Mono 1.2.4 (May'07)        Mono 2.0 (Q307)         Mono 2.2 (Q407)                                 Olive (Mono 3.0 – mid 2008)
• WinForms 1.1         • VB.NET compiler          • ASP.NET 2.0           • WinForms 2.0                                  • Windows Workflow (WF)

• C# 2.0 w/generics    • 2.0 Web Services         • ADO.NET 2.0           • Compacting GC                                 • Windows Comm. (WCF)

• System.XML 2.0         (Generics).              • WinForms 2.0 Preview • JIT optimization (Phase 2)                     • LINQ: Language Integrated Query

• Full SLES hardware   • ASP.NET WebForms         • Visual Basic Compiler • Olive (.NET 3.0) preview                      • JIT optimization (Phase 3)

  support              • Windows.Forms            • Windows Dev Tools     • C# 3.0 preview                                • GC tuning

                         improvements             • GUI Debugger                                                          • Silverlight

                       • Mono Migration Assistant

                       • Partial C# 3.0 support

                       • Other features (below)




                               1H                                 2H                                        1H                               2H

      2006                                                                                                                  2008
                                              2007


                                              Mono 1.2.4 Updates (Continued)
                                                    System.Core assembly.                   Mono can now run without shared
                                                •                                       •

                                                    System.Media                            memory segments.
                                                •


                                                    HTTPS support in HttpListener.          New Mono.DataConvert library
                                                •                                       •


                                                    2.0 Socket API.                         ADO.NET 2.0 updates, and support for
                                                •                                       •


                                                    System.Drawing updates                  output parameters on stored
                                                •

                                                    Mono MSBuild                            procedures.
                                                •

                                                    SafeHandles and HandleRef support       installvst tool for installing ASP.NET
                                                •                                       •

                                                    MIPS, Alpha, Solaris/AMD64 ports        starter kits.
                                                •

                                                                                            New Sqlite bindings.
                                                •                                       •




        Mono
        • As an open source project Mono is in a continuous release cycle
        • This roadmap is subject to change due to shifting priorities and market conditions
        • After each .x release, smaller .x.x and .x.x.x releases occur on a regular basis via the Mono-project website as new contributions are added
       © Novell Inc. All rights reserved
21
Porting to Mono®
Mono® Migration Analyzer (MoMA)
http://www.mono-project.com/Moma
     New tool for migrating .NET
 •
     code
     Inspects CIL byte code
 •


     Looks for uses, compares
 •
     with implementation
     Missing methods
 •


     “Todo” methods (flagged
 •
     with an attribute)




          © Novell Inc. All rights reserved
     23
MoMA Results Nov-Feb

    ~1,500 results received in 3 months
•

          11% port today
     –

          16% are VisualBasic.NET applications.
     –

          67% use Windows.Forms
     –

                                                               Today
          3% use EnterpriseServices, 2%
     –
                                                               Mono 1.2.5
          MessageQueuing
                                                               Mono 1.2.7
          7% use System.Management                             < 20 Changes
     –
                                                               [20.40] Changes
                We are not implementing, we are going to WCF
           >
                                                               [40,90] Changes
                directly.
                                                               [90,-] Changes
          24% connect to databases.
     –

          20% hit “To-Do”s (not very accurate)
     –

          28% are .NET 1.1, 72% are .NET 2.0
     –




               © Novell Inc. All rights reserved
     24
Performance Optimizations
Performance
               We are on par with other similar systems
           The Computer Language Benchmarks Game   http://shootout.alioth.debian.org/




                Java 6                                                  Python
     © Novell Inc. All rights reserved
26
IronPython Performance Improvement


     75000
     70000
     65000
     60000
     55000
     50000
                                                     IronPython 1.0 Mono 1.1.13
     45000
                                                     Python 2.4.2
     40000
                                                     IronPython Mono 1.2.1
     35000                                           IronPython 1.1B1 Mono
                                                     1.2.3
     30000
     25000
     20000
     15000
     10000
      5000
         0
                                           PyStone


       © Novell Inc. All rights reserved
27
Mono® Successes
Driving Desktop Innovation

         By improving the developer's
     •
         productivity on Linux, Mono® is
         driving innovation on the Linux
         Desktop:

         Beagle® – desktop search tool
     •


         Banshee – music jukebox
     •                      TM




         Dashboard – personal assistant
     •


         F-spot – photo organizer
     •


         TomBoy – note-taking app
     •


     •

     © Novell Inc. All rights reserved
29
Commercial Mono®-based Apps

         Hundreds of application developed using Mono,
     •
         including:
                        • 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
                                         •

     © Novell Inc. All rights reserved
30
Games
         Unity: 3D Game Development
     •
               C/C++ Core
           –

               Mono for high-level operations
           –

               Multiple-languages: JavaScript, Boo and
           –
               Mono

         Second Life: Virtual World
     •

               3000 computers in August, growing at
           –
               300 machines/month.
               12,000 distinct scripts, 3 million lines of
           –
               script code (user code)
               Mono gives 50-150x performance
           –
               increase in scripts, access to more
               languages, specialize the AI.
               Programs consume half the memory.
           –




     © Novell Inc. All rights reserved
31
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,
 and I can definitely say that mono is WAY better than
 MSFT's .NetCF.”
                                                    --Tim Nichols, Sansa Connect¸ Zing
     © Novell Inc. All rights reserved
32
GUI Toolkits &
Development Environments
Three GUI Toolkits

         Gtk#
     •


               Native for Linux
           –


               A .NET binding for all GNOME APIs
           –


         Windows.Forms:
     •


               Support for 1.1 on the initial release
           –


         Cocoa# and Dumbarton
     •


               Frameworks for building native OS/X applications
           –


               Binds Cocoa, native API.
           –


     © Novell Inc. All rights reserved
34
Developing with MonoDevelop

     Free Gnome IDE
 •
          Code completion
      –

          Class management
      –

          Built-in help
      –

          Glade integration
      –

          VB support
      –

          v 0.14 today
      –

               Subversion add-in.
           >

               Refactoring operations.
           >

               New smart indenting for C#
           >

               Project exporting and conversion (includes Visual Studio 2005)
           >

               New features in Gtk# designer.
           >

               Desktop Integration Features (editor for launchers, .desktop files).
           >



      © Novell Inc. All rights reserved
35
Licensing
Mono® Licensing

         Licenses chosen to maximize adoption.
     •



         Open Source licensed.
     •

               Standalone compilers: GPL
           –

               Mono Class libraries: MIT X11
           –

               Runtime engine: LGPL
           –




         Novell® retains the copyright
     •

               Dual license for compiler and runtime under other terms.
           –

               Novell relicenses Mono for embedded vendors.
           –




     © Novell Inc. All rights reserved
37
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
38
Mono® Resources
         Mono community
     •

               http://mono-project.com/Mailing_Lists
           –


               IRC Chat Room #mono on the irc.gnome.org server
           –


         Mono project website www.mono-project.com
     •

               Download Mono, Mono VM, Tools
           –

               Tutorials, Training
           –


         Mono virtual machine
     •
               Runs on any Windows or Linux computer that has VMware
           –
               Workstation or the free VMware player.
               Comes with preconfigured Mono installation that contain everything
           –
               you need to get started with Mono
         Novell® consulting
     •

               Deployment, migration services
           –

     © Novell Inc. All rights reserved
39
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.


Unpublished Work of Novell, Inc. All Rights Reserved.
This work is an unpublished work and contains confidential, proprietary, and trade secret information of Novell, Inc. Access to this work
is restricted to Novell employees who have a need to know to perform tasks within the scope of their assignments. No part of this work
may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted
without the prior written consent of Novell, Inc. Any use or exploitation of this work without authorization could subject the perpetrator to
criminal and civil liability.


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.

Mais conteúdo relacionado

Mais procurados

Codescape Debugger 8
Codescape Debugger 8Codescape Debugger 8
Codescape Debugger 8
Damien Ruscoe
 

Mais procurados (20)

Debugging of (C)Python applications
Debugging of (C)Python applicationsDebugging of (C)Python applications
Debugging of (C)Python applications
 
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
 
Project Zero Php Quebec
Project Zero Php QuebecProject Zero Php Quebec
Project Zero Php Quebec
 
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
 
Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011
 
(phpconftw2012) PHP as a Middleware in Embedded Systems
(phpconftw2012) PHP as a Middleware in Embedded Systems(phpconftw2012) PHP as a Middleware in Embedded Systems
(phpconftw2012) PHP as a Middleware in Embedded Systems
 
FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for Linux
 
Divya_Resume
Divya_ResumeDivya_Resume
Divya_Resume
 
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework
 
Project Zero JavaOne 2008
Project Zero JavaOne 2008Project Zero JavaOne 2008
Project Zero JavaOne 2008
 
Nerves Project Intro to ErlangDC
Nerves Project Intro to ErlangDCNerves Project Intro to ErlangDC
Nerves Project Intro to ErlangDC
 
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
 
Codescape Debugger 8
Codescape Debugger 8Codescape Debugger 8
Codescape Debugger 8
 
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
 
Java basics.....
Java basics.....Java basics.....
Java basics.....
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
 
DEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depthDEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depth
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 

Destaque (9)

.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 
Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!
 
Cross plataform development with mono [fonts]
Cross plataform development with mono [fonts]Cross plataform development with mono [fonts]
Cross plataform development with mono [fonts]
 
TNAPS 3 Installation
TNAPS 3 InstallationTNAPS 3 Installation
TNAPS 3 Installation
 
.NET Open Source 2009
.NET Open Source 2009.NET Open Source 2009
.NET Open Source 2009
 
Apresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasicApresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasic
 
Int305 projeto mono-final
Int305 projeto mono-finalInt305 projeto mono-final
Int305 projeto mono-final
 
Semana Interop: Desenvolvendo Asp.NET para Linux
Semana Interop: Desenvolvendo Asp.NET para LinuxSemana Interop: Desenvolvendo Asp.NET para Linux
Semana Interop: Desenvolvendo Asp.NET para Linux
 
Abertura - interopmix2014
Abertura - interopmix2014Abertura - interopmix2014
Abertura - interopmix2014
 

Semelhante a Os Rego

Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
Jonas Follesø
 
WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014
Minko3D
 
Cross Platform Net Development With Mono And My Sql Presentation
Cross Platform  Net Development With Mono And My Sql PresentationCross Platform  Net Development With Mono And My Sql Presentation
Cross Platform Net Development With Mono And My Sql Presentation
snowland nk
 
Introduction to .NET with C# @ university of wayamba
Introduction to .NET with C# @ university of wayambaIntroduction to .NET with C# @ university of wayamba
Introduction to .NET with C# @ university of wayamba
Prageeth Sandakalum
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
Faisal Aziz
 
ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1
Sisir Ghosh
 

Semelhante a Os Rego (20)

Droidcon 2011: Mosync mobile framework, Stefan Sels, Tronicum
Droidcon 2011: Mosync mobile framework, Stefan Sels, TronicumDroidcon 2011: Mosync mobile framework, Stefan Sels, Tronicum
Droidcon 2011: Mosync mobile framework, Stefan Sels, Tronicum
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
 
Future of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows PlatformsFuture of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows Platforms
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saber
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and MonotouchDelphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
 
.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions
 
Best DotNet Training in Delhi
Best   DotNet Training  in DelhiBest   DotNet Training  in Delhi
Best DotNet Training in Delhi
 
Academy PRO: .NET Core intro
Academy PRO: .NET Core introAcademy PRO: .NET Core intro
Academy PRO: .NET Core intro
 
Csharp dot net
Csharp dot netCsharp dot net
Csharp dot net
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
 
Tutorial c#
Tutorial c#Tutorial c#
Tutorial c#
 
WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014
 
Cross Platform Net Development With Mono And My Sql Presentation
Cross Platform  Net Development With Mono And My Sql PresentationCross Platform  Net Development With Mono And My Sql Presentation
Cross Platform Net Development With Mono And My Sql Presentation
 
Introduction to .NET with C# @ university of wayamba
Introduction to .NET with C# @ university of wayambaIntroduction to .NET with C# @ university of wayamba
Introduction to .NET with C# @ university of wayamba
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
 
Meego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiMeego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea Grandi
 
Embarcadero RAD Studio XE3 presentation
Embarcadero RAD Studio XE3 presentationEmbarcadero RAD Studio XE3 presentation
Embarcadero RAD Studio XE3 presentation
 
ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1
 
A Comparison of .NET Framework vs. Java Virtual Machine
A Comparison of .NET Framework vs. Java Virtual MachineA Comparison of .NET Framework vs. Java Virtual Machine
A Comparison of .NET Framework vs. Java Virtual Machine
 

Mais de oscon2007

J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
oscon2007
 
Solr Presentation5
Solr Presentation5Solr Presentation5
Solr Presentation5
oscon2007
 
Os Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman WiifmOs Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman Wiifm
oscon2007
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Mole
oscon2007
 
Os Lanphier Brashears
Os Lanphier BrashearsOs Lanphier Brashears
Os Lanphier Brashears
oscon2007
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swp
oscon2007
 
Os Berlin Dispelling Myths
Os Berlin Dispelling MythsOs Berlin Dispelling Myths
Os Berlin Dispelling Myths
oscon2007
 
Os Keysholistic
Os KeysholisticOs Keysholistic
Os Keysholistic
oscon2007
 
Os Jonphillips
Os JonphillipsOs Jonphillips
Os Jonphillips
oscon2007
 
Os Urnerupdated
Os UrnerupdatedOs Urnerupdated
Os Urnerupdated
oscon2007
 

Mais de oscon2007 (20)

J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
 
Solr Presentation5
Solr Presentation5Solr Presentation5
Solr Presentation5
 
Os Borger
Os BorgerOs Borger
Os Borger
 
Os Harkins
Os HarkinsOs Harkins
Os Harkins
 
Os Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman WiifmOs Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman Wiifm
 
Os Bunce
Os BunceOs Bunce
Os Bunce
 
Yuicss R7
Yuicss R7Yuicss R7
Yuicss R7
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Mole
 
Os Fogel
Os FogelOs Fogel
Os Fogel
 
Os Lanphier Brashears
Os Lanphier BrashearsOs Lanphier Brashears
Os Lanphier Brashears
 
Os Tucker
Os TuckerOs Tucker
Os Tucker
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swp
 
Os Furlong
Os FurlongOs Furlong
Os Furlong
 
Os Berlin Dispelling Myths
Os Berlin Dispelling MythsOs Berlin Dispelling Myths
Os Berlin Dispelling Myths
 
Os Kimsal
Os KimsalOs Kimsal
Os Kimsal
 
Os Pruett
Os PruettOs Pruett
Os Pruett
 
Os Alrubaie
Os AlrubaieOs Alrubaie
Os Alrubaie
 
Os Keysholistic
Os KeysholisticOs Keysholistic
Os Keysholistic
 
Os Jonphillips
Os JonphillipsOs Jonphillips
Os Jonphillips
 
Os Urnerupdated
Os UrnerupdatedOs Urnerupdated
Os Urnerupdated
 

Último

Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service NoidaCall Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
dlhescort
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
daisycvs
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
amitlee9823
 
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
lizamodels9
 

Último (20)

The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
 
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service NoidaCall Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
 
JAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
JAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRLJAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
JAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and pains
 
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
 
Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptx
 
Falcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in indiaFalcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in india
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
 
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
 
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
 
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceMalegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Business Model Canvas (BMC)- A new venture concept
Business Model Canvas (BMC)-  A new venture conceptBusiness Model Canvas (BMC)-  A new venture concept
Business Model Canvas (BMC)- A new venture concept
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1
 
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st CenturyFamous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Century
 

Os Rego

  • 1. Cross-Platform .NET with Mono Frank Rego Product Manager frego@novell.com 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.
  • 2. What is Mono®? Mono (mō•nō), n: 1. A complete and modern development platform for Linux 2. The necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix 3. “Monkey” in Spanish 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 © Novell Inc. All rights reserved 2
  • 3. Mono® Development Development Groups: • 18 developers at Novell – External contributors: • 400+ collaborators over the history of Mono. – 50+ active on a given month. – Not possible without open source community. • © Novell Inc. All rights reserved 3
  • 5. Goals Originally: • Improve our development platform on Linux. – As the community grew: • Expand to support Microsoft APIs. – As Mono® got more complete: • Provide a complete cross platform runtime. – Allow Windows developers to port to Linux. – © Novell Inc. All rights reserved 5
  • 6. Mono® Architecture An open source implementation of the .NET standard • with three main components: Class library – comprehensive set Simplified Mono Architecture of facilities for application development that can be used by Your Application (C#, others) any .NET language. 1 Common Language Runtime – Class Library supports the execution of apps written in Intermediate Language (after compilation by Common Language 2 Runtime Mono compiler) Operating System – .NET runs on Windows... Mono provides the 3 Operating System framework to develop and run .NET code on multiple 1: Library 2: Common Language Specification operating systems 3. Native Operating System API © Novell Inc. All rights reserved 6
  • 7. Mono® Stacks D-Bus# MySQL/Postgress Evolution# MySQL/Postgress Gtk#/Gnome ASP.NET ASP.NET ASP.NET Novell APIs: Mozilla Novell iFolder Mozilla Bonjour iFolder, LDAP ADO.NET Apache Mono GTK# Apache Mono Desktop: GTK# ADO.NET Identity ADO.NET Novell LDAP Gnome# Cecil OpenOffice Sqlite# Windows.Forms Windows.Forms Java Compatibility Compatibility Java Windows.Forms Google APIs Java Compatibility Microsoft Compatibility Libraries Mono Libraries .NET Stack Mono Stack Virtual Machine: Multilanguage Mono Runtime (Implementation of ECMA #335) © Novell Inc. All rights reserved 7
  • 8. Platforms, CIL, Code Generation. x86 C# Fortran SPAR Eiffel C C++ Common Code Generation: Intermediate StrongAR Just-In-Time Language or Ahead-of-Time M JavaScript Visual Basic s390 Java Cobol PowerPC © Novell Inc. All rights reserved 8
  • 9. Platform Support 32 bit: Operating Systems: • • x86 Linux – – SPARC Solaris – – S390, IBM MacOS X – – ARM family Windows – – PowerPC Nokia/Maemo – – 64 bit: • Contributed ports: x86-64 • – s390x, IBM Alpha, MIPS (not finished). – – Itanium – © Novell Inc. All rights reserved 9
  • 10. Language Support C# 1.0, C# 2.0: Work on C# 3.0 to start soon. • VB.NET: New compiler for Mono • Java: IKVM library provides Java compatibility, Uses GNU Classpath • Boo: Explicitly typed, Python-inspired language.. • IronPython: Microsoft's own open source implementation. • Nemerle: New hybrid (functional, object-oriented and imperative) • Phalanger: PHP compiler, commercial, recently open sourced. • Ruby.NET (under development): University of Queensland • PHP.NET (under development): Google summer of code 2005 • © Novell Inc. All rights reserved 10
  • 11. Visual Basic.NET New Compiler • A new from-scratch effort, written in Visual Basic 8 – Implements VB.NET 8 (Generics) – Essential for ASP.NET support (ASP.NET has to be able to – compile VB code found in ASPX files at runtime) Can do Visual Basic development *in* Linux (as opposed to – using Linux only as a deployment target) Included in Mono® 1.2.4 release – Visual Basic 8 compiler – targets 2.0 framework > Mainsoft's Visual Basic runtime for 2.0. - supports both 1.0 and > 2.0 profiles. MonoDevelop v 0.14 includes VB support – © Novell Inc. All rights reserved 11
  • 12. Mono® 1.0 (7/04) Windows Vista: .Net 3.0: 2007 .NET 2.0 Server: WCF/Indigo .NET 1.1 C# 2.0 Generics Server: Client Gtk# WinForms ASP.NET Upgrades to WPF/Avalon stack. © Novell Inc. All rights reserved 12
  • 13. Mono® 1.2 (11/06) Windows Vista: .Net 3.0: 2007 .NET 2.0 Server: WCF/Indigo .NET 1.1 C# 2.0 Generics Server: Client Gtk# WinForms ASP.NET Upgrades to WPF/Avalon stack. © Novell Inc. All rights reserved 13
  • 14. Mono® 1.2 Details Reliability and scalability: .NET 2.0 • • ZenWorks and iFolder C# 2.0 Complete – – pushed Mono on the server Some 2.0 API support. – xsp 1.0: 8 request/second – IronPython works. – xsp 1.2: 250 – Debugger: • request/second x86 and x86-64 debugger. – GUI • CLI-only, limited in – Windows Forms 1.1 debuts. – scenarios (no xsp). Gtk# 2.x series: updated – Needs usability testing. – binding, updated to Gtk+ 2.8 © Novell Inc. All rights reserved 14
  • 15. Mono® 1.2.4 Details Since the release in November 9th of 2006 of Mono 1.2, we have made four incremental updates to Mono with the following highlights: VB.NET compiler and runtime were Improved fidelity and performance of • • released. System.Drawing, support for Metafiles. 2.0 support completed for Web MSBuild able to build projects. • • Services (Generics). SafeHandles, HandleRef support. • ASP.NET WebForms are complete • MIPS, Alpha ports and Solaris/amd64 • (except for WebParts). ports. Extensive improvements to • Mono can now run without shared • Windows.Forms and 2.0 updates for it. memory segments. Release of Mono Migration Assistant. • New Mono.DataConvert library • Partial C# 3 support and System.Core • ADO.NET 2.0 updates, and support for • assembly. output parameters on stored System.Media implemented. procedures • HTTPS support in HttpListener. installvst tool for installing ASP.NET • • starter kits. 2.0 Socket API • New Sqlite bindings. • © Novell Inc. All rights reserved 15
  • 16. Mono® 2.0 Windows Vista: .Net 3.0: 2007 .NET 2.0 Server: WCF/Indigo .NET 1.1 C# 2.0 Generics Server: Client Gtk# WinForms ASP.NET Upgrades to WPF/Avalon stack. © Novell Inc. All rights reserved 16
  • 17. Mono 2.0 Directions Mono® 2.0: Core. Gtk# • • .NET 2.0 API support. Databinding support. – – CAS available. – New optimizations. – Languages: • Compacting GC. – VB compiler – MonoDevelop + Debugger. – GCC-based compilers – Improve Support: • Schedule • Windows integration, build. – ASP.NET 1H 2007 – Visual Studio integration. – WinForms 2H 2007 – MacOS X and X-Code. – © Novell Inc. All rights reserved 17
  • 18. C# 3.0 Mono® will support C# 3.0 • Largely incremental release – C# 3.0 introduces several language extensions that build on – C# 2.0 to support the creation and use of higher order, functional style class libraries. implicitly typed local variables, extension methods, lambda expressions, > object initializers, expression trees, and language integrated query (LINQ) Need to fix as many bugs as possible in C# 2.0 – implementation before starting to work on C# 3.0 © Novell Inc. All rights reserved 18
  • 19. Olive Project A set of add-on libraries for the Mono® core that bring some of the new .NET APIs to Mono. Currently Olive contains: • .NET 3.0 Stack in Vista Workflow APIs – .NET Development .NET 3.0 Applications Communication Foundation APIs. Tools – System.Query – .NET 3.0 System.Xml.XLinq – WCF WPF WCS WWF (Indigo) (Avalon) (infocard) (Workflow) PresentationFramework and – WindowsBase (only XAML support) .NET 2.0 CLR .NET 2.0 Base Class Libraries ASP .NET 2.0 ASO.NET 2,0, WinForms 2.0 Status • Pre-alpha state, API is still shifting – Windows (Windows XP,Windows Server 2003/R2 Development still in very early stages – Vista/Longhorn) Contributions, bug reports welcome – PC Hardware 2009 target – © Novell Inc. All rights reserved 19
  • 20. Mono and Silverlight Cross-browser plug-in for creating next • generation rich interactive applications Aimed at the Web, a way of spicing up • existing web applications without rewriting what already works. Mono project team developed the • Silverlight implementation in 21 days. Mono port • Allows Linux/Unix users to have access – to content produced with it Use Linux as a developer platform for – Silverlight-powered web sites. Use .NET languages to create Web – applications that run on any Linux device or other platforms that Mono supports. © Novell Inc. All rights reserved 20
  • 21. Mono® Project Roadmap Mono 1.2 (Q406) Mono 1.2.4 (May'07) Mono 2.0 (Q307) Mono 2.2 (Q407) Olive (Mono 3.0 – mid 2008) • WinForms 1.1 • VB.NET compiler • ASP.NET 2.0 • WinForms 2.0 • Windows Workflow (WF) • C# 2.0 w/generics • 2.0 Web Services • ADO.NET 2.0 • Compacting GC • Windows Comm. (WCF) • System.XML 2.0 (Generics). • WinForms 2.0 Preview • JIT optimization (Phase 2) • LINQ: Language Integrated Query • Full SLES hardware • ASP.NET WebForms • Visual Basic Compiler • Olive (.NET 3.0) preview • JIT optimization (Phase 3) support • Windows.Forms • Windows Dev Tools • C# 3.0 preview • GC tuning improvements • GUI Debugger • Silverlight • Mono Migration Assistant • Partial C# 3.0 support • Other features (below) 1H 2H 1H 2H 2006 2008 2007 Mono 1.2.4 Updates (Continued) System.Core assembly. Mono can now run without shared • • System.Media memory segments. • HTTPS support in HttpListener. New Mono.DataConvert library • • 2.0 Socket API. ADO.NET 2.0 updates, and support for • • System.Drawing updates output parameters on stored • Mono MSBuild procedures. • SafeHandles and HandleRef support installvst tool for installing ASP.NET • • MIPS, Alpha, Solaris/AMD64 ports starter kits. • New Sqlite bindings. • • Mono • As an open source project Mono is in a continuous release cycle • This roadmap is subject to change due to shifting priorities and market conditions • After each .x release, smaller .x.x and .x.x.x releases occur on a regular basis via the Mono-project website as new contributions are added © Novell Inc. All rights reserved 21
  • 23. Mono® Migration Analyzer (MoMA) http://www.mono-project.com/Moma New tool for migrating .NET • code Inspects CIL byte code • Looks for uses, compares • with implementation Missing methods • “Todo” methods (flagged • with an attribute) © Novell Inc. All rights reserved 23
  • 24. MoMA Results Nov-Feb ~1,500 results received in 3 months • 11% port today – 16% are VisualBasic.NET applications. – 67% use Windows.Forms – Today 3% use EnterpriseServices, 2% – Mono 1.2.5 MessageQueuing Mono 1.2.7 7% use System.Management < 20 Changes – [20.40] Changes We are not implementing, we are going to WCF > [40,90] Changes directly. [90,-] Changes 24% connect to databases. – 20% hit “To-Do”s (not very accurate) – 28% are .NET 1.1, 72% are .NET 2.0 – © Novell Inc. All rights reserved 24
  • 26. Performance We are on par with other similar systems The Computer Language Benchmarks Game http://shootout.alioth.debian.org/ Java 6 Python © Novell Inc. All rights reserved 26
  • 27. IronPython Performance Improvement 75000 70000 65000 60000 55000 50000 IronPython 1.0 Mono 1.1.13 45000 Python 2.4.2 40000 IronPython Mono 1.2.1 35000 IronPython 1.1B1 Mono 1.2.3 30000 25000 20000 15000 10000 5000 0 PyStone © Novell Inc. All rights reserved 27
  • 29. Driving Desktop Innovation By improving the developer's • productivity on Linux, Mono® is driving innovation on the Linux Desktop: Beagle® – desktop search tool • Banshee – music jukebox • TM Dashboard – personal assistant • F-spot – photo organizer • TomBoy – note-taking app • • © Novell Inc. All rights reserved 29
  • 30. Commercial Mono®-based Apps Hundreds of application developed using Mono, • including: • 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 • © Novell Inc. All rights reserved 30
  • 31. Games Unity: 3D Game Development • C/C++ Core – Mono for high-level operations – Multiple-languages: JavaScript, Boo and – Mono Second Life: Virtual World • 3000 computers in August, growing at – 300 machines/month. 12,000 distinct scripts, 3 million lines of – script code (user code) Mono gives 50-150x performance – increase in scripts, access to more languages, specialize the AI. Programs consume half the memory. – © Novell Inc. All rights reserved 31
  • 32. 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, and I can definitely say that mono is WAY better than MSFT's .NetCF.” --Tim Nichols, Sansa Connect¸ Zing © Novell Inc. All rights reserved 32
  • 34. Three GUI Toolkits Gtk# • Native for Linux – A .NET binding for all GNOME APIs – Windows.Forms: • Support for 1.1 on the initial release – Cocoa# and Dumbarton • Frameworks for building native OS/X applications – Binds Cocoa, native API. – © Novell Inc. All rights reserved 34
  • 35. Developing with MonoDevelop Free Gnome IDE • Code completion – Class management – Built-in help – Glade integration – VB support – v 0.14 today – Subversion add-in. > Refactoring operations. > New smart indenting for C# > Project exporting and conversion (includes Visual Studio 2005) > New features in Gtk# designer. > Desktop Integration Features (editor for launchers, .desktop files). > © Novell Inc. All rights reserved 35
  • 37. Mono® Licensing Licenses chosen to maximize adoption. • Open Source licensed. • Standalone compilers: GPL – Mono Class libraries: MIT X11 – Runtime engine: LGPL – Novell® retains the copyright • Dual license for compiler and runtime under other terms. – Novell relicenses Mono for embedded vendors. – © Novell Inc. All rights reserved 37
  • 38. 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 38
  • 39. Mono® Resources Mono community • http://mono-project.com/Mailing_Lists – IRC Chat Room #mono on the irc.gnome.org server – Mono project website www.mono-project.com • Download Mono, Mono VM, Tools – Tutorials, Training – Mono virtual machine • Runs on any Windows or Linux computer that has VMware – Workstation or the free VMware player. Comes with preconfigured Mono installation that contain everything – you need to get started with Mono Novell® consulting • Deployment, migration services – © Novell Inc. All rights reserved 39
  • 40.
  • 41. 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. Unpublished Work of Novell, Inc. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary, and trade secret information of Novell, Inc. Access to this work is restricted to Novell employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of Novell, Inc. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. 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.