Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread WebBuilder 2 Questions
Wed, Feb 18 2015 6:10 PMPermanent Link

Neil Huhta

Hello All:

   I have a Delphi database application which is moderately complex and
allows car dealers to process a car cale and its associated financing. I am
looking to move this application to the web and have questions anbout
WebBuilder 2 and sort of about Web Development itself. I have read thru the
online materials but have many questions.

   1) Web Builder creates the GUI interface - can and how would I integrate
any existing Delphi code into my backend ???  Do I need a seperate server
component of some type ???  My appplication takes the user data - then
parses it into literally 1,500 combinations which are then used to display
in different types of reports - my thinking is this type of activity should
be done at the server - with only the needed results sent back to the
client. I used DBISAM for the database but might move to ElevateDB.

   2) We have 100+ clients with 5-20 users a piece - can I scale a
WebBuilder app as my customer base grows ??? Big picture - How is this done
???

   2) My app contains social security numbers, credit bureaus and other
sensitive information - is WebBuilder deployable with a reasonable amount of
security to protect this information ???

   3) Reporting is huge for me - we display reports and also produce
pdf's - in Delphi we use ReportBuilder - what reporting options are
available in WebBuilder2 ???

   4) I am used to having significant control over the user interface - and
it is important so my app takes complex processes and simplifies them - is
WebBuilder2 robust enough for this type of an application ???

   5) Can I build tabbed application interfaces in WebBuilder2 ??? Version
1 did not handle this - I am interested in 2 types of tabs - #1 the newer
side tabbed controls - common in ASP applications where sets of large
buttons are on the left and when you click on 1 it opens up a new window -
is this in WebBuilder 2 ??? Can it be reasonably built ???  I am also
interested in having traditional windows tabs on the top of a form - you
might have a credit application with 1 tab for customer 1 tab for employment
info 1 tab for home info, etc - can this be done in Web Builder 2 ???

   Sorry for the basic nature of my questions - I am excited to finally
start to get on the web. My plan is to build a few simple applications to
get an understanding of all of the parts before rebuilding my large
application. Thank you very much.

Neil

Wed, Feb 18 2015 9:34 PMPermanent Link

Raul

Team Elevate Team Elevate

On 2/18/2015 6:10 PM, Huhtaman wrote:

Neil,

I'll try to answer some of these and i'm sure others will chime in as well.


>      1) Web Builder creates the GUI interface - can and how would I integrate
> any existing Delphi code into my backend ???  Do I need a seperate server
> component of some type ???  My appplication takes the user data - then
> parses it into literally 1,500 combinations which are then used to display
> in different types of reports - my thinking is this type of activity should
> be done at the server - with only the needed results sent back to the
> client. I used DBISAM for the database but might move to ElevateDB.


Yes - you will need a back-end server application (basically a web
server that also allows EWB to interact with the back end thru the web
requests). EWB ships with a web server that does DBISAM and EDB natively
and can be extended as well (using delphi code so you could just create
some modules for your business logic using this).

However if your app already has significant business logic that you'd
want to reuse then it might make sense to build a web server capability
into your app (using either something like INdy HTTP server or any of
the other frameworks if you'd prefer to not have to write as much code
yourself - remobjects, etc).

You will need to do bit of design here as it does make sense to do as
much of the heavy lifting on the server but that likely means you server
side will be more business logic and not just a direct database table
access logic.

>      2) We have 100+ clients with 5-20 users a piece - can I scale a
> WebBuilder app as my customer base grows ??? Big picture - How is this done
> ???

EWB app always runs in the browser so the main bottleneck will be on
server side. Depending on how much processing the server side does vs
the EWB app client side will affect your sizing. Basically if EWB does
lot of the work and just downloads some data from server and updates the
server occasionally then you can scale it more easily. However, if EWB
app is used for data entry only and all operations have to go thru web
server (and it's processing intensive) you might need to plan for
multiple back-ends server and some simple load balancing model.

>      2) My app contains social security numbers, credit bureaus and other
> sensitive information - is WebBuilder deployable with a reasonable amount of
> security to protect this information ???

You basically need to host it over TLS/SSL and require users to login -
EWB app is pure javascript so do not embed any magic passwords or such
in code but always prompt user for credentials.

>      3) Reporting is huge for me - we display reports and also produce
> pdf's - in Delphi we use ReportBuilder - what reporting options are
> available in WebBuilder2 ???

I have not done this myself but number of people have used the server
side components to generate a pdf or html version of the report and then
just show it on client.

>      4) I am used to having significant control over the user interface - and
> it is important so my app takes complex processes and simplifies them - is
> WebBuilder2 robust enough for this type of an application ???

I'd say yes but best way is to try it out. You also need to realize
you're running in the browser so there will be things users can do (like
closing the browser etc) that you can't really control fully.

