Last update: May, 2007
Dates Mono 2.0: September 2008
- July 14th, 2008: Mono 2.0 branches from trunk.
- July 21st, 2008: Mono 2.0 Beta 2 is released.
- August 4th, 2008: Mono 2.0 RC1 is released.
- August 18th, 2008: Mono 2.0 RC2 is released.
- September 9th, 2008: Release
Mono 2.1: November 2008
Mono 2.2: February 2009
Mono 2.3: May 2009
Mono 2.4: August 2009
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
- ADO.NET 2.0
- Windows.Forms 2.0
- C# 3.0
- JIT
- Generic code sharing
- IL Verifier
- MonoDevelop 2.0
Mono 2.1:
- JIT
- New JIT engine (Linear IL)
- Full AOT
- Full Generics Sharing
- MSBuild Alpha
- MoMA Web Tools
- ADO.NET Updates:
- Updated TDS 8 (Transactions)
Mono 2.2:
- JIT
- Visual Studio Mono Plugin:
- Debugger
- Deployment and Packaging
- ASP.NET
- Windows.Forms:
- MonoDevelop 2.2
Mono 2.3:
- ASP.NET
- ASP.NET MVC
- Silverlight 2.0 Preview
Mono 2.4:
Mono 3.0:
Introduction 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)
Upcoming Releases The release numbers described here are going to be changed as we shuffle around some of the features and their ship dates.
Mono 2.0 Mono 2.0 will mark the time when the class libraries have completesupport for the new features in the 2.0 edition of the framework.
The last release before Mono 2.0 is now available as
Mono 1.9 (
http://www.go-mono.com/archive/1.9)
Notice that Mono 1.1.x already contains many of the 2.0 featuresand class libraries, there are just no guarantees that they arecomplete, you will have to compile and test your application with Mono(using the gmcs compiler instead of mcs).
Current planned features:
- Complete core class libraries support.
- Complete ASP.NET 2.0 support (minus mobile support).
- Complete ADO.NET 2.0 support.
- Windows.Forms 2.0.
- C# 3.0
- LINQ to Objects.
- LINQ to XML.
- Visual Basic Compiler (VBNC)
- Tools for Windows Developers (Moma, Gendarme for portability).
- Debugger for 1.x and 2.x (generics, anonymous methods, iterators, lambdas).
- Windows.Forms 2.0
Release target: Q3/2008.
Mono 2.2 Current planned features:
- Compacting GC
- 2.0 APIs.
- Native theme engine for Windows.Forms.
- New JIT optimizations, based on linear-ir branch/greg work.
- LINQ support
- Updated System.Drawing to use Pango.
- WCF preview
Previews/Beta releases for:
Release Target: Q4/2008
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 .NET 3.0 .NET 3.0 includes a number of new components:
- Avalon (WPF), a new framework for GUI applications.
- Indigo (WCF), an RPC system.
- Workflow (WWF)
- Cardspace, an identity system
Some of these technologies are being implemented as part of the
Olive project, see the
Olive page for more details.
Mono and LINQ (.NET 3.5) Like .NET 3.0 it seems that .NET 3.5 will be merely a collection ofnew assemblies that will be built on top of the .NET 2.0 runtimeengine.
Some features from .NET 3.5 and C# 3.0 have already beenimplemented and are part of the Mono 1.9 release (and will be part ofthe 2.0 final release).
Mono and Silverlight See our page on
Moonlight for details on the work underway to support Silverlight with Mono.
Unsupported technologies Some technologies are very hard to implement or are being phased outby components in the Longhorn time frame. In some cases, we feel thatthey are not crucial to the future of the open source desktop.
System.EnterpriseServices and System.Management come to mind,and we are unlikely to put any resources into the task. We would gladlyhost the code if someone cares to implement it, but they would likelyremain unsupported features of Mono.
A limited subset of
Code Access Securityis available on Mono 1.2. However as long as it is not completed(missing features and class libraries permissions) and audited(runtime, code generation and class libraries)
CAS won't be supported.
Mono Developer Strategy Mono Developers should read the
Mono Hacking Roadmap 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.com (
mailto:mono@novell.com)
Retrieved from "
http://www.mono-project.com/Mono_Project_Roadmap"
Categories:
Mono Framework