Question

There are so many examples of how to set up your dotnet projects but none seemed to fit our situation.

We have one solution with multiple applications, multiple dependencies. We're on SourceSafe currently and are planning to move to subversion but are finding it difficult to organize our source the right way.

  • Example solution

    • App1
    • App2
    • BizObjects
    • DataAccess
    • CustomControls
  • Dependencies

    • BizObjects->DataAccess
    • App1->CustomControls
    • App1->BizObjects
    • App1->DataAccess
    • App2->CustomControls
    • App2->BizObjects

We also have a configuration management system which deploys (via copy from the database) depending on which workload the operator is working. We mark an application "release" with a version and to that release, we add multiple file dependencies. Bear in mind the solution we have in place now is an attempt to band-aid the old (windows 3.1 developed) solution to work with .NET file/dependency structure.

In the case of App1, we have App1.exe, BizObjects.dll, DataAccess.dll, and CustomControls.dll. We have the same set of dependencies for App2 due to BizObjects referencing DataAccess -- but this is defined manually. We don't have a system in place to identify the dependency tree.

Each of the dependencies for a "release" is a file and version id. And the same application could contain different versions of each file for a different workload.

  1. Where in the world have we gone wrong? Did we go wrong?
  2. How can we structure an svn source tree to accommodate the deployment requirements?
    • or
  3. how can we restructure the code the better support a deployment strategy which makes sense for our setup?

We have an old and over-engineered solution to (it would seem) a relatively simple problem. Can anyone steer me/us in the right direction?

edit: I read this question and remembered we also have the same dev/test/prod areas which the code must move through.

Was it helpful?

Solution

Here is a question that may be relevant. link text.

OTHER TIPS

Sounds like you're trying to do configuration control with a source code control system.

Subversion my not be the right choice, since it's really for source code (ascii files) and build dependencies, not executable files (binary) and run-time dependencies.

My guess is you really need an installer: http://en.wikipedia.org/wiki/List_of_installation_software

Or maybe just a script to launch the correct configuration from a network drive.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top