>      5) Can I build tabbed application interfaces in WebBuilder2 ??? Version
> 1 did not handle this - I am interested in 2 types of tabs - #1 the newer
> side tabbed controls - common in ASP applications where sets of large
> buttons are on the left and when you click on 1 it opens up a new window -
> is this in WebBuilder 2 ??? Can it be reasonably built ???  I am also
> interested in having traditional windows tabs on the top of a form - you
> might have a credit application with 1 tab for customer 1 tab for employment
> info 1 tab for home info, etc - can this be done in Web Builder 2 ???

In version 1 you could do this using panels which was fairly close but
not 100% and you had to do work.

v2 has some built in tab components (tpagepanel) but more importantly it
allows for user created controls so it opens this up lot more.


Raul
Thu, Feb 19 2015 4:36 AMPermanent Link

Matthew Jones

I agree with what Raul said.

You would also do well to read the old messages in the EWB discussion
and General topics here, where others have asked and had responses in
detail. Me, I use RemObjects SDK as my server as I wanted to have all
the Delphi logic and "report creation" while having the flexible user
interface. See my http://matthew-jones.com/why-do-i-use-remobjects/
article on the value it gives me.

You are welcome to have a play at https://dev.banxia.com/#shop where
you can create an account and "buy" things using the credit card shown
at the bottom of the display (click submit on the funny card
authorisation form!). You will see what is basically a tabbed interface
(links at the top to sections), get PDF invoices (it actually generates
internal PDFs for shipping dockets etc too), and other stuff. I promise
not to spam you but also don't promise to keep your data on this
development test site. 8-)

The fundamental answer to your question is that WebBuilder is an
excellent way for a Delphi developer to move to web and mobile. In
developing my shop, I was able to write classes in WebBuilder and take
that code with only minor changes to the back-end for compatible use.

Matthew
Thu, Feb 19 2015 5:01 AMPermanent Link

Walter Matte

Tactical Business Corporation

Neil:

I have to agree with Raul and Matthew...

Go and read... there are several threads in the EWB General discussion that have ask similar questions and you will find much insight there.

I wrote a webserver in Delphi and reused business logic and I am also an extensive user of ReportBuilder.  

I used RealThinClient components to build the webserver.  I use StreamSec components to have a secure HTTPS webserver.  

I have several iterations of the WebServer. I have a version that interacts with DBISAM, another- Elevate DB and another serving data from MS SQL (using UniDac components.)

EWB is the tool for you!

Walter
Thu, Feb 19 2015 10:43 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Neil,

<< 1) Web Builder creates the GUI interface - can and how would I integrate
any existing Delphi code into my backend ??? >>

EWB allows you to create modules (DLLs) that contain native Delphi code, and
you can use these modules with the EWB Web Server:

http://www.elevatesoft.com/manual?action=viewtopic&id=ewb1mod&product=rsdelphi&version=XE&topic=Creating_Module

If you're using something else like IIS, you can also use the
TEWBDatabaseAdapter and TEWBDataSetAdapter components to generate the proper
dataset JSON for an EWB client application from an ISAPI DLL.

But, the basic flow is the same:  you process the incoming request and any
URL parameters (simple key-value pairs), and then you send back a textual
response.  The response can be encoded binary data (UTF-8), or raw binary
data (AnsiString).  You simply have to tell the browser what type of content
you're sending back.

<< my thinking is this type of activity should be done at the server - with
only the needed results sent back to the client. >>

Yes, that's how it would work.  You generate the HTML in the back-end
module, and then just return it as a response to the EWB client application
running in the browser.

<< 2) We have 100+ clients with 5-20 users a piece - can I scale a
WebBuilder app as my customer base grows ??? Big picture - How is this done
??? >>

Sure, you can handle a pretty large number of clients with a web server
application because the connections are stateless (as far as you're
concerned).  IOW, a client connects, gets/puts any data, and then
disconnects.

<< 2) My app contains social security numbers, credit bureaus and other
sensitive information - is WebBuilder deployable with a reasonable amount of
security to protect this information ??? >>

You would use https (SSL/TLS) connections exclusively in such a case.  That
way all information is encrypted from end-to-end, with no chance of a
man-in-the-middle attack (provided that you're using legitimate certs issued
from a trusted authority).

<< 3) Reporting is huge for me - we display reports and also produce pdf's -
in Delphi we use ReportBuilder - what reporting options are available in
WebBuilder2 ??? >>

You simply generate the report as HTML or PDF and return it as a response to
the EWB client application.  On the EWB client application side, you can use
a TPage (EWB1) or TBrowser (EWB2) control to request HTML content and
display it in your application:

http://www.elevatesoft.com/manual?action=viewprop&id=ewb1&comp=TPage&prop=URL

or you can use a TPlugin (EWB1 and EWB2) control to request PDF content and
display it in your application:

http://www.elevatesoft.com/manual?action=viewprop&id=ewb1&comp=TPlugin&prop=URL

<< 4) I am used to having significant control over the user interface - and
it is important so my app takes complex processes and simplifies them - is
WebBuilder2 robust enough for this type of an application ??? >>

That's a pretty general statement, but in EWB2, you can control the look and
feel of the application down to the UI element level, and you can build any
control that you want using these same UI elements as building blocks.
Unless it's something that requires native code, in which case you would
execute such code on the web server side, there's really no limits to what
you can do with the UI in an EWB2 application.

