Re: [Banshee-List] Proposal: Mono.Media



There is another benefit to the muti-assembly solution that I had not considered. If different backends have different build dependencies, the multi-assembly solution is better: if the user doesn't have the build dependencies for a given backend, that backend just isn't built. Whereas if there is just one assembly, then the whole project will fail to build.

I have another solution. Each backend is its own assembly and builds separately, but after everything is build we use the Mono.Cecil linker and merger to combine them into a single assembly. This single assembly is then installed (and is capable of loading external assemblies when they are present). I think this is the best of both worlds:

Pros:
- Flexible build system. Backends have independent build dependencies and can be enabled/disabled by the user.
- Single deliverable. The final product is just Mono.Media.dll.
- Modularity. New backend assemblies can be "dropped in" and they will be loaded.

Cons:
- Mono.Cecil, Linker, and monomerge are built dependencies.
- I think monomerge is broken right now and would need some sprucing up.
- Is this too much work for too little gain? Is it important to only ship one file?

On Jan 2, 2008 9:42 AM, Lars Strojny <lars strojny net> wrote:
Hi Scott,

just my 2 cents.

Am Mittwoch, den 02.01.2008, 05:16 -0600 schrieb Scott Peterson:
[...]
> EACH BACKEND IS ITS OWN ASSEMBLY
> Pros:
> - Modularity. New backends can be added with ease.
> - Size. If you know you're shipping on Linux, you can remove the
> Windows/Mac-specific backends.
> - Backend autonomy. Each backend can be its own MonoDevelop project
> and its own package. Multiple people can maintain different backends
> and be well out of each other's way. Backends can even live in
> different svn repos.

Plus: From the perspective of a Linux vendor: if one want to ship
multiple backends and want the user to allow specifying which backend to
use (to install), this is a must-have. So I would vote for that. The
hybrid version would also work, as a vendor could just use the loading
mechanism for shipping multiple backends in multiple packages.

cu, Lars

_______________________________________________
Banshee-list mailing list
Banshee-list gnome org
http://mail.gnome.org/mailman/listinfo/banshee-list




--
Scott.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]