Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Solution vs. Project

Posted on 2010-08-23
6
Medium Priority
?
508 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 1000 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
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 96

Assisted Solution

by:Bob Learned
Bob Learned earned 1000 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

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

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

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
this video summaries big data hadoop online training demo (http://onlineitguru.com/big-data-hadoop-online-training-placement.html) , and covers basics in big data hadoop .
Despite its rising prevalence in the business world, "the cloud" is still misunderstood. Some companies still believe common misconceptions about lack of security in cloud solutions and many misuses of cloud storage options still occur every day. …
Suggested Courses

877 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