Solved

Solution vs. Project

Posted on 2010-08-23
6
490 Views
Last Modified: 2013-12-17
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
Comment
Question by:jkavx
  • 3
  • 2
6 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 33506994
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
 

Author Comment

by:jkavx
ID: 33507058
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
 
LVL 6

Accepted Solution

by:
ryandale56 earned 250 total points
ID: 33507124
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
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 96

Assisted Solution

by:Bob Learned
Bob Learned earned 250 total points
ID: 33507505
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
 

Author Comment

by:jkavx
ID: 33507638
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
 
LVL 96

Expert Comment

by:Bob Learned
ID: 33509782
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

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question