[MonoDevelop] Assembly reorganization

John Luke john.luke at gmail.com
Tue Jul 26 11:52:33 EDT 2005

I mostly agree with this, especially the getting organized and naming 
things for development towards a 1..0
release that will be API stable.  A couple small comments.

Lluis Sanchez wrote:

>This is a proposal of reorganization of the MD assemblies. Hopefully,
>this would be the last big API change before MD 1.0. The goal of this
>change is to improve the modularization of the MD API, and provide a
>more coherent, easy to use and reusable API.
>MD is not just another GTK# application. It provides a public API that
>addins and other applications can use and extend. When we release MD 1.0
>this API will be frozen and only incremental changes will be allowed
>until MD 2.0, which may take quite a lot of time. That's why we need to
>make sure that MD 1.0 API covers most of the usage scenarios of MD.
>The basic idea is to split the API in (at least) three assemblies:
>      * MonoDevelop.Core: it would be the core runtime of MD. It would
>        contain what it has right now plus some services moved from
>        MonoDevelop.Base. It would not contain anything related to the
>        GUI.
The original idea (at least I think) was that core would only contain 
the minimum functionality.  I think we
shouldn't move any services into here that are not 1) useful for almost 
any app that exists 2) free of non-standard
dependencies. So for example, I think the Gettext stuff should move out 
of the Core.  There isn't really anything wrong
with making it more functional and heavier, just a different trade off 
being made.

>      * MonoDevelop.Gui: This assembly would contain user interface
>        components for displaying, browsing or managing the information
>        from the MD runtime, together with other utility classes.
>      * MonoDevelop.IdeApplication: This would implement the MonoDevelop
>        IDE, based on the previous assemblies.
A perhaps too simple suggestion, instead of MonoDevelop.IdeApplication 
how about using just MonoDevelop.

>Some namespaces should also be renamed. A basic rule we should follow is
>that namespaces implemented in an assembly should have the assembly name
>as prefix.
I would like this also, and I have wanted to change the MonoDevelop.Dock 
assembly to work like this but
the Dock class conflicts. Since we are discussing names anyone have any 
bright ideas here?

More information about the Monodevelop-list mailing list