Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which visual studio solution type is right for me?

I currently have a program that i wrote that is divided up into 3 separate solutions.

  1. Front end (all display related stuff)
  2. Parsers (multiple (39) projects that each create a dll to parse specific data)
  3. Globals (multiple (5) projects that each create a dll that is used by projects in the parsers solution, and by the front end).

Requirements -

  • Both the Front end and Parsers require the globals dlls to exist at compile time, and used at run time.
  • The Parsers dlls are loaded at run time using assembly.LoadReference.
  • Development is: C:\projects\myProg
  • deployed location is: C:\myProg

My problem is that I have been going back and forth with issues dealing with project dependencies, where to point to for my globals dlls. Do I point to the deployed location or the developement location, and if so, release or debug?

So I started looking up the different solution types, and I'm wondering if I should set up a partitioned solution, or a multi-solution for my particular situation.

like image 209
Jason Avatar asked Dec 22 '11 16:12

Jason


People also ask

Which version of Visual Studio is best for me?

Visual Studio 2022 is the best Visual Studio ever. Our first 64-bit IDE makes it easier to work with even bigger projects and more complex workloads. The stuff you do every day—like typing code and switching branches—feels more fluid more responsive.

Which version of Visual Studio is best for students?

Visual Studio Enterprise is available for free to Students for learning and training purposes only.

What's the difference between Visual Studio community and enterprise?

Visual Studio 2022 comes in three SKUs: Community (free, not supported for enterprise use), Professional ($1,199 first year/$799 renewal), and Enterprise ($5,999 first year/$2,569 renewal). The Enterprise Edition has features for architects, advanced debugging, and testing that the other two SKUs lack.

Do professionals use Visual Basic?

Although Visual Basic is no longer a popular choice for software developers in many industries, some companies still rely on computer applications that were built using the Visual Basic programming language.


2 Answers

Add all the projects to a single solution.

Change any references between projects into "project references" rather than direct references to dll files. This will fix a lot of dependency issues.

If you have any "library" files that are not changed often, then you can optionally move them into a separate solution. The output of this should be "prebuilt" release dlls that you can then reference from a standard location in your main solution (the best way to do this is to add a post build step that copies the output to your development "library binaries" folder. That way, the build process is not changed, you simply add an extra step to get the files where you need them, and you remain in full control of the build process). This works well, but is a pain if you need to change these prebuilt dlls often, so it's best only used for fairly static parts of your codebase.

Finally, consider merging many of your projects into a single project/assembly. The killer on build times is not the amount of code, it's the number of assemblies - on my PC every project adds a pretty constant 3 seconds to the build time, so by merging small projects I've saved quite a bit of build time.

like image 86
Jason Williams Avatar answered Oct 26 '22 18:10

Jason Williams


Since those 3 are all part of the same system, it will probably be easier to have a single Solution with each Project added to it.

NOTE: You do not need to move anything from their current locations.

Just create a new empty solution and do a right-click Add > Existing Project... for each project you want to be a included, they will remain where they are on disk, but will be opened together.

The current ("old") solutions will be available as well, just as they are.

Also keep in mind that if you are editing the same project in two instances of VS at the same time, it will bug you about reloading the source code when a change is made and saved.

Most importantly, having the projects in the same solution will allow you to add references between them, rather than the DLL files.

like image 30
rfmodulator Avatar answered Oct 26 '22 19:10

rfmodulator