Project Structure in Version Control .NET

This post is similar to this previously asked question. I really want to configure my SVN repository in TTB format, but when creating a project in Visual Studio 2008 (ASP.NET/VB.NET), the created structure tends to be incompatible when considering a solution file, project files, project folders, several projects as part of decisions, etc. Does anyone have a script or procedure to create a newly created ASP.NET and move it to TTB format painlessly?


Let me be more specific. Suppose I have a project that I create called StackOverflowIsAwesome. I can put this in my local folder structure (let's say this is c: \ working). When I create it, VS creates c: \ work \ StackOverflowIsAwesome and a whole bunch of subfolders (bin, app_data, etc.). But I want my storage structure to look like ...

 StackOverflowIsAwesome
     / trunk
         / bin
         / app_data
     / tags
     / branches

So, is there a clean way to do this sequentially, or do I need to resort to constantly moving / changing files and folders to do this?

+7
svn visual-studio
source share
7 answers

We went with a very simplified approach:

File structure:

  • Folder for the solution (contains the solution file, build scripts, maybe more?)
    • Project folder
    • Project Folder 2
    • Links (contains general assemblies for the solution).

Then we just check the contents of the entire solution folder in our repository. We use one repository for each solution. I'm not sure if this is the best way to organize a solution, but it works for us.

In addition, we conduct work at the highest level, and not on the project.

+1
source share

Another way:

StackOverflowIsAwesome /trunk /database /datafiles /documents /build /installer /lib /External_DAL (external that points to shared library) /utilities /vendor /src /StackOverFlowIsAwesome /StackOverFlowIsAwesome.csprj /bin /... /StackOverFlowIsAwesomeTests /StackOverFlowIsAwesomeTests.csprj /bin /... /branches /tags 

It will be for every project. Since we are using a build script, we do not need to store our solution file in SVN.

+1
source share

If your TTB is a general project, not a project, there is no problem with it. Or am I missing something?

0
source share

You can see this previous post or this project . The project creates the structure of the .NET development tree (requires .NET 3.5).

0
source share

When working with several of the projects that make up the Visual Studio solution, it's hard to decide how to structure things correctly.

One important aspect that you will need to do with your structure is to facilitate the extraction of all files for a specific version. It is important to make this as simple as possible. In subversion, copying the root folder to the tag branches is easier than remembering the repetition of the same operation for X projects.

It is also important to be able to work for long periods outside the main trunk. You will also have to think about it.

You may find that your software has a number of components that naturally group together. You could do something like this

 /tag /core_library /branch /main /business_logic /branch /main /report_library /branch /main /my_ui /branch /main 

There is no simple answer. What you really do depends on your specific project. If you still get out of the mess, then maybe you need to look at how your project is designed and see if it can be changed to improve understanding.

0
source share

For large projects, we usually use this format here:

 /Project /trunk /lib/ # Binary imports here (not in svn) /src # Solution file here /Libraries # Library assemblies here /StackOverflowIsAwesome.Common /Products # Delivered products here /StackOverflowIsAwesome.Site /Projects # internal assemblies here /StackOverflowIsAwesome.Tests /branches /1.x /tags /StackOverflowIsAwesome-1.0 

Depending on the actual projects, the source files (documents, etc.) have a directory under the root of the trunk and additional resources for development are under src.

Independent projects are under their own / root Project, but in the same repository.

0
source share

I do this:

  • Create a project in VS
  • Import everything into the project folder in repos / projectname / trunk
  • Add repository / branch and repository / tag folders

This gives me a repository structure, for example:

 projectname / trunk /bin /obj /Properties projectname.sln /tags /branches 

And I can just leave all the files in their default places in the file system.

-one
source share

All Articles