title: Project structure and build system for .NET connected to git
body: <p>this is a question concerning project structure with .NET/git and a build system, so I'll try to keep it short:</p>
  
  <p>Setup:</p>
  
  <ul>
  <li>.NET (C# and VB.NET)</li>
  <li>git (formerly svn, we didn't use externals)</li>
  </ul>
  
  <p>following project structure I tried:</p>
  
  <ul>
  <li>[NameOfApp]
  <ul>
  <li>.git</li>
  <li>[NameOfApp - solutionfile directly underneath]
  <ul>
  <li>[Project1]</li>
  <li>[Project2]</li>
  </ul></li>
  <li>[Config]</li>
  <li>[Standard]: some standard-configs for the developer (they are copied when one first<br>
              initilalizes his repo, but he/she can change them)</li>
  <li>[Scripts]: Some skripts, also the script for the build system</li>
  <li>[dependencies]
  <ul>
  <li>[dependency 1]: is a submodule
  <ul>
  <li>[main-folder]
  <ul>
  <li>[Solution-File]
  <ul>
  <li>[Projects]</li>
  </ul></li>
  </ul></li>
  <li>[dependencies]
  <ul>
  <li>[subdependency 1]</li>
  <li>[subdependency 2]
  <ul>
  <li>[dependency 2]: another submodule</li>
  <li>[Another Solution]: in a submodule, sometimes I have little helpers for some concerns during 
   the build process. Called by build scripts.</li>
  </ul></li>
  </ul></li>
  </ul></li>
  </ul></li>
  </ul></li>
  </ul>
  
  <p>I'm searching for a good structure for all our projects, the above structure is only used for one project so far.</p>
  
  <p>So my questions:</p>
  
  <ul>
  <li>looks this like a valid setup for you? I know this is a difficult question, but do you have similar setups or had problems with similar setups.</li>
  <li>Would you use git submodules at all or is there something better? Some say they are evil and may cause problems. Just for information my submodules are Projects that are used by many projects. The dependencies hold sometimes solution files, so I have project folders underneat. The projects within are then referenced in my mainapp. I don't know if subtree is adequate, I've heard also of repo (for android), perhaps this is a solution? Or are there any other tools around for managing dependencies?</li>
  <li>Sometimes my dependencies have dependencies too. So when I do a recursive clone I get a somewhat weird structure with subdependcies (see structure above). Sometimes I have to add subdependencies to my main app, cause I want to change something there and a rebuild is needed for the dependency. So how do you keep subdependencies or subsubdependencies?</li>
  <li>if you have open-source-dependencies (for example from github), do you use the dlls directly? Or do you fork and add a git submodule?</li>
  <li>Do you add all your projects as projectreference or do you reference directly the dlls (for example for your sub or subsubdependencies to break it a little bit down and not always rebuilding the whole project tree)?</li>
  <li>What build system to you prefer?</li>
  </ul>
  
  <p>I know these are not questions with one "right" answer, but perhaps you can help me a little bit and share some thoughts.</p>
  
  <p>Thanks,
  Cyber1000</p>