VS Solution and Mercurial repository layout for a c# project with plugins and external libraries.

Posted by Joviee on Stack Overflow See other posts from Stack Overflow or by Joviee
Published on 2010-05-21T01:25:43Z Indexed on 2010/05/21 1:30 UTC
Read the original article Hit count: 558

Filed under:
|
|
|

I'm developing a project in .NET (using C# to be more specific).
Using Visual Studio as an IDE.
Using Mercurial for version control.

I'll be using some third-party libraries:

ThirdParty.Foo.dll
ThirdParty.Bar.dll
ThirdParty.Baz.dll

And some in-house libraries:

Company.A
Company.B
Company.C
Company.D (References third party libraries)
Company.E (References Company.A)

The project itself will have the following components:

Project.Core
Project.DataModel (references in-house/third-party libraries)
Project.GUI (references Core, DataModel, and in-house/third-party libraries)
Project.PluginOne (references Core, DataModel, and in-house/third-party libraries)
Project.PluginTwo (references Core, DataModel, and in-house/third-party libraries)
* can be an arbitrary number of plugins *

I'm quite new to Mercurial, so I don't really know the best way to structure my repositories for a project like this, with a lot of interconnected components.

The in-house libraries are fairly distinct, so I would say that each one of them should have its own repository. However, some of them use functionality provided by others. How should these dependencies be managed?

The project plug-ins should be distinct from eachother, so I'd imagine that each would have its own repository. How should the dependencies on the in-house/third-party libraries and the rest of the project (Project.DataModel and Project.Core) be managed, with regards to the solution layout and the repository layout?

So basically, for a project like this, what are the best way of structuring:
(a) my visual studio solutions
(b) my source control repository/repositories

© Stack Overflow or respective owner

Related posts about .NET

Related posts about visual-studio