473,657 Members | 2,567 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

ASP.Net Mid Tier Component Design

I have a general design question.

What's a 'Best Practice' for middle tier component design?

I'm thinking of a web form that contains data from multiple tables. The
data is supplied from one or more muti-table joins. Is it better to
populate a form by binding to dataset tables or load the data in
collection classes? How are the updates handled? Would there be a
stored procedure for each table that is updated, and have all the
updates wrapped in a transaction?

I know it's a pretty open question. Does someone have a good component
design book recomendation or is some of this available with Microsoft
application blocks?

Thanks in advance,

Gabe

Nov 19 '05 #1
3 1564
There's no best answer to these questions without first knowing a whole lot
about your requirements. Since most of us don't have that kind of time,
it's up to you to decide ultimately. If you want to make an informed
decision, I suggest you read the following book:

Expert One-on-One Visual Basic .NET Business Objects (by Rockford Lhotka)
http://www.amazon.com/exec/obidos/AS...&link_code=as1

or here's the C# version if you prefer:
http://www.amazon.com/exec/obidos/AS...&link_code=as1

--
I hope this helps,
Steve C. Orr, MCSD, MVP
http://SteveOrr.net

"gabe" <ga*****@gmail. com> wrote in message
news:11******** **************@ g14g2000cwa.goo glegroups.com.. .
I have a general design question.

What's a 'Best Practice' for middle tier component design?

I'm thinking of a web form that contains data from multiple tables. The
data is supplied from one or more muti-table joins. Is it better to
populate a form by binding to dataset tables or load the data in
collection classes? How are the updates handled? Would there be a
stored procedure for each table that is updated, and have all the
updates wrapped in a transaction?

I know it's a pretty open question. Does someone have a good component
design book recomendation or is some of this available with Microsoft
application blocks?

Thanks in advance,

Gabe

Nov 19 '05 #2
Try this, it's a whole catalog of free "patterns & practices" guides:

http://msdn.microsoft.com/practices/...t/default.aspx

--

Joshua Mitts
jo****@msn.com

"gabe" <ga*****@gmail. com> wrote in message
news:11******** **************@ g14g2000cwa.goo glegroups.com.. .
I have a general design question.

What's a 'Best Practice' for middle tier component design?

I'm thinking of a web form that contains data from multiple tables. The
data is supplied from one or more muti-table joins. Is it better to
populate a form by binding to dataset tables or load the data in
collection classes? How are the updates handled? Would there be a
stored procedure for each table that is updated, and have all the
updates wrapped in a transaction?

I know it's a pretty open question. Does someone have a good component
design book recomendation or is some of this available with Microsoft
application blocks?

Thanks in advance,

Gabe

Nov 19 '05 #3
Hi Gabe,

It's better not to think in terms of iter *position* but of tier
*functionality* . In other words, the phrase "middle tier" in itself lends to
your confusion. Let me use your question as an example:
I'm thinking of a web form that contains data from multiple tables. The
data is supplied from one or more muti-table joins. Is it better to
populate a form by binding to dataset tables or load the data in
collection classes? How are the updates handled? Would there be a
stored procedure for each table that is updated, and have all the
updates wrapped in a transaction?
Okay, the first thing you mention is a WebForm. That is the presentation
tier. So, we are talking only about the presentation level when we talk
about any kind of user interface.

Second, you mention that the WebForm "contains" data. Incorrect. A user
interface element *presents* data. Although this difference in terminology
may seem purely semantic, it helps to separate the various tiers in your
mind. Yes, in a sense, it contains data, but in a more important sense, it
presents data. That is, the purpose of the presentation tier is to display
data. It is not a storage mechanism. Even though it has storage
capabilities, these are for its own use.

The only thing that should be spoken of as containing data is the data
source. Everything else is simply a mechanism for transporting that data
back and forth to and from the user to and from the data source, or a
mechanism for munging that data in some form or fashion.

The "binding" terminology is excellent for the relationship of data to the
presentation tier, as it implies that the data is not *contained* in the
presentation tier, but merely *bound* or "linked" to it somehow.

So, what you term the "middle" tier is actually more usefully called the
"business" tier. This is the tier which performs business logic with the
data in your app. It applies the business rules of your app to the data it
works with. In a sense, it is the "business end" of your application; the
place where everything really happens. The presentation tier is more of a
messaging utility, a "universal translator" which speaks human at one end,
and business logic at the other.

Below the business tier is another tier of functionality, which can be
called the "data tier." This is not where data is stored either, but is a
set of utilities for communicating with data stores. It is a "universal
translator" between business objects and data stores.

The data store itself can be thought of as a "tier" as well,, but just as
often is not.

In any case, I hope you can see how thinking of tiers in functional terms is
useful.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
A watched clock never boils.

"gabe" <ga*****@gmail. com> wrote in message
news:11******** **************@ g14g2000cwa.goo glegroups.com.. .I have a general design question.

What's a 'Best Practice' for middle tier component design?

I'm thinking of a web form that contains data from multiple tables. The
data is supplied from one or more muti-table joins. Is it better to
populate a form by binding to dataset tables or load the data in
collection classes? How are the updates handled? Would there be a
stored procedure for each table that is updated, and have all the
updates wrapped in a transaction?

I know it's a pretty open question. Does someone have a good component
design book recomendation or is some of this available with Microsoft
application blocks?

Thanks in advance,

Gabe

Nov 19 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

77
5667
by: nospam | last post by:
Reasons for a 3-tier achitecture for the WEB? (NOTE: I said, WEB, NOT WINDOWS. DON'T shoot your mouth off if you don't understand the difference.) I hear only one reason and that's to switch a database from SQL Server to Oracle or DB2 or vice versa... and that's it.... And a lot of these enterprises don't need it as they already know what database they are going to use and they don't plan on switching in and out database in the first...
25
5598
by: David Noble | last post by:
We've been developing a web site using 3-tier architecture for 18 months now. There is a common layer that defines the classes - using XML schemas. The data layer acts as a wrapper to 3 databases - SQL Server, Oracle and AS400. The business layer exposes web services which communicate with the front end, ASP.Net. All 3 tiers are on different boxes. This works well. Now I am leading a team to build a winforms app. I need some advice as
51
4039
by: nospam | last post by:
THIS IS the DOTNETJUNKIES MESSAGE ------------------------- We're Sorry As many of you know we have recently launched SqlJunkies.com. We have overhauled our runtime and will be using it on DotNetJunkies.com also. -------------------------------------------------------------------------- YEP, DOTNET JUNKIES REDESIGN....
16
3018
by: D Witherspoon | last post by:
I am developing a Windows Forms application in VB.NET that will use .NET remoting to access the data tier classes. A very simple way I have come up with is by creating typed (.xsd) datasets. For example dsParts.xsd and including that in the data tier. I then will create a class that looks like this Public Class CPart Inherits dsParts
23
2019
by: Steve Barnett | last post by:
Ok, I've never done n-Tier development and I'm getting confused... Assuming I have a business layer and a data access layer that may be running on different machines, how does my business layer know where my data access layer is running? What is it I have to do in the business layer that "creates" the data access layer on the other server? Second, what do I pass between my business layer and my data access layer? Should I be returning...
0
8310
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
1
8503
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8605
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
6167
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5632
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4158
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4315
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2731
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
1957
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.