Click here to Skip to main content
15,900,258 members
Home / Discussions / Design and Architecture
   

Design and Architecture

 
GeneralRe: Data structure design Pin
Ray Cassick3-Nov-08 7:04
Ray Cassick3-Nov-08 7:04 
AnswerRe: Data structure design Pin
Mark Churchill3-Nov-08 13:56
Mark Churchill3-Nov-08 13:56 
GeneralRe: Data structure design Pin
hpjchobbes4-Nov-08 16:55
hpjchobbes4-Nov-08 16:55 
GeneralRe: Data structure design Pin
Mark Churchill4-Nov-08 17:19
Mark Churchill4-Nov-08 17:19 
AnswerRe: Data structure design Pin
Arash Partow4-Nov-08 23:04
Arash Partow4-Nov-08 23:04 
AnswerRe: Data structure design Pin
CodingYoshi15-Nov-08 8:21
CodingYoshi15-Nov-08 8:21 
QuestionBest Practices for Code Organization Pin
minus_one30-Oct-08 21:37
minus_one30-Oct-08 21:37 
AnswerRe: Best Practices for Code Organization Pin
Urs Enzler2-Nov-08 0:20
Urs Enzler2-Nov-08 0:20 
We organize our projects normally in this way:

1)
One solution for all projects we are currently developing. Developing with several solutions at once is very cumbersome.

2)
However, if there are components that can be extracted in some sort of library or framework then do it (only feasable for components that can be developed independently for the most part, because of 1)

3)
If our system is built up from different "sub-systems" (sometimes there is a relationship with tiers, but it's possible to have either several sub-systems per tier or viceversa) then we arrange them within solution folders (note that solution folders are virtual folders and that there are no folders in file system for them).

4)
We try to keep the number of projects limited because a large number of projects has a negative effect on build performance. Therefore we wouldn't arrange our project the way you suggest in your post (propably). Keep in mind that assemblies are a deployment unit, nothing else. There is no problem in packing several components into a single assembly, as long as they are deployed together. Requirements on releasing individual components can however be a reason to seperate components into different assemblies.

5) For each project we habe an additional unit test project to seperate the tests from production code. We use a naming rule: for project MySystem.MySubsystem.MyWhatever.dll exists a MySystem.MySubsystem.MyWhatever.Test.dll. This simplifies out NAnt script for building, testing and releasing our software.

6)
Namespaces are hierarchical and should be used in this way. That means that we express abstractions with namespaces. E.g: MySystem.MyComponent contains everything that is used in that component and MySystem.MyComponent.MyImplForCaseX contains the details for a specific extension while the code in the subnamespace can access the content of its parent namespace.
This results in very little access to sibling or child namespaces, thus supporting loose coupling of components.

7)
We use subversion as version control system. With the following structure (this is however really project specific):

root/
trunk/
doc/
source/
libs/ contains all 3rd party dlls our projects reference, built up with svn-externals and real dlls
scripts/ contains all NAnt scripts for building, unit testing and releasing
tools/ tools used for building etc.
releases/
Release 1.0/
[trunk/] only if release is modified (bug fixes)
[releases/] "


That's all I can recall on a Sunday Morning Big Grin | :-D

-^-^-^-^-^-^-^-
no risk no funk

AnswerRe: Best Practices for Code Organization Pin
Eddy Vluggen2-Nov-08 22:52
professionalEddy Vluggen2-Nov-08 22:52 
QuestionMultiple database support Pin
Atul Kharecha30-Oct-08 0:40
Atul Kharecha30-Oct-08 0:40 
AnswerRe: Multiple database support Pin
Giorgi Dalakishvili30-Oct-08 1:16
mentorGiorgi Dalakishvili30-Oct-08 1:16 
AnswerRe: Multiple database support Pin
Urs Enzler2-Nov-08 0:22
Urs Enzler2-Nov-08 0:22 
AnswerRe: Multiple database support Pin
Giorgi Dalakishvili3-Nov-08 8:06
mentorGiorgi Dalakishvili3-Nov-08 8:06 
RantRe: Multiple database support Pin
Jessn9-Dec-08 10:38
Jessn9-Dec-08 10:38 
AnswerRe: Multiple database support... example [modified] Pin
Jessn9-Dec-08 10:40
Jessn9-Dec-08 10:40 
GeneralReplicating Business Rules on a Web Client Pin
Brady Kelly28-Oct-08 0:00
Brady Kelly28-Oct-08 0:00 
GeneralRe: Replicating Business Rules on a Web Client Pin
Ray Cassick4-Nov-08 10:51
Ray Cassick4-Nov-08 10:51 
GeneralRe: Replicating Business Rules on a Web Client Pin
Mark Churchill4-Nov-08 12:25
Mark Churchill4-Nov-08 12:25 
QuestionPatterns Pin
CodingYoshi23-Oct-08 3:57
CodingYoshi23-Oct-08 3:57 
AnswerRe: Patterns Pin
Leslie Sanford23-Oct-08 11:52
Leslie Sanford23-Oct-08 11:52 
AnswerRe: Patterns Pin
Mark Churchill23-Oct-08 13:36
Mark Churchill23-Oct-08 13:36 
GeneralRe: Patterns Pin
CodingYoshi24-Oct-08 3:38
CodingYoshi24-Oct-08 3:38 
GeneralRe: Patterns Pin
Urs Enzler2-Nov-08 0:30
Urs Enzler2-Nov-08 0:30 
GeneralRe: Patterns Pin
Mark Churchill2-Nov-08 14:22
Mark Churchill2-Nov-08 14:22 
GeneralRe: Patterns Pin
Urs Enzler2-Nov-08 20:56
Urs Enzler2-Nov-08 20:56 

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.