Board index » delphi » How to DataSnap without having a heart atack.

How to DataSnap without having a heart atack.

Hi guys,

Please dont get me wrong this is not Spam ata all.
Youll all know me as a user of this forum.

I was never able do to a three-tier application,doesnt
Matter what tecnhology i choose,SOAP,DCOM,HTPP.
For me they were all dificult to configure.

I think that the only things that stay are the easy and powerfull
Ones,thats why for example that WebSnap wasnt sucessfull and
Intraweb was packed with Delphi 7.

Some days ago i found an article of Dr.Bob about REM OBJECTS,
At first i didnt give it much attention because i thought about it as
Just a way of doing Web Services,but it was really more than that.

At least for me Rem Objects is the only viable way of doing Three-tier
Applications in Delphi,because its not only easy,but it has already support
For both compression and encryption.

In Just few hours i understood the concepts of Rem Objects,and create my first
Sample.

Im not saying this is a perfect project(At least not yet),The guys have a lot of
work to do especially about documentation.

But as i said at least for me its the only viable option,because when i cant confi-
gure Dcom,i dont think im a Donkey i think that Dcom should be easier.

So im not wrong ,the architeture is wrong.

You can download a trial version at www.remobjects.com ,they have a very
Nice and helpfull users group too,it helps while the documentation is not finished.

Regards,
Marcello Dias

 

Re:How to DataSnap without having a heart atack.


Quote
"Marcello Dias" <ME...@HOTMAIL.COM> wrote in message

news:e8148a03.0301091515.6ab2fd@posting.google.com...

Quote
> Hi guys,

> Please dont get me wrong this is not Spam ata all.
> Youll all know me as a user of this forum.

> I was never able do to a three-tier application,doesnt
> Matter what tecnhology i choose,SOAP,DCOM,HTPP.
> For me they were all dificult to configure.

Well, everythinhg is difficult if you have no expirience. Datasanp is IMO
pretty much simple. Once you understand the demo that comes with Delphi you
only need to learn the neccessary tricks'n'tips about common problems like
master-detail etc.

Websnap I hate, though. ;-)

Re:How to DataSnap without having a heart atack.


"Smola" <supersmola...@VEinet.hr> skrev i melding
news:avm5gd$27h$1@garrison.globalnet.hr...

Quote

> "Marcello Dias" <ME...@HOTMAIL.COM> wrote in message
> news:e8148a03.0301091515.6ab2fd@posting.google.com...
> > Hi guys,

> > Please dont get me wrong this is not Spam ata all.
> > Youll all know me as a user of this forum.

> > I was never able do to a three-tier application,doesnt
> > Matter what tecnhology i choose,SOAP,DCOM,HTPP.
> > For me they were all dificult to configure.

> Well, everythinhg is difficult if you have no expirience. Datasanp is IMO
> pretty much simple. Once you understand the demo that comes with Delphi
you
> only need to learn the neccessary tricks'n'tips about common problems like
> master-detail etc.

DataSnap (should mention that I'm still on D5) is still quite immature,
IMHO.
You may run into various problems, and you'll have a hard time trying to
figure out what's going on under the hood. Especially handling of
constraints is messy, as you have too little control over what's been taken
care of in client and what's been handled in AppServer.
In fact, I've been forced to modify both dbclient.pas and provider.pas to
make it work.
This you may live with.

What's harder is simply how to "layer" the application ? By default, you
find yourself maintaining all 3 layers simultaneously, a true nightmare. I
decided it just can't be done that way, and created a framework using a
metadatabase describing most of the dataset formatting properties, lookup
definitions, constraints, etc..
- How do you put "business rules" in middle layer without ending up with a
totally imbesile client ? Everything looks great until you push 'Save'
button, then you get all info on how things *ought* to be...
- How do you make one field's value control appearance of controls (enabled,
etc. ?) and calculate descriptive values ? In client, of course, but aren't
those "business rules" as much as a "valid date check" or a "maximum credit
check" ?
Nice theory, "putting business rules in middle layer", but I have yet to see
a good strategy described.

Working with DataSnap may seem simple & powerful, but creating a large
scale, working, maintainable application is a real challenge.

--
Bj?rge S?ther
bjorge@hahaha_itte.no

Re:How to DataSnap without having a heart atack.


Quote
"Bj?rge S?ther" <bjorge@hahaha_itte.no> wrote in message

news:kHxT9.9098$CG6.172061@news4.e.nsc.no...

