Table of contents [showhide]
1 Dates2 Versions3 Themes4 Subprojects projects4.1 Mono and Silverlight4.2 Partial Implementations4.3 Unsupported technologies4.3.1 Large Projects4.3.2 Deprecated APIs4.3.3 Windows-specific APIs4.4 Mono Developer Strategy5 Roadmap Background5.1 Background5.2 Mono release strategy5.3 Mono 1.0 goals5.4 Microsoft's .NET 2.06 Current Mono Release6.1 Mono 1.26.2 Mono 1.97 Previous Goals7.1 Mono 1.0 goals8 Comments Dates Mono 2.0: September 2008
- July 14th, 2008: Mono 2.0 branches from trunk.
- August 1st, 2008: Mono 2.0 Preview 1 is released (originally: July 21st).
- August 18th, 2008: Mono 2.0 Preview 2 is released (built on August 12th).
- September 8th, 2008: Mono 2.0 RC1 is released (built on September 2nd).
- September 15th 2008: Mono 2.0 RC2 (optional).
- September 29th, 2008: Mono 2.0 Final Release.
Mono 2.2: November 2008
Mono 2.4: February 2009
Mono 2.6: May 2009
Mono 2.8: August 2009
Versions Starting with Mono 2.0, we are switching to a new version scheme for Mono releases:
MAJOR.MINOR.SUBRELEASE
Even minor releases are stable releases, while odd releases areunstable releases, they are typically used during development and iscontained as part of the code that is only checked in on subversion orthat is available as part of the daily builds.
The subrelease indicates a minor release or an update to a specific release.
Notice that before Mono 2.0 these rules did not apply and everypublic release version that was available was a stable release (1.9,1.9.1, 1.2.6, 1.2.6.1 and so on).
Themes These are some of the the major themes for the following Monoreleases, it indicates our current goals and have more clarity on themore immediate goals.
Mono 2.0:
- API status:
- ASP.NET 2.0
- Missing: WebParts, Mobile control rendering.
- ADO.NET 2.0
- Windows.Forms 2.0
- C# 3.0
- Visual Basic.NET compiler (with Generics).
- JIT
- Generic code sharing
- IL Verifier
- Tools for Windows Developers
- Mono Debugger, command line interface.
Mono 2.2:
- JIT
- New JIT engine (Linear IL)
- Full AOT
- Full Generics Sharing
- MSBuild Alpha
- MoMA Web Tools
- ADO.NET Updates:
- Updated TDS 8 (Transactions)
- Native Windows.Forms engine.
- MonoDevelop 2.0
Mono 2.4:
- JIT
- Visual Studio Mono Plugin:
- Debugger
- Deployment and Packaging
- ASP.NET
- Windows.Forms:
- MonoDevelop 2.2
- LINQ to DB integration
Mono 2.6:
- ASP.NET
- ASP.NET MVC
- Silverlight 2.0 Preview
Mono 2.8:
Mono 3.0:
Subprojects projects Other projects like the
debugger, the documentation browser,
Java integration through IKVM,
Olive and
Gtk# will remain on their own schedules. This page will be updated to contain that information when it becomes available.
Mono and Silverlight See our page on
Moonlight for details on the work underway to support Silverlight with Mono.
Partial Implementations The following APIs and technologies have partial implementations and are under development.
As part of the
Olive Project:
As part of the Google Summer of Code:
Unsupported technologies Some technologies are very hard to implement or are being phased outby new .NET components. So we are not likely going to implement thesefeatures.
If someone cares deeply about these APIs and implements them,we would likely bundle them with Mono, but they are not actively beingworked on.
Large Projects These are large projects that we are unlikely going to work onunless there is a massive shift, or a large independent effort to workon. There might be some code on
SVN but we are not currently planning on implementing:
- Windows Presentation Foundation (.NET 3.0).
- Windows Workflow Foundation (.NET 3.0).
- Code Access Security (.NET 1.0).
Deprecated APIs We are not working on any of the following deprecated APIs:
- System.EnterpriseServices
- WSE - Extensions to System.Web.Services.
Windows-specific APIs These are APIs that are very tied to the Windows platform and do not map to Linux or Unix:
Mono Developer Strategy Mono Developers should read the
Mono Hacking Roadmap Roadmap Background This document describes the high-level roadmap for
Mono (
http://www.go-mono.com).
The Mono project started in 2001 as an effort to implement the.NET Framework to Unix. To bring both the new programming model basedon the Common Language Infrastructure and C# as well as helping peoplemigrate their existing knowledge and applications to Unix. Mono todaysupports a wide variety of operating systems, CPUs and a large chunk ofthe functionality available in the .NET Framework.
This document outlines the roadmap for the Mono project from myperspective: what we can effectively deliver on the dates outlined.Since Mono is a large open source project, things might change and newfeatures can be incorporated into the plan if external sources devoteenough attention to those problems.
Background
So far Microsoft has published five versions of the .NET Framework: 1.0, 1.1, 2.0, 3.0 and 3.5.
1.1 was an incremental update over 1.0.
2.0 was a considerable expansion on the features of it.
In addition, an "add-on" to the core of .NET has been released,called ".NET 3.0", but it does not touch the core. It is a set of newAPIs and extensions that run on top of a .NET 2.0 installation.
.NET 3.5 is the actual heir to .NET 2.0, and it containsupdates to the core libraries (small bits) and new assemblies (likeSystem.Core).
The Mono project has been tracking some of the improvementsavailable in those releases, some of the highlights of our work so farare:
- Core: mscorlib, System and System.XML assemblies. Thesesupport both the 1.x and 2.0 profiles. Work is underway to complete the2.0 profile.
- ADO.NET: System.Data and various other database providers, they are 1.x complete, and most of 2.x is complete
- ASP.NET 1.x and 2.x: WebForms and Web Services are supported. Only WebParts are missing from our 2.x support.
- System.Security support 1.1 features and has partial supportfor 2.0 (like XML encryption) but the S.S.C.Pkcs namespace is stillimcomplete.
- DirectoryServices implemented on top of Novell.LDAP
- Compilers: C# 1 and 2 as well as bits of 3, VB.NET 8 and various command line tools that are part of the SDK.
- Transaction support, we have some partial support but currently no plans exist beyond the current implementation (see the notes on its implementation and limitations).
- Open Source, Unix and Gnome specific libraries, see our Plans page for more details.
There are certain features that we are not planning on supportingand are available either as stubs (to allow other code to compile or tosatisfy dependencies) or are not even present in Mono, these include:
Support for designers in Windows.Forms and ASP.NET for the majorityof Mono provided controls does not exist. This is due to the lack oftools for designing Windows.Forms and ASP.NET components in Mono today.When designer surfaces are completed (there are work in progress forboth of them) work on this areas will resume.
Designer support is only needed at development-time, this isnot something that is required to run the applications on Unix. Manyapplications that are reported through the
Mono Migration Analysis tool reports these problems and can be safely ignored.
Some components exist that were once developed but are no longer actively developed, these include:
See the following sections for more details on plans for 2.0, 3.0 and 3.5 APIs.
Mono release strategy The levels of maturity of Mono fluctuate depending on thedevelopment effort we have put into it, and the use we have given tothem. For example, the virtual machine and the C# compiler very mature,while less commonly used functionality in Mono like Windows.Forms orVB.NET are still under heavy development.
Our strategy is to release the mature components as Mono 1.0, and have upcoming versions of Mono add extra functionality.
Mono 1.0 goals The Mono 1.0 release would include the following components:
- VM, with JIT and pre-compiler.
- IL assembler, disassembler.
- Development and security tools.
- Core libraries: mscorlib, System, System.XML.
- System.Data and Mono database providers.
- System.Web: Web applications platform and Apache integration module.
- System.Web.Services: client and server support.
- JIT support: x86, SPARC and PPC architectures (interpreter available for other architectures).
- ECMA profiles: special build options to build Mono as an implementation of the various ECMA profiles will be available.
- Java integration through IKVM.
- Embedding interface for the runtime.
Packaging:
- mono: will contain the above features implementing the .NET 1.1 API.
- mono-1.0-compat: Will include a build of the libraries withthe .NET 1.0 API, this is a compatibility build for people running .NET1.0 applications.
- mono-unstable: Will contain a snapshot of the othertechnologies under development for developer's convenience, but will beunsupported at this time. These include the Generics edition of the C#compiler.
- mono-ecma: A build that only includes the ECMA components.
Released on June 30th, 2004.
Bug fix releases would be done on a monthly basis.
For a detailed list, see the
Mono 1.0 feature list. (
http://www.go-mono.com/archive/1.0)
Microsoft's .NET 2.0 To understand post 1.0 editions of Mono, it is important to put itinto perspective .NET 2.0 which was released in November 2005.
The new features in .NET 2.0 include:
- Generic types These introduce changes to the compiler, runtime and class libraries.
- C# 2.0 Many new additions to the language.
- ASP.NET 2 Many tools to simplify web applicationdevelopment: Master pages, new controls for common operations,personalization and themes.
- Remoting New security channels and version-resistant remoting (good news in the interop department).
- XML Relatively small changes and improvements which Mono has currently. Mono in addition will ship an XQuery processor.
- Networking FTP client, Ssl streams.
- Console and Serial ports: Console terminal input/output is available as well as serial port handling.
- Windows.Forms Layout containers finally appeared on Windows.Forms as well as various new controls.
Current Mono Release Mono 1.2 Mono 1.2 is a release that supports the .NET 1.1 APIs for all theareas supported in Mono (core, XML, ADO.NET, ASP.NET, Windows.Forms,compilers, tools). For details, see the
Mono 1.2 Release Notes (
http://go-mono.com/archive/1.2/)
Mono 1.2 is an incremental upgrade to Mono 1.0, and contains the following new features:
- Generic types support: C# compiler, execution system and core class libraries (C# 2.0)
- gtk# 2.0 (includes support for gtk 2.12)
- Numerous scalability and performance enhancements
Mono 1.2 also include assemblies from .NET 2.0 and these are available as technology previews:
- Most of mscorlib and System.dll
- Console and Serial ports support
Released on: November 9, 2006.
There are various milestone branches in this release, see our
Branches page for more details.
Mono 1.9 Since the release in November 9th of 2006 of Mono 1.2, we have made seven incremental updates to Mono (
1.9 (
http://www.go-mono.com/archive/1.9)), The highlights since then include:
- VB.NET compiler and runtime were released.
- Windows.Forms 2.0 feature-complete.
- 2.0 support completed for Web Services (Generics).
- ASP.NET WebForms are complete (except for WebParts).
- Support for ASP.NET AJAX.
- Release of Mono Migration Assistant.
- C# 3.0 support and System.Core assembly
- LINQ to Objects
- LINQ to XML.
- System.Media implemented.
- HTTPS support in HttpListener.
- 2.0 Socket API.
- Improved fidelity and performance of System.Drawing, added support for Metafiles.
- Mono's MSBuild is able to build projects.
- SafeHandles and HandleRef support.
- MIPS, Alpha ports and Solaris/amd64 ports.
- Mono can now run without shared memory segments.
- New Mono.DataConvert library
- ADO.NET 2.0 updates, and support for output parameters on stored procedures.
- installvst tool for installing ASP.NET starter kits.
- New Sqlite bindings.
- COM/XpCOM support.
- Packages available (http://download.opensuse.org/repositories/Mono:/Community/) for many popular applications.
Release notes with all the details:
- Mono 1.2.1 (http://www.go-mono.com/archive/1.2.1)
- Mono 1.2.2 (http://www.go-mono.com/archive/1.2.2)
- Mono 1.2.3 (http://www.go-mono.com/archive/1.2.3)
- Mono 1.2.4 (http://www.go-mono.com/archive/1.2.4)
- Mono 1.2.5 (http://www.go-mono.com/archive/1.2.5)
- Mono 1.2.6 (http://www.go-mono.com/archive/1.2.6)
- Mono 1.9 (http://www.go-mono.com/archive/1.9)
Previous Goals Mono 1.0 goals The Mono 1.0 release would include the following components:
- VM, with JIT and pre-compiler.
- IL assembler, disassembler.
- Development and security tools.
- Core libraries: mscorlib, System, System.XML.
- System.Data and Mono database providers.
- System.Web: Web applications platform and Apache integration module.
- System.Web.Services: client and server support.
- JIT support: x86, SPARC and PPC architectures (interpreter available for other architectures).
- ECMA profiles: special build options to build Mono as an implementation of the various ECMA profiles will be available.
- Java integration through IKVM.
- Embedding interface for the runtime.
Packaging:
- mono: will contain the above features implementing the .NET 1.1 API.
- mono-1.0-compat: Will include a build of the libraries withthe .NET 1.0 API, this is a compatibility build for people running .NET1.0 applications.
- mono-unstable: Will contain a snapshot of the othertechnologies under development for developer's convenience, but will beunsupported at this time. These include the Generics edition of the C#compiler.
- mono-ecma: A build that only includes the ECMA components.
Released on June 30th, 2004.
Bug fix releases would be done on a monthly basis.
For a detailed list, see the
Mono 1.0 feature list. (
http://www.go-mono.com/archive/1.0)
Comments Feel free to send your comments or questions the roadmap to
mono@novell.comhttp://www.mono-project.com/Mono_Project_Roadmap