Development Roadmap
From MonoDevelop
The roadmap for MonoDevelop development can actually be divided in three:
- The roadmap for the MonoDevelop Core
- The roadmap for some Core addins
- The roadmap for additional addins.
The MonoDevelop Core has the basic functionality of the IDE, upon which the addins are built. The Core includes the following:
- The workbench infrastructure: management of pads, views, menus, toolbars, etc.
- Basic services: project service, parser service, file service, command service, process, dispatching, searching, etc.
- Configuration infrastructure.
- Basic pads and views: solution pad, class pad, files pad, output, etc.
- Addin management infrastructure.
MonoDevelop is not just another gtk# application, because it has been designed to be extensible. It offers an API that can be used to implement addins that add new functionality to the IDE. Since all addins will depend on it, the API must be very stable. For this reason, the release cycle of the MonoDevelop Core should be rather long.
The Core Addins are addins that provide the basic functionality for developing Mono applications. Those addins don't need to follow the same release cycle as MonoDevelop, but they should have a stable release in sync with MD Core 1.0. I would include the following addins:
- The text editor.
- The C# addin.
- The Mono debugger addin.
- The MonoDoc addin.
- Source control integration (SVN, CVS) addin.
Finally, there are plenty of additional addins, which won't follow the MD release cycle, and don't need to necessarily have a first stable release in sync with MD 1.0. I hope that if the MD team has a good job in the MD Core, many of those addins will be contributed by the community.
Goals of MonoDevelop Core for the 1.0 release
MD Core 1.0 should focus on:
- stability,
- providing an extensible, coherent and documented API,
- providing enough fundamental services to make addin development easy.
Those are the main tasks to be done for 1.0:
- Better error management: There are many situations in which MD could catch exceptions and show an error message instead of crashing. Also it should try to give better explanations for common errors.
- Addin manager: Provide a GUI for managing addins, and an easy way of installing new addins from Internet. More info here: [1] (http://lists.ximian.com/pipermail/monodevelop-list/2005-July/002264.html).
- Support for .NET 2.0: Support for gmcs. Improve the C# parser to support the new features (generics, partial classes, etc.). Maybe we can reuse the mcs parser for this?
- Bug fixing: The MonoDevelop Core is at the level of functionality required for 1.0, so focus should shift to bug fixing rather than implementing new features.
- Improve memory usage.
- Write documentation: The MD API needs to be documented, specially those areas that have been redesigned. There are some tutorials in the wiki, but more are needed.
- Improve the web site: MD deserves a better web site. It has been proposed to move the whole site to a Wiki to make it easier to update.
- We need a logo! It would be awesome if somebody could design a decent logo and splash window for MD.
There are other tasks that are not so fundamental for 1.0, but that need to be done soon or later:
- Customization of menus and toolbars: Provide an option for customizing the commands shown in menus and toolbars. Configurable key bindings.
- Improve code templates.
- Assembly browser: Add a window for browsing the contents of assemblies. Maybe integrate with disasm?
- Improved editor: Error unerlining in the source code. Code folding. Tooltips that show the type of variables. Hopefuly move to a managed editor.
- Make MD self hosting: MD should be able to build and debug itself.
- MonoDoc addin: The integrated MonoDoc tree and viewer is nice, but I think it is not very useful. A better option would be to run Monodoc as a standalone application and manage it using remoting or DBus.
Core Addins
There is some work to do in the Core addins for the 1.0 release:
- Integration of SVN and CVS: There is some initial support for SVN, but it is rather unstable and slow. We also need to add support for CVS.
- Debugger: Make the debugger actually work. Add a watch pad. Add disassebly view. Add dialog for evaluating debug expressions.
Additional Addins
Those addins will follow its own release cycle, but it would be nice if we could release the following in sync with MD 1.0 (or at least an usable beta version):
- Stetic integration: I think that MD 1.0 should have a form designer for gtk#, although that will depend on the Stetic schedule.
- ASP.NET addin: Basic support for ASP.NET. Crate a new project type: ASP.NET Project. Compilation of code-behind files. Integration of XSP. Integration of the ASP.NET form designer from the Google S.O.C.
- Web references: Support for adding references to web services. I did some work about this some time ago, but never finished it.
- Autotools integration: At least to the level of what is needed to build MD.
Other addins:
- Integration of profiler: Add windows that show the results of profile sessions in a graphical and easy to browse way.
- GAPI binding builder: Create a new type of project: GAPI project. It would simplify the generation of bindings for Gnome libraries.
- Addin for MonoDoc documentation generation: Create a new type of project: a documentation project. Such a project would use the monodoc tools to generate documentation for libraries.
- XBuild integration
- NAnt integration
- Code refactoring
- HTML editor
- Help file authoring
- C/C++ support
- XML editor
- UML modeler

Powered by MediaWiki