Quote
> DataSnap (should mention that I'm still on D5) is still quite immature,
> IMHO.

They had various bugs in D6 but the patch fixes it.

Quote
> You may run into various problems, and you'll have a hard time trying to
> figure out what's going on under the hood. Especially handling of
> constraints is messy, as you have too little control over what's been
taken
> care of in client and what's been handled in AppServer.
> In fact, I've been forced to modify both dbclient.pas and provider.pas to
> make it work.
> This you may live with.

May be. But however our app worked pretty much well. It's a financial/stock
application (I don't know the right engllish expresions).

Quote
> What's harder is simply how to "layer" the application ? By default, you
> find yourself maintaining all 3 layers simultaneously, a true nightmare.

Yes, in deed.

Quote
> - How do you put "business rules" in middle layer without ending up with a
> totally imbesile client ? Everything looks great until you push 'Save'
> button, then you get all info on how things *ought* to be...

Imbecile client + server optimistic locking problems. These are the things
that you just have to plan with. They're after all a web-application
characteristic as well.

Quote
> - How do you make one field's value control appearance of controls
(enabled,
> etc. ?) and calculate descriptive values ? In client, of course, but
aren't
> those "business rules" as much as a "valid date check" or a "maximum
credit
> check" ?
> Nice theory, "putting business rules in middle layer", but I have yet to
see
> a good strategy described.

There are two kinds of business rules - client and server. :-)))

Quote
> Working with DataSnap may seem simple & powerful, but creating a large
> scale, working, maintainable application is a real challenge.

Emphasis on maintainable. In my expirience companies try to port their apps
from two-tier architecture to three-tier without even completing they app or
with an app that is poorely designed. But of course, people are often
incompetent.
 :-(

And a word about Websnap. It is functional and robust. You can make a
web-app pretty fast and simple and maintaniable and all. But Borland didn't
realize that people don't want that, people want friendly GUI, DHTML, CSS
and all other neat stuff that once they get into your websnap app
requrements are real pain in the ass to mantain and design.

That's my 2c, dotNET is what I like better.

Re:How to DataSnap without having a heart atack.


Hi,

Im not a begginer but im not stupid enough to study something that
i know wont be a standard.
Thats why i didnt take WebSnap in consideration,and know even
Borland tel me to use intraWeb if i have to use a more productive
environment.
I tried to use the "standard" ways of using DataSnap,of course they can
work,but they have too much steps,so i wait for something more productive
and thats what Rem Objects is.

I bet Borland will ditribute Rem Objects in The future and say the same thing
they did with Intraweb.

And I think Borland is right ,it doesnt matter who did it,but if its available
or not.

Regards,
Marcello Dias

Quote
"Smola" <supersmola...@VEinet.hr> wrote in message <news:avmdq4$56s$1@garrison.globalnet.hr>...
> "Bj?rge S?ther" <bjorge@hahaha_itte.no> wrote in message
> news:kHxT9.9098$CG6.172061@news4.e.nsc.no...
> > DataSnap (should mention that I'm still on D5) is still quite immature,
> > IMHO.

> They had various bugs in D6 but the patch fixes it.

> > You may run into various problems, and you'll have a hard time trying to
> > figure out what's going on under the hood. Especially handling of
> > constraints is messy, as you have too little control over what's been
>  taken
> > care of in client and what's been handled in AppServer.
> > In fact, I've been forced to modify both dbclient.pas and provider.pas to
> > make it work.
> > This you may live with.

> May be. But however our app worked pretty much well. It's a financial/stock
> application (I don't know the right engllish expresions).

> > What's harder is simply how to "layer" the application ? By default, you
> > find yourself maintaining all 3 layers simultaneously, a true nightmare.

> Yes, in deed.

> > - How do you put "business rules" in middle layer without ending up with a
> > totally imbesile client ? Everything looks great until you push 'Save'
> > button, then you get all info on how things *ought* to be...

> Imbecile client + server optimistic locking problems. These are the things
> that you just have to plan with. They're after all a web-application
> characteristic as well.

> > - How do you make one field's value control appearance of controls
>  (enabled,
> > etc. ?) and calculate descriptive values ? In client, of course, but
>  aren't
> > those "business rules" as much as a "valid date check" or a "maximum
>  credit
> > check" ?
> > Nice theory, "putting business rules in middle layer", but I have yet to
>  see
> > a good strategy described.

> There are two kinds of business rules - client and server. :-)))

