tags:

views:

710

answers:

2
A: 

We usually keep SourceSafe projects, project names, namespaces and directory structures in sync.

For example, given our company name as XCENT the SourceSafe structure and the corresponding directory structure for App1 looks like:

\XCENT
\XCENT\App1
\XCENT\App1\UI
\XCENT\App1\UI\Test //test harness for UI
\XCENT\App1\Data
\XCENT\App1\Data\Test //test harnesses for Data

etc.

The UI project is named XCENT.App1.UI.cproj, and the classes within that namespace are XCENT.App1.UI

We work for many clients as well so work specifically for them is prefixed with their name. Client1\App1\UI, etc.

Everybody in our firm uses the same conventions and it is immediately clear where everything fits.

If it makes sense to segment logical spacing further we do so. Such other segmentation includes .Export, .Import, .Reporting, .Security, etc.

Bill
+2  A: 

For me it depends on the model I'm following. If I'm using MVC it owuld be

Project
-Models
-Controllers
-Views

Or for MVP it would be

Project
-Models
-Presenters
-Views

Under the views I seperate them into namespaces relevant to the controllers, I.E. if I have a controller to handle inventory transactions I might have it as

Project
-Models
--Inventory
-Controllers
--Inventory
---TransactionsController.cs
-Views
--Inventory
---Transactions
----EditTransactionsView.dfm

For interfaces I put the interface in the same directory as the implementations.

Odd