Martin if you really really need to know immediately that the campaign name
typed in is unique then you have no choice but to do a lookup. (cant imagine
that been too much of an overhead anyway)
(You will still have to test this condition on Post anyway)
Middle tier is definitely the place for your business rules to get the
benefits of using a three tier system.
Having said that if your client app is always going to be a Delphi app then
doing extra validation in the client does hurt e.g forcing uppercase,
controlling entry into an edit box (old saying prevention better than cure)
etc
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Martin Ease
Sent: Thursday, January 18, 2001 2:24 PM
To: Multiple recipients of list database
Subject: [DUG-DB]: 3 tier and business rules
Hi all
Here is a question which I'd like to get some feedback on:
I first of all will admit that I am a very recent convert to the world of
multi tier. My experience so far is that Delphi makes developing 3 tier
_relatively_ easy, and I enjoy it a lot.
The issue is where to store business rules, as this is what I've heard/read
about to be one of the many benefits of multi tier development.
All business rules ideally would be stored in one common place, i.e. the
middle tier. For a MIDAS application that is the MIDAS server, right?
Now image this example:
On the client I have a screen which lists campaigns. The user can
add/modify/delete campaigns, and amongst other things each campaign must
have a unique name (business rule). If you don't agree with the fact that
this is a business rule, please imagine one that you do agree with as it is
not the central point I am making here.
Now the user wants to know immediately after making a change, or adding a
new campaign, that the name satisfies the uniqueness constraint.
Using client data sets (CDS), the change would only be posted to the MIDAS
server, once the screen is closed (or even once the whole client program
terminates). This does not satisfy the user as they want feedback
immediately.
To get around this, I can either post all changes immediately, or do a
special lookup to determine that the campaign name is unique. In either
case, I have to generate extra traffic between client and server, which is
what the whole multi tier architecture is trying to minimise.
I also know that I can add constraints (which are a form of business rules)
to the dataset on the server, and migrate these to the client via the
provider interface. However, some business rules cannot be expressed as
record level constraints, so what do you do?
I'd be interested in any feedback, suggestions etc.
Cheers
Martin
"WS SMTP relay" made the following
annotations on 01/18/01 14:23:56
----------------------------------------------------------------------------
--
[INFO] -- Content Manager:
[MMSSOV] This e-mail message and any attachments are confidential to
Sovereign Limited and subsidiaries and subject to legal privilege. If you
have received this e-mail in error, please advise the sender immediately and
destroy the message and any attachments. If you are not the intended
recipient you are notified that any use, distribution, amendment, copying or
any action taken or omitted to be taken in reliance of this message or
attachments is prohibited.
============================================================================
==
---------------------------------------------------------------------------
New Zealand Delphi Users group - Database List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz
---------------------------------------------------------------------------
New Zealand Delphi Users group - Database List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz