Click here to Skip to main content
15,895,192 members
Home / Discussions / Design and Architecture
   

Design and Architecture

 
GeneralRe: class XXX and class XXXImpl Pin
Shog925-May-08 12:47
sitebuilderShog925-May-08 12:47 
GeneralRe: class XXX and class XXXImpl Pin
Scott Dorman25-May-08 14:12
professionalScott Dorman25-May-08 14:12 
GeneralRe: class XXX and class XXXImpl Pin
Ahmed Charfeddine26-May-08 23:23
Ahmed Charfeddine26-May-08 23:23 
GeneralRe: class XXX and class XXXImpl Pin
Mark Churchill9-Jun-08 18:20
Mark Churchill9-Jun-08 18:20 
QuestionAdvice on Architecture for customized application Pin
ruben ruvalcaba20-May-08 4:20
ruben ruvalcaba20-May-08 4:20 
AnswerRe: Advice on Architecture for customized application Pin
Mycroft Holmes23-May-08 1:13
professionalMycroft Holmes23-May-08 1:13 
GeneralRe: Advice on Architecture for customized application Pin
ruben ruvalcaba23-May-08 4:47
ruben ruvalcaba23-May-08 4:47 
AnswerRe: Advice on Architecture for customized application Pin
Scott Dorman25-May-08 2:19
professionalScott Dorman25-May-08 2:19 
For an application like this OO concepts will only take you so far. Effectively what you are looking at building is an extensible framework that allows third-party customizations without the need to change code. Systems like this can be built but they are not trivial.

You need to start at the framework level and build your core framework in a very well structured way. Even though your core components are related to one another, I would build them as separate pieces as much as possible and provide the hooks necessary for them to interoperate. You also want to make sure that you have a robust data layer.

One approach that I have used in the past is to build things up in layers. I had a data layer that understood XML (and XML only). The data layer had the responsibility of parsing that XML and inserting data into the database and also taking data out of the database and putting it back into XML. My business objects were effectively specialized dictionaries.

The flexibility in the user interface is also going to be a challenge, although if you can guarantee that certain elements will always be there (and in the same layout) you can take advantage of the visual inheritance capabilities offered through Visual Studio. (This is nothing more than regular inheritance where your base class is a visually designable "thing" (like a form or user control). As long as that base class is not abstract you can visually design the derived class in VS just like you normally would.)

As for distribution of changes/fixes, you need to make sure everything is built in a very modular fashion (separate DLLs or assemblies for each component). That will allow you to update specific portions as needed.

If you want to go beyond this and actually implement a system that allows for this without code changes you need a lot more work and design as it will require publishing type services to update the database, which will also require conflict resolution to ensure that you don't remove user-made customizations with an update. From there the problem gets more complex as your business objects must be written in such a way as to be able to expose an unknown number of properties and metadata. The UI then needs to know how to render those objects in a completely dynamic fashion, with rules that govern how that layout works in the face of an unknown number of properties. All of that is possible, but definately not trivial.

Scott.

—In just two days, tomorrow will be yesterday.
—Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai

[Forum Guidelines] [Articles] [Blog]

GeneralRe: Advice on Architecture for customized application Pin
ruben ruvalcaba26-May-08 4:46
ruben ruvalcaba26-May-08 4:46 
GeneralRe: Advice on Architecture for customized application Pin
Scott Dorman26-May-08 5:09
professionalScott Dorman26-May-08 5:09 
Question'Dynamic' String Formatting Pin
HoltDan18-May-08 15:07
HoltDan18-May-08 15:07 
AnswerRe: 'Dynamic' String Formatting Pin
led mike19-May-08 4:58
led mike19-May-08 4:58 
GeneralRe: 'Dynamic' String Formatting Pin
HoltDan19-May-08 5:50
HoltDan19-May-08 5:50 
GeneralRe: 'Dynamic' String Formatting Pin
led mike19-May-08 6:08
led mike19-May-08 6:08 
GeneralRe: 'Dynamic' String Formatting Pin
Roger Alsing20-May-08 4:06
Roger Alsing20-May-08 4:06 
GeneralRe: 'Dynamic' String Formatting Pin
Scott Dorman25-May-08 2:31
professionalScott Dorman25-May-08 2:31 
QuestionHelp with a inheritance best practices question Pin
turnergg18-May-08 8:20
turnergg18-May-08 8:20 
AnswerRe: Help with a inheritance best practices question Pin
led mike19-May-08 4:51
led mike19-May-08 4:51 
AnswerRe: Help with a inheritance best practices question Pin
Tim Yen24-May-08 19:40
Tim Yen24-May-08 19:40 
QuestionDecalring global variable in VBA editor. Pin
raja baireddy17-May-08 2:31
raja baireddy17-May-08 2:31 
AnswerRe: Decalring global variable in VBA editor. Pin
Pete O'Hanlon17-May-08 8:46
mvePete O'Hanlon17-May-08 8:46 
GeneralRe: Decalring global variable in VBA editor. Pin
led mike19-May-08 4:43
led mike19-May-08 4:43 
Questiontracking sales of electronic pump machines Pin
mickeyen17-May-08 2:16
mickeyen17-May-08 2:16 
AnswerRe: tracking sales of electronic pump machines Pin
led mike19-May-08 5:05
led mike19-May-08 5:05 
GeneralRe: tracking sales of electronic pump machines Pin
mickeyen25-May-08 15:33
mickeyen25-May-08 15:33 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.