Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 514
  • Last Modified:

Solution vs. Project

After many years of working in a Java environment, I'm working with a small team of C# developers.  We have several different applications that will share some common code.  In my Java experience, this is handled by separate applications, that share a jar file for the common code.  In the .Net world, my suggestion is to create multiple Windows form applications, and then create an application for the common code that will build as a .dll.  The .dll can be shared by the Winform applicaitons.

There is another suggested approach that puts all the code into a single solution, with each Winform application as a project, and the common code also as a separate project.

Am I wrong to think that since the Winform applications have nothing to do with one another they should be separate solutions.  And that the common code should be a separate solution.  As development is done on the common code, it can be checked into the SVN repository.  Only when the common code is ready for a releaase, should the revised dll be made available to the other applications.
0
jkavx
Asked:
jkavx
  • 3
  • 2
2 Solutions
 
Bob LearnedCommented:
Let's try an explanation like this:

1) A solution file is a logical grouping of projects.  It brings together different projects into one "solution".  

2) Projects need references to other DLLs, so the solution doesn't build a single DLL.  Each project would still have its own DLL.  

3) Single solutions can be easier to work with.

4) You can use SVN with the solution, that would manage the sub-projects, too.
0
 
jkavxAuthor Commented:
Thx.  I just don't see the advantage to using a single solution; since the Winform apps are not related, why group them together?  How is it easier to work this way?

The problem I see with the proposed solution containing 2 Winform apps and a library application is that if work is done on the library application that is shared by the 2 Winform apps, updating the solution source code brings the library application changes into the solution.  I want to postpone integration of the dll changes until an actual release of the dll is ready.  Am I misunderstanding how the projects would utilize the library application project?
0
 
ryandale56Commented:
Some people will use solutions to group multiple unrelated projects that use the same custom framework libraries to make some things easier.  By framework I mean a set of custom class libraries built by you that can be used by your applications.  When you have an immature framework you have so many frequent changes that it may be beneficial to have it in the same solution as a front-end application.

However, at some point the framework should become pretty stable and I recommend it be put into its own solution.  This will allow different programs to use different versions of the library (in case of backward compatibility issues, etc).  Also, you are right, at this point there should releases of the framework to support the needs of the applications....but they should be in their own solutions (IMO).

0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
Bob LearnedCommented:
Here is the layout for one of my 2010 solutions:

    Data Access (SQL Server)
    Business Logic (Rules)
    Windows Forms Presentation/UI
    Web Site Presentation/UI
        Unit Tests
        Database
        Architecture Modeling
        Setup and Installation

The solution pulls all these projects together, into one logical unit.  The projects, though, can stand on their own, and can be re-used (if need be).  The UI uses MVP (Model-View-Presenter) pattern.  We can easily switch out WinForms for WPF when the time comes, without much ripping and shredding, by substituting a WPF project for the Windows Forms project, and fixing the references.
0
 
jkavxAuthor Commented:
Thx for the example.  It does seem, though, that in your case, the projects can form one coherent whole.  But in my case, the projects are completely unrelated, except that they share some common code, basically database access.  
0
 
Bob LearnedCommented:
A solution is a group of related projects.  If you have unrelated projects, then I agree that you are describing a multi-solution scenario.  
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now