Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

Microsoft Visual Studio - Projects vs Solutions

Posted on 2014-11-07
Last Modified: 2014-11-07
I have developed software for animal shelter record keeping.   It's being installed in shelters housing various types of animals.    I'm having to hard code in a lot of things to make it more suitable for each type of animal.   A very simple example is that birds are weighed in gms, dogs and cats in lbs, horses in kgs, etc.   There are many more differences.   Handling all of this different code for each type of animal in one solution is becoming a nightmare.   I would like to have ASBF - Avian Edition, ASBF - Equine Edition, ASBF - Small Mammal Edition; etc.    If I had this arrangement probably 80% of the code would be the same across them all.   I'm hoping someone can tell me if multiple projects within one solution would accomplish this.   Should I even try to accomplish this?    How would I accomplish this?   I would like to hear from anyone that has had experience and knowledge in this area.   Thank you.
Question by:kylucky
  • 4
  • 3
LVL 42

Accepted Solution

pcelba earned 500 total points
ID: 40428208
You should not hardcode such things like units used for particular animals... Instead of this you should use some configuration file or database.

You can have everything in just one project after you implement the configuration file/database. Various packages will differ in the configuration the development will be at one place etc. etc.

The configuration file can be just one XML file or SQLite database with appropriate administrative access. Many such solutions exist: http://www.sqlite.org/cvstrac/wiki?p=DocumentationSqliteNet


Author Comment

ID: 40428271
thank you pcelba.   I will definitely 'bone up' on configuration files by going to the links you have given me.   It will be very interesting.   The database currently being used is MS Access.  I don't know if that would change your recommendation to me in any way.   Thank you and I'll be studying because I've got to get a better handle on this 'beast'.   I'm getting ready to install in a turtle hospital and their requirements are quite different than a dog and cat shelter as you might expect.   Things are getting out of control and maybe your suggestion can bring some order to the universe.  Or at least my universe.
LVL 42

Expert Comment

ID: 40428304
So the Access database itself could contain some predefined system part which will be used for the application branching and other various settings. Of course, the system part can be in different database or in XML or another configuration file. But if you have Access already you may use it.

You just have to patiently define the structure of your data hierarchy to avoid duplicate information (you may find more if you look for data normalization).
Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.


Author Comment

ID: 40428840
Thanks.  I'm glad I can use Access because I know that pretty well.   I don't know XML or configuration files.   I'm an old-timer and I think what you are suggesting is what we used to call 'table driven' software.    A lot of the application is that way now but I see how a lot more of it could be.   I have an animal types table.   I could put in there the unit of measure for weight for that animal and wouldn't have to hard code something like  'if 'horse' then 'kgs'.   Is this similar to what you had in mind?
LVL 42

Expert Comment

ID: 40428904
Yes, exactly. The animal types table should contain info about the weight units. Every time users select animal type the weight units should be updated on the screen.  You may also think about additional tables which will help to make the app more flexible (but more complex to you)...

E.g. Unit of measures and Unit of measure conversions can be used to make the data independent on the location where different units are in use (I think South of Arizona or the area near Mexican border uses metric system). Another example is Time Zone info etc.

The first version should be as simple as possible, so forget about Units of Measure conversion for now :-). But everything depends on your free time...

Author Comment

ID: 40428940
Excellent pcelba.    At first the app only worked for dog and cat shelters because that is where I was volunteering and had no idea it would go beyond that.   But it did.  So, I had to take out a lot of hard coding for that one particular shelter.  Now it works for any shelter and any type animal.   That was a lot of work.   I got rid of a ton of hard coding so I know how to do it.   Now I just need to do more of it.   You've helped me a lot and I'm going to go in the direction you suggest.   And that means I don't have to learn anything more to accomplish this.   Yay!  Thank you pcelba.

Author Closing Comment

ID: 40428943
I very much appreciate the guidance I received from pcelba.   I'm going to follow his/her direction.    Good stuff.

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

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.

Question has a verified solution.

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

Today, still in the boom of Apple, PC's and products, nearly 50% of the computer users use Windows as graphical operating systems. If you are among those users who love windows, but are grappling to keep the system's hard drive optimized, then you s…
If you’re thinking to yourself “That description sounds a lot like two people doing the work that one could accomplish,” you’re not alone.
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…
XMind Plus helps organize all details/aspects of any project from large to small in an orderly and concise manner. If you are working on a complex project, use this micro tutorial to show you how to make a basic flow chart. The software is free when…

828 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