project layout

J

John

I'm migrating a medium sized ecommerce platform to .NET. I've had pretty
good success with a series of small windows forms and console apps. This
aspx migration is being done more or less piecemeal - all new dev is aspx,
some old stuff is re-written as needed.

I'm trying to figure out:
1: what's the best way to layout a large project in ASP.NET - without having
everything compiled into 1 dll, without having your data access code in the
website tree
2: what's the best way to keep separate dll's for the aspx pages and share
some code for the UI w.out having to copy a shared.dll to N places (default
answer: use the GAC - but this project doesn't seem "GAC Worthy" <s>)

Right now we have one big solution with 4 layers - UI, Facade, DataAccess
and Framework. Programmers working on various aspx projects have been
dumping everything there. This is NOT the way to go because we end up with
one big Facade.dll and then it's hard for multiple people to work on the
project. So - I layed out below a few things I've been tooling around with.
Some newsgroup posters say "never do file references - always use one big
solution with multiple projects" - that's more or less what we had in our
old COM+ component world. Any thoughts?

I mention 4 units of work here in these examples - these are just the tip of
the iceburg: Employee, Checkout, Customer1, Customer2 - I need to set
this up so that I can extend this to maybe 20 units of work.
Project
| ComponentServices
| | Employee
| | Checkout
| | Customer1
| | Customer2
Project
| ComponentServices
| | EmployeeFacade
| | EmployeeDataAccess
| | EmployeeFramework
| | CheckoutFacade
| | CheckoutDataAccess
| | CheckoutFramework
| | Customer1Facade
| | Customer1DataAccess
| | Customer1Framework
| | Customer2Facade
| | Customer2DataAccess
| | Customer2Framework
references here (project references are better)
Project
| ComponentServices
| | Facade
| | | Employee
| | | Checkout
| | | Customer1
| | | Customer2
| | DataAcces
| | | Employee
| | | Checkout
| | | Customer1
| | | Customer2
| | Framework
| | | Employee
| | | Checkout
| | | Customer1
| | | Customer2
avoid manually copying CommonUI.dll to 3 places
SiteRoot
| ECommerce
| | EmployeeUI
| | | Bin
| | | CommonUIBin - junction to - CommonUI\Bin
| | CheckoutUI
| | | Bin
| | | CommonUIBin - junction to - CommonUI\Bin
| | Customer1UI
| | | Bin
| | | CommonUIBin - junction to - CommonUI\Bin
| | Customer2UI
| | | Bin
| | | CommonUIBin - junction to - CommonUI\Bin
| | CommonUI
| | | Bin
SiteRoot
| ECommerce
| | EmployeeUI
| | EmployeeFacade
| | EmployeeDataAccess
| | EmployeeFramework
| | CheckoutUI
| | CheckoutFacade
| | CheckoutDataAccess
| | CheckoutFramework
| | Customer1UI
| | Customer1Facade
| | Customer1DataAccess
| | Customer1Framework
| | Customer2UI
| | Customer2Facade
| | Customer2DataAccess
| | Customer2Framework
| | CommonUI
 
G

Guest

I would try organize 4 groups, each of them have its different project. While some milestones occur(every day, while "seirous" change took place, ..) such a group conducts small setup and deliver its output th other groups. It allows you some more control.
 
J

John

thanks for the reply.
I've setup the web project according to this:
http://support.microsoft.com/default.aspx?scid=kb;en-us;307467#5

This way - at least I can share a common header and footer user control
between all the pages.

Eliahu Baker said:
I would try organize 4 groups, each of them have its different project.
While some milestones occur(every day, while "seirous" change took place,
...) such a group conducts small setup and deliver its output th other
groups. It allows you some more control.
 

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