[fpc-pascal] Servlet server for Fpc apps

Michael Van Canneyt michael at freepascal.org
Mon Mar 30 20:23:53 CEST 2009



On Mon, 30 Mar 2009, Dariusz Mazur wrote:

> Michael Van Canneyt pisze:
> >
> > > > I just want to make them in pascal and keep the codebase and know-how I
> > > > have
> > > > in my team.
> > > >   
> > > >       
> > > As I. I want (i;ve done succesfully) reuse 90% of desktop code in
> > > webbased.
> > > But you want to rewrite quite huge part to JS. Why? What for.
> > >     
> >
> > Because some of the (rather complex) business logic must be in the client to
> > make it respond as a desktop application. 
> >
> > A simplified example: 2 sets of data. 2 comboboxes. User chooses from set 1
> > in combobox 1. Based on his choice, the data in the second checkbox must be
> > filtered. This must be done without round-trip to the server, because the
> > data 2 set is large, and combobox 1 is used often. So I need some part of
> > the business logic (complex relation between items in 2 sets of data) on the
> > client.
> >   
> I don't agree. Only one requirement should be fulfill, respond in reasonable
> time, say less than 500ms.

500 ms is WAY too slow.

> My way:  only visible rows are send to browser, say 30 rows, they took  about
> 3kb, time 3ms in LAN, 100ms when server is on second side of world. Rendering
> 100..300ms, on slow browser maybe longer. Even it it will be done after each
> of user action its no problem for server neither rest of infrastructure. On
> application side: its no matter that is desktop or web based, events and
> response are the same.

Nono. We're not talking about 30 rows, more like 5000-7000. Transmitted once,
when the window is opened. That the window is slow to open initially is OK, 
but once opened it should work lightning fast for the duration of use.

I simplified it a bit, but it is a real life example.

> Your way: first transmit whole database to browser, JS compute what part
> should be display. When set of date is bigger you can send partial. But after
> select combobox all data must be send  to compute filtering. On slight set it
> may work, but not on big.
> But even on small sets of data time of response will be notable (I've seen
> ExtJS demo, its only on browser side, and its work rather slow, can you
> expect, that most of your code will have better optimization)

I've seen it in action in Morfik, and it works fast.
 
> And what about transfer tons on JS to browser?

Ah, morfik has a nice thing for this: you can preload forms asynchronously.


> >   
> > > Till now there is no example of  any issue, that cant be done without
> > > translating pascal to JS without preserve all needs.
> > >
> > >     
> > > > If it was up to me, client/server would do the job just fine. But I
> > > > cannot
> > > > ask all parents of all pupils of all our schools to install a client
> > > > application:
> > > > a) They don't want it. They are mostly computer agnostic, but they can
> > > > surf
> > > > the internet.
> > > > b) Our helpdesk would find and emigrate to an unknown island somewhere
> > > > in
> > > > the 
> > > >    south pacific because of the installation and upgrade problems :-)
> > > >   
> > > >       
> > > I agree. But I think that is new niche (cloud computing) and chance for
> > > me.
> > > This is quite new opportunities,  many approaches , and we should know how
> > > choice proper.
> > >     
> >
> > As far as I'm concerned, Morfik is the correct approach. If I can do what
> > they do in Lazarus and open source: I'm sold.
> >   
> I cant found any site/application prepare by Morfik. Do you know any site,
> that I can see it at work.

The morfik site itself is the best example.
You can also download the chess example. (if it is still available)

Michael.



More information about the fpc-pascal mailing list