Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / .NET Framework / New Users / May 2004

Tip: Looking for answers? Try searching our database.

project layout

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
John - 15 May 2004 04:40 GMT
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.

>> Server stuff Method #1:  1 solution, 4 projects, lump layers together
Project
|   ComponentServices
|   |   Employee
|   |   Checkout
|   |   Customer1
|   |   Customer2

>> Server stuff Method #2:  1 solution, 12 projects
Project
|   ComponentServices
|   |   EmployeeFacade
|   |   EmployeeDataAccess
|   |   EmployeeFramework
|   |   CheckoutFacade
|   |   CheckoutDataAccess
|   |   CheckoutFramework
|   |   Customer1Facade
|   |   Customer1DataAccess
|   |   Customer1Framework
|   |   Customer2Facade
|   |   Customer2DataAccess
|   |   Customer2Framework

>> Server stuff Method #3:  3 solutions, 4 projects in each, must use file
references here (project references are better)
Project
|   ComponentServices
|   |   Facade
|   |   |   Employee
|   |   |   Checkout
|   |   |   Customer1
|   |   |   Customer2
|   |   DataAcces
|   |   |   Employee
|   |   |   Checkout
|   |   |   Customer1
|   |   |   Customer2
|   |   Framework
|   |   |   Employee
|   |   |   Checkout
|   |   |   Customer1
|   |   |   Customer2

>> UI Method #1:  1 solution, 4 projects, file references to dll's above
>> Let files get copied locally on dev machines, use junctions on prod to
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

>> UI Method #2:  1 solution, 12 projects, Server stuff mixed with UI
SiteRoot
|   ECommerce
|   |   EmployeeUI
|   |   EmployeeFacade
|   |   EmployeeDataAccess
|   |   EmployeeFramework
|   |   CheckoutUI
|   |   CheckoutFacade
|   |   CheckoutDataAccess
|   |   CheckoutFramework
|   |   Customer1UI
|   |   Customer1Facade
|   |   Customer1DataAccess
|   |   Customer1Framework
|   |   Customer2UI
|   |   Customer2Facade
|   |   Customer2DataAccess
|   |   Customer2Framework
|   |   CommonUI
Eliahu Baker - 17 May 2004 10:46 GMT
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.
John - 17 May 2004 11:46 GMT
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.

> 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.

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.