Very big question

J

JJ

Hello NG

I have been around C# development for about 3 years an understand the most
of if.
I have developed many windows applications. So now my boss asks me this
question.

One of our main applications exists in many versions pr. customer. We have
one default version i call that ApplicationDefault here.

The ApplicationDefault holds all default functions for the application. But
as you might know customers almost want thier wishes made in their
Application. Therefore we also have the ApplicationDefault in customers
verisons like;

ApplicationCustomer1, ApplicationCustomer2

And every time we make changes in ApplicationDefault we have to look into
all customer versions to make sure the changes also work there.

So my question is: Can Visual Studio 2008 handles this (i called it
layer-styled application)

The ApplicationDefault is my (Interface) and customer versions inherit from
that ApplicationDefault.

Kind regards

JJ
 
S

Stanimir Stoyanov

Hello JJ,

Visual Studio itself does not provide such a feature. However, most source
control systems allow you to branch your project, meaning you have a base
project and fork the code for each milestone, or in your case, each client.
You have a solid base, which is shared between all forked builds and you can
reflect clients' requirements/customizations.

Microsoft's Team Foundation Server would be suitable if you decide to go
this way. Of course, there are open-source VCS too. Note that Visual
SourceSafe does not support branching.

HTH,
 
P

Peter Morris

There are much better ways of doing this kind of thing which do not require
a concrete descendant of a class for each customer. Have you read the
gang-of-four design patterns book? You might also want to look at
dependency injection containers.
 
M

Michael C

JJ said:
Hello NG

I have been around C# development for about 3 years an understand the most
of if.
I have developed many windows applications. So now my boss asks me this
question.

One of our main applications exists in many versions pr. customer. We have
one default version i call that ApplicationDefault here.

The ApplicationDefault holds all default functions for the application.
But as you might know customers almost want thier wishes made in their
Application. Therefore we also have the ApplicationDefault in customers
verisons like;

ApplicationCustomer1, ApplicationCustomer2

And every time we make changes in ApplicationDefault we have to look into
all customer versions to make sure the changes also work there.

So my question is: Can Visual Studio 2008 handles this (i called it
layer-styled application)

The ApplicationDefault is my (Interface) and customer versions inherit
from that ApplicationDefault.

Kind regards

I'd suggest abandoning the idea of giving each customer their own version.
This sort of thing is always going to be difficult to maintain and there's
never going to be a perfect solution. You're always going to have to fix
things multiple times, testing is going to be a lot harder (and money wise
pretty much impossible to do properly). Bugs are going to increase and this
solution obviously doesn't scale very well as the business grows. I always
see this sort of decision as almost a deliberate decision to keep the
company small and stifle it's gowth. Even having a pair of application
branches can be difficult, let alone 10. I would first start by trying to
make the 1 app suit all users as much as possible and then try to make it
possible for the users to customise the app to their liking where necessary.
I can bet you're giving users customisations that they don't strictly need
(eg hiding fields they don't use).

Michael
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top