Download - Agenda

Transcript
Page 1: Agenda

Agenda

• Architecture Overview

• Web Security

• Templates

• Templates and Style Sheets Details

• Configuring an Application Demo

• Summary

Page 2: Agenda

Insulating Business Logic from Technology Infrastructure

ASCII Windows X11 Java HTML HTML WML

WebServices

Page 3: Agenda

Application Server Displays 4gl 1 of 2 Ways:

• No Change to .per Files Uses Templates, Style Sheets and makes “BEST Guess” at the

i4gl output grid. Most applications will run with no changes.

• Custom HTML added to .per Files Still uses Templates, and Style Sheets, but will “pass through”

any HTML that is put in .per files, or embedded in a label field

Page 4: Agenda

Web Deployment Architecture

Web Java Client

Web ServerApplication Server

WAP, I-mode, WinCE

HTML Browser

Windows, X11, ASCII, or Java

Database Servers

Fire

wa

llFire

wall

Fire

wall

Page 5: Agenda

Intrinsic Security (1/2)

• No database network access needed (SQL-Net / ODBC).

• No direct Internet connection needed for the application / database server.

• On the web server there is only a tiny program installed in the CGI binaries directory of the web server.

Page 6: Agenda

Intrinsic Security (2/2)

• Only one trustable channel trough the firewall from web server to the web daemon.

• Logging of the Cli HTML's interactions is possible.

• Applications can run in an special definable environment with special and limited rights.

Page 7: Agenda

User Interface Elements

Tool bar

Menu bar & Key bar

Workspace frame

Message bar

Page 8: Agenda

A Template

<html>

<head>

$(constant.meta-tags)

<title>$(application.name) - $(server.version)</title>

</head>

<body>

<form $(form.parameters)>$(gui.menubar.title)<br>$(gui.menubar.object)$(gui.keybar.object)<br>

$(gui.errorbar.object) $(gui.messagebar.object)</font><br>

$(gui.workspaceframe.object)</form>

</body>

</html>

Page 9: Agenda

Elements of the Template (1/4)

• $(server.version)Four J's HTML Front End's server version.Example : 2.14.1a.

• $(application.name)Application's nameExample : widgetz.

Page 10: Agenda

Elements of the Template (2/4)

• $(form.parameters)This is the internal information to be added to a form. This information permits proper processing of the result of a page. It must be included in a <FORM> tag (in HTML).

Page 11: Agenda

Elements of the Template (3/4)

• $(gui.workspaceframe.object)The workspace frame is the heart of the application, containing all information that comes from the Dynamic Virtual Machine. Rendering methods apply directly on this area.

• $(gui.menubar.object)The standard BDL menus. It corresponds to the MENU … END MENU command.

• $(gui.menubar.title)The standard BDL menu title. It corresponds to the MENU "{title}" … END MENU command.

Page 12: Agenda

Elements of the Template (4/4)

• $(gui.keybar.object)The keys.

• $(gui.messagebar.object)The result of the BDL command MESSAGE.

• $(gui.errorbar.object)The result of the BDL command ERROR.

Page 13: Agenda

Using Browsers’ Capabilities

Use what the browser knows to enhance your application, like JavaScript, CSS…

Page 14: Agenda

CSS

• Cascading Style Sheet• Allows you to define basic look & feel for a HTML page• Minor incompatibilities between Internet Explorer &

Netscape

Page 15: Agenda

An Example

<html> <head><title>CSS Example</title></head> <body> <form action="fglcl.exe?libebizdemo" method="post"> <input type="hidden" name="taskId" value="libebizdemo.73078023.1"><br> <input name="m1" tabindex=1 title="Change the infofield's class to fjs-none" type=submit value="None"> <input name="m2" tabindex=2 title="Change the infofield's class to fjs-red" type=submit value="Red"> <input name="m3" tabindex=3 title="Change the infofield's class to fjs-blue" type=submit value="Blue"> <input name="m4" tabindex=4 title="Remove the infofield's class attribute" type=submit value="Remove"> <input name="m5" tabindex=5 type=submit value="Exit"><br> <font color="#FF0000"></font><font color="#00FF00"></font><br> <table width='100%'> <tr><td><center><span class="fjs-none">Hello, world !</span></center></td></tr> </table> </form> </body></html>

Page 16: Agenda

HTML Preview

Page 17: Agenda

Adding a CSS

<html> <link rel="stylesheet" type="text/css" href="css-clihtml.css"> <head><title>CSS Example</title></head> <body> <form action="fglcl.exe?libebizdemo" method="post"> <input type="hidden" name="taskId" value="libebizdemo.73078023.1"><br> <input name="m1" tabindex=1 title="Change the infofield's class to fjs-none" type=submit value="None"> <input name="m2" tabindex=2 title="Change the infofield's class to fjs-red" type=submit value="Red"> <input name="m3" tabindex=3 title="Change the infofield's class to fjs-blue" type=submit value="Blue"> <input name="m4" tabindex=4 title="Remove the infofield's class attribute" type=submit value="Remove"> <input name="m5" tabindex=5 type=submit value="Exit"><br> <font color="#FF0000"></font><font color="#00FF00"></font><br> <table width='100%'> <tr><td><center><span class="fjs-none">Hello, world !</span></center></td></tr> </table> </form> </body></html>

Page 18: Agenda

And the Result is…

Page 19: Agenda

The CSS File

BODY {

font-family : Verdana, Arial, sans-serif;

background-color : #CCCC33;}

INPUT {

background-color : #FF6600;

font-family : Tahoma;

margin-right : 5px;

border : none;}

TABLE, TD, TR {

background: #CC6600;}

.fjs-red {

color : Red;}

.fjs-blue {

color : Blue;}

.fjs-none {}

Page 20: Agenda

A few Modifications…

BODY {

font-family : Verdana, Arial, sans-serif;

background-color : #C0C0C0;}

INPUT {

background-color : #0000FF;

color : #FFFFFF;

font-family : Tahoma;

margin-right : 5px;}

TABLE, TD, TR {

background: #CCCCFF;}

.fjs-red {

color : Red;}

.fjs-blue {

color : Blue;}

.fjs-none {}

Page 21: Agenda

And the Result is…

Page 22: Agenda

Demo