<< 5) Can I build tabbed application interfaces in WebBuilder2 ??? >>

Yes.

<< #1 the newer side tabbed controls - common in ASP applications where sets
of large buttons are on the left and when you click on 1 it opens up a new
window - is this in WebBuilder 2 ??? Can it be reasonably built ??? >>

You can't do side tabs, but you can certainly create such a control (or ask
someone else to do so).  IOW, it's possible to do so, whereas in EWB1 it was
not.

<< I am also interested in having traditional windows tabs on the top of a
form - you might have a credit application with 1 tab for customer 1 tab for
employment info 1 tab for home info, etc - can this be done in Web Builder 2
??? >>

Yes.

Tim Young
Elevate Software
www.elevatesoft.com
Thu, Feb 19 2015 11:14 AMPermanent Link

Wilhelm Kipper


> or you can use a TPlugin (EWB1 and EWB2) control to request PDF content
> and display it in your application:
>
> http://www.elevatesoft.com/manual?action=viewprop&id=ewb1&comp=TPlugin&prop=URL

Instead of TPlugin, for viewing PDFs you can use TPage or TBrowser with
pdf.js as source page so you can run report on server, generate a
pdf(Report Builder, Fastreport), send to client (EWB) and you can see
it/print it without having Adobe Reader installed.

For those who don't know pdf.js is a open source JS script made by guys
who made Firefox and is able to render in browser a pdf document.

I didn't try it in combination with EWB, but should work.
Thu, Feb 19 2015 12:04 PMPermanent Link

Wilhelm Kipper

On 19.02.2015 18:14, Wilhelm Kipper wrote:
>
>> or you can use a TPlugin (EWB1 and EWB2) control to request PDF content
>> and display it in your application:
>>
>> http://www.elevatesoft.com/manual?action=viewprop&id=ewb1&comp=TPlugin&prop=URL
>>
>
> Instead of TPlugin, for viewing PDFs you can use TPage or TBrowser with
> pdf.js as source page so you can run report on server, generate a
> pdf(Report Builder, Fastreport), send to client (EWB) and you can see
> it/print it without having Adobe Reader installed.
>
> For those who don't know pdf.js is a open source JS script made by guys
> who made Firefox and is able to render in browser a pdf document.
>
> I didn't try it in combination with EWB, but should work.
>

https://blog.oio.de/2014/04/11/integrating-pdf-js-pdf-viewer-web-application/
Fri, Feb 20 2015 4:09 PMPermanent Link

Neil Huhta

Guys:

   Thank you so much for your answers - they are very helpful. I believe
the only way for me to really understand all of the implications is to dive
in.

   My gut tells me that I need scaling and load balancing in the back. In
addition - this will be a great opportunity to achieve the proper
segregation of business rules & logic vs user interface - therefore - I will
lean towards using a tool like RemObjects for the back end - this will
definitely be a learning experience and I am excited to get started.

   My first project will be to build a simple application to aggregate and
display marketing data for dealerships - in other words - it will track the
effectiveness of advertising and display what is bringing in our customers.
For this I will use EWB and the EWB Web Server. Once I get more familiar I
will implement SSL and explore using other back end tools.

   Once again, Thank you very much for all of your help.

Neil Huhta
Profit Monster Data Systems




"Wilhelm Kipper" <wilhelmkipper@hotmail.com> wrote in message
news:887A96F2-E287-49B8-90F2-E667CAFC8E39@news.elevatesoft.com...
> On 19.02.2015 18:14, Wilhelm Kipper wrote:
>>
>>> or you can use a TPlugin (EWB1 and EWB2) control to request PDF content
>>> and display it in your application:
>>>
>>> http://www.elevatesoft.com/manual?action=viewprop&id=ewb1&comp=TPlugin&prop=URL
>>>
>>
>> Instead of TPlugin, for viewing PDFs you can use TPage or TBrowser with
>> pdf.js as source page so you can run report on server, generate a
>> pdf(Report Builder, Fastreport), send to client (EWB) and you can see
>> it/print it without having Adobe Reader installed.
>>
>> For those who don't know pdf.js is a open source JS script made by guys
>> who made Firefox and is able to render in browser a pdf document.
>>
>> I didn't try it in combination with EWB, but should work.
>>
>
> https://blog.oio.de/2014/04/11/integrating-pdf-js-pdf-viewer-web-application/

Sun, Feb 22 2015 5:59 AMPermanent Link

Matthew Jones

Huhtaman wrote:

> My gut tells me that I need scaling and load balancing in the back.
> In addition - this will be a great opportunity to achieve the proper
> segregation of business rules & logic vs user interface - therefore -
> I will lean towards using a tool like RemObjects for the back end -
> this will definitely be a learning experience and I am excited to get
> started.

I had a worrying moment one time when I thought "how would I scale my
RemObjects SDK server". Then I remembered that their session system
already has a variety of options, including a shared database. So you
can start with memory based sessions for ease of use, and the solutions
for scaling are ready when you need them.
Image