> > Working with DataSnap may seem simple & powerful, but creating a large
> > scale, working, maintainable application is a real challenge.

> Emphasis on maintainable. In my expirience companies try to port their apps
> from two-tier architecture to three-tier without even completing they app or
> with an app that is poorely designed. But of course, people are often
> incompetent.
>  :-(

> And a word about Websnap. It is functional and robust. You can make a
> web-app pretty fast and simple and maintaniable and all. But Borland didn't
> realize that people don't want that, people want friendly GUI, DHTML, CSS
> and all other neat stuff that once they get into your websnap app
> requrements are real pain in the ass to mantain and design.

> That's my 2c, dotNET is what I like better.

Re:How to DataSnap without having a heart atack.


Just try to use Google or Yahoo to see what

Bob Swart and Dave Fuller  hace to say about Rem Objects.

Maybe theyre not experienced too.

Regards,
Marcello Dias

Re:How to DataSnap without having a heart atack.


Quote
"Marcello Dias" <ME...@HOTMAIL.COM> wrote in message

news:e8148a03.0301110745.5cdcb4cf@posting.google.com...

Quote
> I bet Borland will ditribute Rem Objects in The future and say the same
thing
> they did with Intraweb.

> And I think Borland is right ,it doesnt matter who did it,but if its
available
> or not.

Well, I really hope so, but sometimes you just can't wait so you have to
stick with what Borland offers. I tried Asta too(another multitier
"engine") - didn't like it because the code was written by someone who never
read any book about writing code. I cannot rely on such code. :-(

Re:How to DataSnap without having a heart atack.


"Smola" <supersmola...@VEinet.hr> skrev i melding
news:avmdq4$56s$1@garrison.globalnet.hr...

Quote

> "Bj?rge S?ther" <bjorge@hahaha_itte.no> wrote in message
> news:kHxT9.9098$CG6.172061@news4.e.nsc.no...
> > DataSnap (should mention that I'm still on D5) is still quite immature,
> > IMHO.

> They had various bugs in D6 but the patch fixes it.

I didn't only mean 'bugs'. I meant something like "needs to be developed to
cover the area it was supposed to cover".

Quote
> > You may run into various problems, and you'll have a hard time trying to
> > figure out what's going on under the hood. Especially handling of
> > constraints is messy, as you have too little control over what's been
> taken
> > care of in client and what's been handled in AppServer.
> > In fact, I've been forced to modify both dbclient.pas and provider.pas
to
> > make it work.
> > This you may live with.

> May be. But however our app worked pretty much well. It's a
financial/stock
> application (I don't know the right engllish expresions).

> > What's harder is simply how to "layer" the application ? By default, you
> > find yourself maintaining all 3 layers simultaneously, a true nightmare.

> Yes, in deed.

> > - How do you put "business rules" in middle layer without ending up with
a
> > totally imbesile client ? Everything looks great until you push 'Save'
> > button, then you get all info on how things *ought* to be...

> Imbecile client + server optimistic locking problems. These are the things
> that you just have to plan with. They're after all a web-application
> characteristic as well.

Yes. But  then, why not rely on the DB server throwing exceptions, etc. ?

Quote
> > - How do you make one field's value control appearance of controls
> (enabled,
> > etc. ?) and calculate descriptive values ? In client, of course, but
> aren't
> > those "business rules" as much as a "valid date check" or a "maximum
> credit
> > check" ?
> > Nice theory, "putting business rules in middle layer", but I have yet to
> see
> > a good strategy described.

> There are two kinds of business rules - client and server. :-)))

...but what kind of business rules belong in middle layer ?

Quote
> > Working with DataSnap may seem simple & powerful, but creating a large
> > scale, working, maintainable application is a real challenge.

> Emphasis on maintainable. In my expirience companies try to port their
apps
> from two-tier architecture to three-tier without even completing they app
or
> with an app that is poorely designed. But of course, people are often
> incompetent.
>  :-(

...and, additionally, DataSnap (I'm really talking "Midas" here, so I may
have missed radical changes) IMHO lacks support for necessary stuff like
propagating metadata to the client, a centralized changes-notification
system, 'system shutdown', 'client upgrades', etc.... Stuff that an
Application Server layer could easily cope with.

--
Bj?rge S?ther
bjorge@hahaha_itte.no

Re:How to DataSnap without having a heart atack.


"Smola" <supersmola...@VEinet.hr> skrev i melding
news:avpg4d$eml$1@sunce.iskon.hr...

Quote

> "Marcello Dias" <ME...@HOTMAIL.COM> wrote in message
> news:e8148a03.0301110745.5cdcb4cf@posting.google.com...
> > I bet Borland will ditribute Rem Objects in The future and say the same
> thing
> > they did with Intraweb.

> > And I think Borland is right ,it doesnt matter who did it,but if its
> available
> > or not.

> Well, I really hope so, but sometimes you just can't wait so you have to
> stick with what Borland offers. I tried Asta too(another multitier
> "engine") - didn't like it because the code was written by someone who
never
> read any book about writing code. I cannot rely on such code. :-(

Did you ever have a look at Francois Piette's MidWare ?

--
Bj?rge S?ther
bjorge@hahaha_itte.no

Re:How to DataSnap without having a heart atack.


Quote
"Bj?rge S?ther" <bjorge@hahaha_itte.no> wrote in message

news:wflU9.10109$CG6.183792@news4.e.nsc.no...

Quote
> "Smola" <supersmola...@VEinet.hr> skrev i melding
> news:avpg4d$eml$1@sunce.iskon.hr...

> > "Marcello Dias" <ME...@HOTMAIL.COM> wrote in message
> > news:e8148a03.0301110745.5cdcb4cf@posting.google.com...
> > > I bet Borland will ditribute Rem Objects in The future and say the
same
> > thing
> > > they did with Intraweb.

> > > And I think Borland is right ,it doesnt matter who did it,but if its
> > available
> > > or not.

> > Well, I really hope so, but sometimes you just can't wait so you have to
> > stick with what Borland offers. I tried Asta too(another multitier
> > "engine") - didn't like it because the code was written by someone who
> never
> > read any book about writing code. I cannot rely on such code. :-(

> Did you ever have a look at Francois Piette's MidWare ?

No, did you? Is it good as the ICS?

Re:How to DataSnap without having a heart atack.


Quote
"Bj?rge S?ther" <bjorge@hahaha_itte.no> wrote in message

news:bflU9.10108$CG6.183792@news4.e.nsc.no...

Quote
> > > - How do you put "business rules" in middle layer without ending up
with
> a
> > > totally imbesile client ? Everything looks great until you push 'Save'
> > > button, then you get all info on how things *ought* to be...

> > Imbecile client + server optimistic locking problems. These are the
things
> > that you just have to plan with. They're after all a web-application
> > characteristic as well.

> Yes. But  then, why not rely on the DB server throwing exceptions, etc. ?

One of the reasons we introduced middle tier was to get independent from the
DB engine. However, that never came to use, we always stayed with Oracle.

Quote
> > > - How do you make one field's value control appearance of controls
> > (enabled,
> > > etc. ?) and calculate descriptive values ? In client, of course, but
> > aren't
> > > those "business rules" as much as a "valid date check" or a "maximum
> > credit
> > > check" ?
> > > Nice theory, "putting business rules in middle layer", but I have yet
to
> > see
> > > a good strategy described.

> > There are two kinds of business rules - client and server. :-)))

> ...but what kind of business rules belong in middle layer ?

By server rules I ment middletier rules (the MIDAS server). We used many
remote functions just to provide such temporary info as the maximum credit
or amount of available items but after client posted it's data we had to
recheck everything.

Anyway, I can't give you a good strategy. Our app is far from good strategy
design, we often had to upgrade the clients due to the server changes and
vice versa. We have one client as a Delphi application and another as the
web application (ISAPI) both connecting to the same middle tier server so
this 3-tier approach was the right thing to do.

Quote
> ...and, additionally, DataSnap (I'm really talking "Midas" here, so I may
> have missed radical changes) IMHO lacks support for necessary stuff like
> propagating metadata to the client, a centralized changes-notification
> system, 'system shutdown', 'client upgrades', etc.... Stuff that an
> Application Server layer could easily cope with.

I wander what happened to MIDAS in D7.

Re:How to DataSnap without having a heart atack.


"Smola" <supersmola...@VEinet.hr> skrev i melding
news:avst0g$c1g$1@sunce.iskon.hr...

Quote
> I wander what happened to MIDAS in D7.

The only thing I've heard is that D7-version is royalty-free, and that it
may be compiled into the executable.

--
Bj?rge S?ther
bjorge@hahaha_itte.no

Other Threads