3 tier design best practices for multi user data entry applications

Hi experts,

Some design experience required please.

I'm about to create a 3-tier data-entry application (win forms) and am unsure about the link between Business tier (middle) and Data Access tiers. My impression was that the Data Access tier handles all access to the database and populates class properties in the middle tier. The middle tier therefore has no access to any data objects (dataset, datareader, connections etc).

Most of the literature/code samples I've found have data objects all over the application or have a thin Data Access tier returning a data object to the middle tier for processing.

I'm looking for other developers experiences that I can scale up to larger applications and web applications as future projects are increasing in size compared to current/earlier projects. Links to useful articles are also highly desired.

I've put the maximum points on here as I believe there may be many responses that deserve points.

Thanks

PF
LVL 1
PFranksAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

dancebertCommented:
>Most of the literature/code samples I've found have data objects
>all over the application or have a thin Data Access tier returning
>a data object to the middle tier for processing.

Yep.  It's easier and faster to code that way.  The downside is that the app is tightly coupled to the data access model and the database.  Switching databases, say from Sql Server to Oracle, in a app like this requires a huge rewrite.

But how often does one need to switch databases or data access models (e.g., ADO)?  Not very.  [set cynicism on] Besides, if either does need to be switched, the original developer will probably be long gone and it's not his problem.  The time needed to develop the app is his problem [set cynicism off]

Rockford Lhotka wrote some decent stuff on VB6 N-tier for Wrox, don't know what he's done lately.
PFranksAuthor Commented:
Thanks dancebert

I've always been of the opinion that the data tier should contain all the data related activity and this is abstracted from the middle tier (ie. no access to connections, datasets etc from the middle tier - a DB version of each class exists in the data tier which proccesses and populates the contents of its middle tier equivalent).

I'm coming to the conclusion that most application development is done based on getting the job done quickly, not with a well designed model. To me this is a short term gain as a well designed model can start paying for itself after using it a couple of times.

I'll look into Lhotka's recent work .

Thanks
PF
dancebertCommented:
>I've always been of the opinion that the data tier should contain all the data related activity and this is abstracted from the middle tier

Agreed.  One compromise I've done is that when the data is read only, a data object is passed to the middle tier, but if there is any calculations or updating then the info gets passed as a class or some collection of classes.  

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
PFranksAuthor Commented:
Thanks for confirming I wasn't looking at this the wrong way.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.