Webdev Concepts Us
Webdev Concepts Us
To quickly and efficiently learn how to use WEBDEV, we recommend that you proceed in the
following order:
1
Reading the “Concepts”
This guide presents the main concepts required to create a WEBDEV site. Some concepts
are followed by a “Practical” section that presents some features of the editor.
2
“Tutorial” (guide + exercises)
The tutorial provides a first “hands-on” approach to WEBDEV. It allows you to familiarize
yourself with the main editors of WEBDEV.
3
Test of examples
Check the different examples supplied with WEBDEV in the fields you are interested in
(e-business, directory, scheduling, ...).
Remark: If a difference exists between the guides and the online help, follow the instructions
given in the online help.
This documentation is not contractually binding. Modifications may have been made to the
software since this guide was published. Please check the online help.
All product names or other trademarks mentioned in this publication are registered trademarks of their
respective owners.
© PC SOFT 2020: This publication may not be reproduced in part or in full without the express consent of
PC SOFT.
:
3
Organization of guide Summary
This guide presents the main concepts required to create a powerful WEBDEV site. Some concepts
are followed by a "Practical" section that presents some features of the editor.
Part 1 - Internet: main concepts
Therefore, two types of pages are included in this guide: What is a Web site?..............................................................................................................................................11
Static or dynamic site?.........................................................................................................................................12
The different types of dynamic sites....................................................................................................................13
The different types of pages................................................................................................................................14
Principle for displaying a dynamic WEBDEV site.................................................................................................18
Principle for displaying an AWP site.....................................................................................................................20
AJAX technology....................................................................................................................................................24
If you are already familiar with WINDEV..............................................................................................................27
Hardware and software requirements................................................................................................................28
4 : Introduction 5
:
5
Part 3 - Development environment The queries.........................................................................................................................................................178
The embedded queries......................................................................................................................................179
The WEBDEV editors............................................................................................................................................85 The Table/Looper control...................................................................................................................................180
Project dashboard................................................................................................................................................89 Retrieving data from a site.................................................................................................................................182
WEBDEV, WINDEV, WINDEV Mobile: 100% compatible.....................................................................................90 Universal replication..........................................................................................................................................187
Project configuration............................................................................................................................................91 3-tier architecture...............................................................................................................................................188
Multiple generation..............................................................................................................................................92
Source Code Manager (SCM)...............................................................................................................................93
Internal component............................................................................................................................................100 Part 6 - Running the test of a Web site
External component...........................................................................................................................................103
Generation modes.............................................................................................................................................111 Running a site test: The elements to test..........................................................................................................191
Project Monitoring Center..................................................................................................................................114 How to run a site test?........................................................................................................................................192
Managing requirements....................................................................................................................................115 The debugger......................................................................................................................................................194
Managing tasks..................................................................................................................................................116 When can I use the debugger?..........................................................................................................................195
Managing business rules...................................................................................................................................117
Part 9 - Appendices
Part 5 - Databases
WLanguage functions specific to WEBDEV 25................................................................................................ 239
Analysis: Database structure.............................................................................................................................161 Examples and components supplied with WEBDEV.........................................................................................249
The various types of accessible files.................................................................................................................170
HFSQL Classic....................................................................................................................................................172
HFSQL Client/Server..........................................................................................................................................173
HFSQL Client/Server clusters............................................................................................................................ 174
HFSQL: the physically created files....................................................................................................................175
Associate controls with data.............................................................................................................................. 176
6
6 :Introduction
:
7
PART 1
Internet:
main concepts
8
8 :Summary
What is a
Contenu
Web site?
A Web site is a set of HTML (HyperText Markup Language) pages stored on a Web server. These
HTML pages are organized for a specific purpose (present a company, sell products, ...).
A site is intended to be used by the Web users. The Web users are using a browser to access the
site.
WEBDEV allows you to easily create Web sites that manage (or not) the data.
Server
HTML page
Server at the
hosting company.
The Web user accesses The HTML pages
the site and displays the are stored on this
HTML pages via a browser. server.
Remark: A dynamic site can contain a static section (presentation of the company, etc.).
Oracle Informix
SQL Server Progress
MySQL Sybase
DB2 Oracle Lite
XML AS/400...
Development
Different types of pages can be used in the sites created with WEBDEV:
computer
DEVELOPMENT
• Static pages. This type of page is used to display fixed data.
• Dynamic WEBDEV pages in Session mode. These pages are used to dynamically display the
information found in a database. The content of the page depends on the displayed record.
When displaying a dynamic page in session mode, the associated page context is automatically
created on the server. This page context mainly contains the global variables and the variables
for positioning in the data files.
• Dynamic WEBDEV AWP pages (Active WEBDEV Page). These pages are used to dynamically
display the data found in a database. The content of the page depends on the displayed Create a static page in WEBDEV (“.WWH” file)
record.
An AWP page is a dynamic WEBDEV page without a context persisting on the server. The AWP
page context is temporary. It is created in a temporary session.
Server
DEPLOYMENT
• Dynamic PHP pages. These pages are used to dynamically display the data found in a
database. These pages can only be used in a PHP site.
HTML page
Computer of
the Web user
DISPLAY
Development Development
computer computer
DEVELOPMENT
DEVELOPMENT
Create a dynamic page Create a PHP page
in WEBDEV (“.WWH” file) in WEBDEV (“.WWH” file)
Server Server
DEPLOYMENT
DEPLOYMENT
HTML page WEBDEV engine Database PHP page MySQL database
Computer of Computer of
the Web user the Web user
DISPLAY
DISPLAY
Dynamic page in execution in the browser. PHP page in execution in the browser.
The data displayed in the pages depends on the The data displayed in the pages depends on the
operations performed by the Web user. operations performed by the Web user.
WEBDEV session
CONTEXT
2. Start WEBDEV engine. This engine will remain on the server until the end of application.
3. Create the application context. This context will remain on the server until the end of Display the Page 1 - Return Page 1
application.
4. The WEBDEV engine runs the server code and builds the HTML page (from the data found in
the database for example).
5. Once the HTML page is entirely built, the server transmits the result to the client (the browser).
The Web user clicks in Page 1
to display Page 2 - Automatically create the context of Page 2
CONTEXT
CONTEXT
A page context is automatically created on the server whenever a page displayed in the browser.
Display the Page 2 - Return Page 2
This page context contains all elements that have been required to build the page viewed by the
Web user:
• the global variables,
• the local variables,
• the server processes, The Web user clicks in Page N-1
to display Page N - Automatically create the context of Page N
• the connections to the databases,
1 2 N
CONTEXT
CONTEXT
CONTEXT
• the contexts of data files, ...
The page contexts remain in memory on the server until the end of the WEBDEV session. Display the Page N - Return Page N
The WEBDEV session and the page contexts are automatically managed by default. You don’t After the time-out (defined in the
WEBDEV administrator), the WEBDEV
need to program anything. session and the page contexts
are destroyed.
CONTEXT
Reminder: In a WEBDEV site in Session mode, each displayed page owns a persistent page
context for the entire lifetime of the session on the server.
- Create the Web page
Display the Page 1 - Return the Web page to the Web user
- Free the context of Page 1
Operating mode of AWP sites - Delete the temporary session
The following elements are automatically created on the server when an AWP page is displayed in
the browser:
• a temporary session,
The Web user clicks in Page 1
- Create the temporary WEBDEV session
• a temporary AWP page context. to display Page 2
- Create the context of Page 2
The temporary session contains the temporary AWP page context. When the AWP page is sent
2
CONTEXT
to the Web user, the temporary page context and the temporary session are destroyed. There is
- Create the Web page
nothing left in memory on the server. Display the Page 2 - Return the Web page to the Web user
- Free the context of Page 2
The temporary AWP page context contains all elements that have been required to build the page - Delete the temporary session
When the AWP page is sent to the Web user, these elements are destroyed.
N
CONTEXT
- Create the Web page
Display the Page N - Return the Web page to the Web user
- Free the context of Page N
CONTEXT
format: "http:\\Web server\...\mypage.awp?NameParam1=Value1&NameParam2=Value2".
This method allows a better page referencing because the information passed in the URL is visible Display the Page 1
- Create the Web page
- Return the Web page to the Web user
and analyzed by the referencing robots. - Free the context of Page 1
CONTEXT
To manage AWP contexts, you must use WLanguage functions such as DeclareAWPContext, - Create the Web page
Display the Page 2
FreeAWPContext, etc. - Return the Web page to the Web user
- Free the context of Page 2
See the online help for more details. - Delete the temporary session
CONTEXT
- Create the Web page
Display the Page N - Return the Web page to the Web user
- Free the context of Page N
5
• the server is less used. Therefore, it can support an important number of simultaneous AUTOMATIC update
connections. of modified elements
• the information that circulates is less bulky.
• the transmission time is shorted. 4
• the display is immediate and without visual effect for the Web user. Send the modified
elements only
AJAX can be used at two different levels in a WEBDEV site: For example, a site page is used to find out the different characteristics of a country (capital city,
• Automatic and immediate AJAX: a simple click allows you to access the AJAX features. The code currency, flag, location, etc.). The corresponding information is displayed according to the country
remains the same. selected by the Web user.
• Programmed AJAX: functions for AJAX management allow you to write complex processes.
Action performed by the Web user. In our example, the Web user selects the country
in the "Select a country" combo box.
Remark: Only sufficiently recent browsers support AJAX technology. AJAXAvailable is used to
determine if the AJAX technology is supported by the current browser. If a process that uses the Sending the query to the server.
AJAX technology is run on a browser that does not support this technology, the process is run "as
if" it did not use the AJAX technology (the entire page is refreshed for example).
Running the query: find the characteristics of selected country.
1 Action
2 3 Run the server
procedure
• Some WLanguage functions not relevant for the Web do not exist anymore.
• Some WLanguage functions can only be used in an executable process in server code.
• Some WLanguage functions can only be used in an executable process in browser code.
• New types of controls specifically designed for Web applications are available:
Send the • Formatted display control.
result only
• Java Applet control.
7 AUTOMATIC update
of modified elements 5 4 Generate the result:
XML document,
• Sliding Banner control.
• Navigation Bar control.
6
character string
• Captcha control.
• Cell control.
Analyze the result • Breadcrumb control.
• Web Component control.
• Flash control, Flex control.
Running a browser process (AJAXExecute or AJAXExecuteAsynchronous).
• Clickable Image control (Map Area).
• IFrame control.
Request for running a server procedure. • Link control.
• Line control.
Running the server procedure. • Internal Page control.
• Peeling Corner control.
• Site Map control.
Generating the result. The procedure result will be contained in a character string or • Popup control.
in an XML document.
• Pager control.
Sending the procedure result (RESULT). • Social Network control.
• SilverLight control.
• HTML Table control.
Examining the procedure result.
• Upload control.
• Thumbnail control.
Displaying the modified information. Only the necessary controls are refreshed. • Text Area control.
• Some types of controls without purpose on Internet are not available anymore: Scrollbar,
ActiveX, OLE Object, Spin, etc.
A WEBDEV project is a set of elements: pages, reports, controls, classes, components, ... whose
combination allows you to build a Web site.
A WEBDEV analysis groups the description of the data files found in the site.
Project 1
Analysis
Project 2 Project n
Test and
Design Development generation Deployment
Site generation:
Final test
- WEBDEV site
UML modeling Create the analysis - AWP site
- PHP site
Open the site
- Webservice
to the users
Import of Development
existing files - Project RAD
- Page RAD
- Queries
- Reports
- Input of source code
Details of different steps: Test and generation step: WEBDEV offers several automated test tools to guarantee the reliability
of applications and make sure that no regression occurs during the development step.
Design step: A site can be designed from specific requirements, from UML modeling of processes
or even from existing data files. Deployment step: A dynamic WEBDEV site (in Session or AWP mode) is deployed on a WEBDEV
Application Server. When the site is deployed, it is possible to run the last tests before
Development step: The project and the analysis are created via specific wizards. The development making the site available to the users.
can be done in RAD mode (Rapid Development Application) with automatic generation of code
and UI or it can result from the manual creation of project elements.
Generic
HTML .HTM .HTM .AWP .PHP
WDL
http://mysite.com/mypage
same URL
but different
pages
During the print, the relative position of controls found in each area is respected as well as their
anchor. Computer Mobile
Principle
The site includes 2 sets of pages: the pages for computer and the pages for mobile device. These
pages are associated 2 by 2.
When the page address is typed in the browser, the environment used is automatically detected
and the corresponding page (computer or mobile device) is displayed in the browser. The address
displayed in the browser does not change: only the content displayed is adapted to the system.
All the links and the pages opened in the code are automatically redirected to the corresponding
page in the current platform.
Remarks:
• The detection of the environment is performed according to the Google recommendations: the
A semantic HTML 5 information can be associated with each area: this improves the relevance of tablets are not considered as being mobile devices.
referencing by some search engines. • The pages are identified by Google as being in "Dynamic serving" mode. Therefore, the different
page versions are optimized. If the mobile pages are developed properly, the site is considered
as being "Mobile friendly".
Mobile
Tablet
Example
Remarks:
• The internal page used in the "Internal page" control cannot be modified by programming.
Mobile Tablet Desktop
• The host area is rectangular and no overload is allowed. To perform overloads, we recommend
that you use the control templates.
During runtime:
To create a page based on a template, select the template that will be used when creating the
page.
Remark: The programming associated with the template elements can be performed in the
template directly.
The characteristics of elements can be dissociated from the template. For example, dissociating
the position of a template control to position the control somewhere else while keeping the other
evolutions performed on the control (code, style, ...). We talk of inheritance. In this case, the
elements are identified by a blue square.
The internal pages are used to dynamically share a This interface is used in the different pages of your
section of interface inside one or more sites. site via the "Internal page" control. 8.1 Overview 8.2 Automatic operating mode
The interface that must be used several times is Remark: The page to merge can come from a In a Windows application, the information relative By default, WEBDEV automatically manages the
created in an "Internal Page" page. component. to a window is stored with the window. contexts of pages in Session mode:
See the online help for more details. In a WEBDEV site in Session mode, a page context • A page context is opened when the Session
exists on the server for each page displayed on the page is displayed in the browser
browser of the Web user. • The context of a page is updated according to
5 Page templates The page context groups the information about the the information typed by the Web user in the
page: browser. This update is performed during the
WEBDEV allows you to create page templates. • simplify the layout of site pages. • content of controls, page validation (via a "Submit" button or with
These templates contain the graphic elements and • local variables, PageSubmit).
• simplify the update of style book defined for the
the code common to all the pages of your site. site. • global variables, • The existing page contexts are closed
The modifications performed in a page template when PageUse is used. The page context
The method for creating a page template is similar • WLanguage "server" code, etc. corresponding to the page to display with this
are automatically applied to all the pages that use to the method for creating a page. To create a page
this template. function is then opened.
via a template, all you have to do is choose the
A page template allows you to comply with the style "based on a template" option. Remark: WEBDEV allows you to perform an
book defined for a site. advanced management of contexts via the
By default, any modification performed in the ContextXXX functions. See the online help for more
Using page templates in your sites allows you to: template is applied to the pages that is using details.
• simplify the creation of site pages. it. However, special cases can be managed in a
specific page by overloading the template elements.
See the online help for more details. 9 Opening a page in a WEBDEV site
WEBDEV allows you to create a menu in your WEBDEV allows you to:
HTML pages. This menu can be oriented vertically • Create a main menu,
or horizontally. From the different options of this • Edit a main menu,
menu, you can:
• Delete a main menu.
• display pages,
See the online help for more details.
• run the code of buttons found in the page,
• ...
Image control,
Clickable Image control
You want to... Use ...
Display a text, a title, ...
Type information.
Calendar control
Display thumbnails. Thumbnail control
Display a set of images in gallery format. Gallery Looper control
Display Flex files. Flex control
Include SilverLight controls. SilverLight control
Display the appointments in scheduler or Expand/Collapse a display area Drawer control
organizer format.
Upload one or more files.
Upload control
Scheduler control,
Organizer control
Chart control
Display a list of objects as a scrolling horizontal
Linear Looper control
list.
Use external resources available on Internet
(Angular JS components, Bootstrap snippets, Web Component control
...).
Display a page from your site inside one of Create a visual effect in a page by presenting
Internal page Peeling Corner control
your pages. an image partially covered by another one.
WEBDEV proposes several types of controls the WEBDEV ribbon. The description window can be displayed for all • Drag and Drop, ...
that can be easily included in your pages. These All controls can be handled by programming. page controls. This window includes several tabs The content of this tab depends on the type of
controls can be created via the "Creation" pane of that group the configurable characteristics of one current control.
or more controls.
Remark: You also have the ability to see and/or Link tab
1 Creating a control modify the characteristics of one or more controls The "Link" tab is used to select the item (from a
in the modifier. See the online help for more details. data file or a view) to with the control is linked.
The following controls are available in the page • TreeView control, • Line control, Depending on the current record, the content of
2.1 Displaying the characteristics linked item will be displayed in the control.
editor of WEBDEV: • Dashboard control, • "Web component"
control. To display the description window of a control: The link can be single-file or multifile.
• Static control, • Scheduler control, • Organizer control,
• Layout control. • double-click the control. Content tab
• Text Area control, • Calendar control,
• select "Description" from the popup menu of The "Content" tab is available for page controls
• Formatted display • Chart control,
control (right mouse click).
control, • Bar Code control, 1.1 Creating a new control only.
• select the control and press Alt + Enter. The "Content" tab is used to define:
• Button control, • Progress Bar
To create a control: Remarks: • the initial content of control (for the edit controls
• Link control, control,
1. Select the type of control to create using the • The description window can be displayed for a only).
• Image control, • Cell control,
corresponding icon in the "Creation" pane of the set of selected controls. Only the characteristics • the data source used to fill the control (for List
• Clickable Image • Popup control, WEBDEV menu.
control, common to the selected controls will be box, Combo Box and Table controls only).
• Drawer control, 2. The shape of new control appears under the displayed.
• Thumbnail control, • Scrolling Banner mouse cursor. Note/Help tab
• Several description windows can be displayed
• Peeling Corner control, 3. Click the position where the control will be The "Note/Help" tab is used to:
at the same time. Each description window
control, • Tab control, created in the page. The control is automatically • describe the operating mode of control. This
displays the characteristics of one or more
• Video control, • Internal Page created. controls. information will be printed in the program
• Web Camera control, Remark: Other creation modes are available. See documentation (project documentation, page
control, • Control Template the online help for more details. 2.2 Characteristics by tab documentation, ...).
• Edit control, control, This paragraph presents the different categories of • configure all types of help associated with the
1.2 Creating a control associated with an control. A control can have:
• Combo Box control, • Supercontrol, characteristics displayed by each tab.
item
• List Box control, • HTML Table control, See the online help for more details. • A tooltip, displayed when the control is
Except for the following controls, all page controls hovered by the mouse cursor.
• Rating control, • Menu,
can be associated with an item found in a data file: General tab • A help message, displayed in the status bar
• Captcha control, • Pager control,
• Button control, • "Web component" The "General" tab is used to specify the control when the control takes focus.
• Radio Button • Site Map control, name and all display characteristics of control
control, • Tab control control
• Site Map Path (caption, input mask, ...). Advanced tab
• Check Box control, control, • Line control • Flash control
The "Advanced" tab is used to enter the HTML code
• Slider control, • HTML control, • HTML control • Pager control UI tab generated before and after the control.
• Looper control, • IFrame control, • Java Applet control • Cell control and The "UI" tab is used to define the parameters of
HTML Table control control interface: Style tab
• Linear Looper • Flash control,
• Site Map control • Initial status of control when opening the page, The "Style" tab is used to define the style of
control, • Flex control,
• Visibility of control, different control elements. This screen is used to:
• Image gallery • Silverlight control, Several methods can be used to create a control
• Size of control, • Modify the control aspect: all you have to do is
Looper control, • Java Applet control, associated with an item (or to retrieve an item):
select the control element to modify, then its
• Table control, • Drag and Drop from the "Analysis" pane. • Anchoring, ...
style characteristics. Only the aspect of current
• TreeView Table • Via the "File" tab in the description window of Details tab control is modified.
control, control. • Create or modify a style.
The "Details" tab is used to define the different
control parameters: • Choose a style.
• input parameters,
6 Anchoring controls
The pages of a WEBDEV site can be resized at run • the management of width and/or height: this
time: the browser can be resized, the site can be parameter is used to manage the behavior of • anchor in width: allows you to define the width
displayed on different platforms (iPhone, PC, ...). the control when resized. The height or the width behavior of the control when resizing. The
The anchoring mechanism is used to automatically can be adapted to the control content or to the control can: 4. It is also possible to define the behavior of the
adapt the size and position of controls when browser. You also have the ability to define the • keep its width, control when its content is larger than it is. You
resizing the page. minimum control size.
• adapt to content, can:
These parameters can be configured in the page
• change along with the browser. • stretch the control and push the other
editor.
controls in the page,
6.1 Anchoring a control in the editor • truncate the content,
To anchor a control: • always enable a scrollbar,
1. Select one or more controls to anchor. • display a scrollbar only when the content is
larger than the control.
2. Define the anchoring of controls:
5. Validate. If the "Anchors" option is enabled (on
• in the "UI" tab of the control description the "Display" pane, in the "Show (all the controls)"
window ( "Description" from the popup menu). group), the anchoring signs are automatically
• via "Anchor" from the popup menu (right click) displayed in the control (red arrows).
of control. Remark: To manage the anchoring of controls, you
3. Choose the desired type of anchoring in the can also use the positioning tables. See the online
The anchoring of a control is managed via several
window that appears. help for more details.
parameters:
• the control anchoring: this parameter is used
to define the modification that will be applied
to the control according to the change of the
page size. The control can move to left and/or
to bottom, it can be enlarged in width and/or in
height.
Computer of Server
the Web user
1 2
Actions that can be
performed locally Actions that require a
(on the computer of return to the server
the Web user) (dynamic pages)
read information in the database
simple input check, ... calculations/processes by programming, ...
To manage these two types of actions, the WEBDEV code editor differentiates two types of code:
• Server code (yellow or pink code in the code editor): This code is written in WLanguage (yellow
code) or in PHP (pink code, only available in PHP pages). This code is run on the server.
This code is available in the dynamic pages only.
• Browser code (green or blue code): This code is written in WLanguage (green code) or in
Javascript (blue code).
When saving the page, this code is automatically translated into Javascript and included in the
WEBDEV HTML pages. This code is run locally (on the computer of Web user) and it requires no
server action.
For each looper control, several characteristics can be modified during the repetition: caption, text
color, ...
The repetitions can be performed:
• on a column,
• on several columns. In this case, we talk of "Horizontal Looper".
When creating a Looper control, you can link it directly to a data file or a query. The attributes of
the Looper control are automatically defined. No programming is required.
Additional events
The link "Add other events" in the code window is used to manage events in addition to those
proposed by default. Simply click on "Add other events to xxx" at the bottom of the code window:
the list of additional events is displayed.
All you have to do is select the requested events to add them to the codes displayed by the code
editor.
Example of additional events: double-click, key down, key pressed, key up, button down, mouse
moved, ...
Let’s see an example illustrating the power of WLanguage: checking the address input
In WLanguage, a few lines are enough:
IF NoSpace(ADDRESS) = "" THEN Browser click
Error("Specify your address") code
ReturnToCapture(ADDRESS)
END
WLanguage code is easier to write, understand and maintain. It is much more reliable. Upgrading
is easier.
Development Server
Defining a control template: the template is bordered by a yellow line in the editor. computer Print modes
Report sources
Server
Table control
printer
To create a report based on a template, select the template that will be used during the report
creation.
Print in HTML Print in PDF
Remark: The programming associated with the template elements can be performed in the
template directly.
The characteristics of elements can be dissociated from the template. For example, dissociating
the position of a template control to position the control somewhere else while keeping the other
evolutions performed on the control (code, style, ...). We talk of inheritance. In this case, the
elements are identified by a blue square.
Two questions must be asked before a new page is displayed: Several WLanguage functions allow you to open a new page (or frameset). The main functions are:
• which page should be displayed? • PageDisplay (for pages),
• where should the page be displayed (new browser, frame, etc)? • FramesetDisplay (for framesets),
• PopupDisplay (for popup pages),
Which page should be displayed? • PageDisplayDialog (for modal page display).
The page to display can be defined: Selecting the target in the page editor (most common method)
• in the page editor (no programming is required).
In a button, to define the target of the page to
• in the code editor, in a process of the button (or link or clickable image, etc.).
display:
• Display the description of button or link
Selecting the page to display in the page editor (most common method) ("Description" from the popup menu of
To define the page to display: control).
• Display the description window of control • In the list of targets, select a preset target
("Description" from the popup menu of or a frame (in the case of a frameset).
control).
• In the type of action, select "Display a page
of the site".
• Select the page to display.
Remark: The preset targets will be presented later in this manual.
Selecting the page to display by programming
Selecting the target in the code editor
The page to display must be selected by programming when:
• several pages can be displayed (an error page if the password is not entered or the next site
page for example). When the target depends on a choice made by the Web user, this target must be selected by
programming. For example, if the Web user does not enter his password, an error page is displayed
• a specific action must be performed on the server (calculation, read a record, etc.). in a new browser ; otherwise, the next page is displayed in the current browser.
ChangeTargetis used to modify the target of an action by programming. This function must be
used in browser code.
When choosing the target for a button, a link, a clickable image, a menu option, ... you can select:
• a preset target: four preset targets are proposed:
• Current browser (_top).
• Current frame (_self).
Click the
• Parent frame (_parent). button
• New browser (_blank). In this case, the new browser can correspond to a new tab or a new
browser with specific characteristics (menu bar, message bar, etc.)..
• a frame in the current frameset.
Remark: in the diagrams below, the grayed area represents the area where the page is displayed Initial page New page displayed in the
(2 nested framesets) page containing the second
during the click on button. frameset
Current browser (_top)
Click the
button
Click the
Initial page New page displayed in the button
entire browser
Click the
button
When a style characteristic is modified, all the controls associated with this style are updated. This
gives you the ability to modify the style book of a site by only making a few modifications to the
styles used.
Example for using style sheets: increasing the size from 9 to 16:
Remark: "Custom CSS" tab enables you to enter CSS code directly. Then, this code will be added
into the style sheet.
• the ability to enter a description and keywords on each page of your site.
You have the ability to include a home page in your site when developing the project, by creating
a new page.
Remark: SEO is a technique whose rules are dictated by search engines (Google, Bing, etc.). These
rules are not always explicit and evolve very quickly. Don’t hesitate to read books or to visit sites
dedicated to this topic.
Notes:
• The type of layout is defined by the options for anchoring the page ("Anchor" from the popup
menu of page).
• The type of layout (centered or anchored in width) configured in a page template will be
automatically used by the pages associated with this template.
To optimize a static or AWP page of your site: 4. In the "Keyword" tab of the SEO window, enter
1. Display the description window of the page. the keywords associated with the page. These
1 SEO principles keywords (or expressions) will be the keywords
2. In the "Details" tab, a specific area is used to
manage the page SEO. In this area, click "Edit used to optimize the page: if a Web user types one
In order for your WEBDEV site to be visited, the 1.2 The available tools expressions and keywords". of these keywords, the search engine will propose
Web users must be able to find it. To do so, your the corresponding page. The keywords are typed
To help you, WEBDEV proposes: 3. In the "Description" tab of the SEO window, as follows: type the first keyword and press Enter
site must come up the Web user types keywords enter the description of the page. In most cases,
corresponding to your site in a search engine. • An SEO of each static and AWP page: for each to type the next one.
page, it is possible to define a description and a this description appears when displaying the Tips:
result of a search performed by a search engine.
1.1 Improving the SEO of a WEBDEV site set of keywords. These keywords will allow the
Tips: • The first three keywords are the most
Web users to access the page directly. You can important ones. Use common keywords and
To improve the SEO of your pages, we recommend also choose not to optimize a page. • Use short sentences, limit the number of
that you use AWP pages. pertinent keywords.
• A search engine optimization wizard, which words (up to 200 characters)
To optimize a site in Session mode, use: • The keywords must not be repeated.
indicates the improvements that can be made • This description must entice the Web users to
• a home page. display the page. • Use variations (singular/plural, noun/verb,
on each page for SEO purposes. etc).
• a section of the site in static mode. The static • The possibility to include or use a specific Remark: This description can be dynamically
site will be used to perform the SEO and to start modified using ..Description. Remark: These keywords can be dynamically
page as home page. This solution is used, for modified by ..Keywords.
the site in session mode. example, to optimize pages in Session mode, by
• a section of the site in AWP mode. The AWP site associating keywords to the home page,. This 5. Validate the page SEO and description
will be used to perform the SEO and to start the home page contains all the keywords that will windows.
site in Session mode. allow the Web users to find your site.
Remark: In AWP, to pass parameters between 4 Using the SEO wizard
your pages, we advise you to pass parameters via
the URL rather than using AWP contexts. Indeed,
the URL content can be optimized while the AWP To help you improve the SEO of your sites and To start the page SEO wizard:
contexts cannot. pages, WEBDEV proposes an SEO wizard. This 1. Display the requested page in the editor.
wizard can be used for a specific page or for all 2. On the "Page" pane, in the "SEO" group, click
the pages of your project. This wizard examines "Optimize".
2 Using (or not) a static or AWP page of a site for SEO the composition of site pages and indicates
3. The SEO wizard starts. Double-click a
the possible improvements for maximizing the
positioning of pages in the search engines. suggestion to perform the corresponding
To optimize a static or AWP page of your site: 3. You can: optimization. The "Refresh" button is used to
1. Display the description window of the page. • Do not use the current page for SEO. Some examples of optimizations detected by the update the list of suggestions.
2. In the "Details" tab, a specific area is used to • Optimize the current page by associating wizard:
To start the SEO wizard for all the pages of a site:
manage the page SEO. it with expressions and keywords ("Edit • The page title must be specified.
expressions and keywords"). 1. On the "Project" pane, in the "Web" group,
• At least three keywords must be specified for expand "SEO" and select "SEO wizard".
the page.
2. The SEO wizard starts. Double-click a
• The page description must be specified. suggestion to perform the corresponding
• The alternative text must be typed for all optimization. The "Refresh" button is used to
controls that propose it (by using the keywords update the list of suggestions. The results can be
defined for the page if possible)... sorted by page or by type of advice.
Report editor
The elements found in this dashboard are presented in Widget format. These Widgets can be
configured, moved, enabled, disabled, ... You have the ability to add new indicators.
The dashboard configuration is saved for each user. The dashboard configuration is the same for
all the projects belonging to the same user.
Regardless of the product used to create a project, the project can be opened by the other
products. WEBDEV project
When a project is opened in a product other
than the one that was used to create it, a
wizard is displayed, allowing you to create a
project configuration specific to the product
used.
For example, if a WINDEV project is opened
by WEBDEV, you will have the ability to create
a project configuration named "Site", used
to group all the elements required by the Project configurations
WEBDEV site.
You now have the ability to view the elements
of each target from each environment. A
project in WEBDEV displays the thumbnails
Config 1. Config 2. Config 3. Config 4.
of WINDEV and WINDEV Mobile windows for Site Library Component PHP site
example. Clicking a WINDEV window from the
...
WEBDEV project editor opens the WINDEV
window (WINDEV must be installed on the
computer).
The multiple generation allows you to generate all project configurations (or some of them) in a
single operation.
ADSL
(internet)
Cloud
SCM
Offline
2
"Developer groupware").
Project A
Check-out 9:57 Project A
Version 1 Version 1 1 The Source Code Manager
3 Modification
Check-in 10:41
Project A
Version 2
Project A 1.1 Overview 1.2 Principle
4
Version 2
5
Version 3
Entirely integrated in the environment, the Source
Code Manager (SCM) is used to:
Project A Check-out 14:28 • make teamwork easier and faster,
Version 2 Repository
Mobile Computer • store the history of modifications and versions,
Check out Beta window from
Project A Version 1 at 9:13
• save the source code of the development team
in an automatic way.
Mobile Computer Local Computer 1
1
Check out Alpha window from
Project A Version 1 at 9:57 Sized for team between 1 and 100 developers, the All project elements are saved in the repository
Check in modified Alpha window
Project A Check-out 9:57 into Project A Version 2 at 10:41 SCM facilitates and standardizes the collaboration (on the server). This operation is performed when
Version 1 between developers (even when developing alone, creating the project or when importing an existing
6
Local Computer 2
Modification Check out Alpha window from the SCM is useful because it contains the history of project into the Source Code Manager.
for end users Project A Version 2 at 14:28 your applications).
Check-in 18:32
Each developer who is using the Source Code
Project A
Version 3
Mobile Computer Manager retrieves a local copy of project.
7
Check in modified Beta window
into Project A Version 3 at 18:32
The SCM is using a SCM repository: procedures,
classes, pages, reports, components, analyses, ...
Use
This repository can be installed on a server (in
To work on a project element (page, report, etc.),
HFSQL Classic or HFSQL Client/Server mode) or on
If a project element (window, report, ...) is checked out, this element cannot be checked out twice. the developer must check out the element from
a network computer in a shared directory.
the repository, modify it and check it back in.
Once the checked-out elements are modified, these elements must be checked back in so that The SCM can be run locally or remotely, via Internet
If the element is already checked out, the
these modifications can be taken into account by the source project. Indeed, the repository stores or via an HTTP or HTTPS connection. This feature
developer can ask the person who performed the
a history of all the project elements since their creation. gives you the ability to work on a project from an
check-out to check the element back in (via the
agency or from a remote site without losing the
integrated messaging).
modifications.
Whenever an element is checked back in, the version number of the source project is incremented The SCM can also be used in offline mode (train,
by 1. plane, etc.).
1
Project 2
Creating the
internal component 2 Creating an internal component
Windows
2
2.1 The different steps Remark: The accessible elements (or "public"
Sharing the elements) will be automatically proposed by the
internal component To create an internal component:
completion. They can be used by the elements
Classes via the SCM 1. On the "Project" pane, in the "Project found in the project or from another internal
configuration" group, expand "New configuration" component. The inaccessible elements (or
and select "Internal component". The wizard for "private" elements) can only be used by another
Queries
creating an internal component starts. element of internal component (the completion
2. Specify the characteristics of the internal will propose these "private" elements only from
component: the elements of an internal component).
• its name. The name of internal component 5. Specify the management mode of data and
will be used for the WCI file corresponding runtime contexts. Three modes are available to
to the description of internal component. manage data and runtime contexts:
This name will also be used to create a • Use the project analysis or no analysis (full
WCI file subdirectory in your project containing all the
Subdirectory of share): The internal component accesses
(List of elements) elements of internal component.
<MyComponent> the data files of the project. The internal
project • its caption. component and the project use the same
• its description. runtime contexts.
3. Indicate the elements that will be included in This mode corresponds to the default mode if
the internal component. An internal component the internal component is using no analysis.
The elements found in an internal component can be private or public: can contain all types of elements found in a • Use the project analysis with different
• The private elements can be handled by the other elements of the component. project: pages, reports, templates, ... runtime context (advanced mode): The
• The public elements can be handled by the elements of the project that is using the internal 4. Specify the elements of internal component internal component accesses the data files of
that will be directly accessible in the code and in the project. The internal component and the
component. project are using different runtime contexts.
the preset actions of project that is hosting the
internal component. This mode is reserved to specific cases.
• Use a specific analysis: The internal
component accesses its own data files. The
internal component and the project are using
different runtime contexts.
To share an internal component via the SCM, the • import a project containing one or more internal
project containing the internal component must be components into SCM. The internal components 2 Generating the
component
found in the SCM. You can: will be automatically included in the SCM.
• create the internal component from a project .WDK file
3 Importing the
component
4 Using the
component 4 Using the
component 4 Using the
component
Libraries
A library is a single file that groups several elements of a WEBDEV project:
pages, reports, etc. You have the ability to generate stand-alone libraries
that can be used by other sites.
External components
The external components are application bricks allowing you to share one
or more specific features between several applications. A component
generated by WINDEV can also be used in a WEBDEV or WINDEV Mobile
project.
1 Creating requirements
made of: 2 Performing the
requirements:
Project Monitoring
Center
Tasks
Login window
of WEBDEV
Database of
Control Centers
Incidents
Pane of
Stand-alone Image catalog Business Rules
Business Rules Automatic tests Business Rules
messaging (WDBAL) (custom images)
Remark: When installing WEBDEV, the setup program proposes you to choose one of the following
options:
• create the database of Control Centers. This database will be automatically created in HFSQL
Classic format in the specified directory. Managing the
requirements
• share an existing database of Control Centers.
When the relevant project is opened, the Project Monitoring Center requests or indicates the
current task. As soon as a task is completed, all you have to do is indicate that this task is over Using the site
and specify the new task.
A task can be linked to a project element (window, report, ...). Whenever the relevant element is
opened, the time spent on this element is counted and stored in the Project Monitoring Center. During the development, the business rules defined for the project are directly displayed in the
Conversely, the element corresponding to the task that you want to perform can be automatically "Business rules" pane of development environment. This pane presents the number of project
opened from the task list. elements to which business rules apply and the percentage of rules currently implemented.
Each developer can also see his own task list in the "Project Monitoring Center" pane found in the
editor.
Advanced
concepts
In RAD generation the generated pages contain all the code necessary for their operation. The
test of these pages can be run immediately with the data found on the development computer.
In RID generation, the generated pages contain only the controls linked to items in the analysis.
The entire code required for these pages to operate must be written by the developer. Your custom
code can be typed directly.
1
ability to use some of the application features can groupware in your site. In just a few mouse clicks,
Start the site be customized. a standard application can be changed into an
Let’s take a simple example: an application application that manages several access levels.
for sales management proposes the following This feature can be easily implemented.
3
features:
2
Use When running the site, the manager will be able to
Identification the site • Price list view, create users (identified by their login and password)
• Price list modification, and to give them access to some of the site
• Order entry, features.
Use Check • Customer entry. Remark: The user groupware is available in
the rights the rights The accesses differ according to the user. Some dynamic WEBDEV sites running on Windows or
examples: Linux. The user groupware is not available in static,
PHP, AWP or Ajax sites.
Supervisor • the administrative assistants can see the price
HFSQL Classic,
Client/Server,
Native Access,
LDAP 2 How does the user groupware operate?
Database
of User Groupware A site that is using the user groupware has two use The advanced menu allows the supervisor to:
levels: • start the site.
Configuration of • the user level. • configure the groupware.
rights and users • the supervisor level.
4 Supervisor Configuring the groupware consists in creating
menu users and groups, associating the users with the
2.1 The user level groups and managing the rights granted to each
The user connects to the application via a login user (or group) on each site page. The rights can
page and he accesses the authorized features. be defined for the menu options, for the groups of
Remark: The user groupware can allow you to controls and for the controls. The supervisor can
connect by using an LDAP directory. gray these elements, or make them inactive or
invisible. These configurations have priority over
2.2 The supervisor level any configuration defined in the program.
History See "Configuring the site that is using the user
of connections The supervisor connects to the application via a groupware", page 132 for more details.
login page and he can access an advanced menu
Remark: All user information and rights are stored
allowing him to configure the users and their rights,
in HFSQL format data files..
or to start the application.
4 Configuring the site that is using the user groupware 5.1 Using groups of controls When configuring the user groupware, the
supervisor can define different visibility
To simplify the configuration of groupware
characteristics. The characteristics defined by the
When the site is deployed, the user groupware is 4.1 Managing users management according to users, we recommend
supervisor have priority.
configured by the application supervisor. that you use groups of controls.
The user management consists in: For example, a button is used to make a control
This setting consists in creating the users and In your pages, you have the ability to create groups
• creating users, active. This control was grayed by the supervisor.
groups of users, and in granting them specific of controls according to the controls that will be
Your code will be ignored and the control will not
rights for each control found in each site page. • creating groups, displayed for a specific type of user.
be active.
These rights are used to gray controls, groups of • associating users with groups. The ability to associate a control with several
controls or menu options, and to make them visible To create a new user, you must specify: groups of controls increases the number of 5.3 Defining rights
or invisible. • the user’s last name (mandatory). possible combinations.
To get a definition of rights corresponding to the
• the user’s first name. These groups of controls can be created in your features of your site, we advise you to:
site only for managing the groupware, no specific
To configure the user groupware, you must simply: • the user login. This login corresponds to the • configure the rights for your application before
programming is required.
1. Start the site and connect as supervisor: user’s identifier when he connects to the creating the setup procedure. Then, all you have
• Name: SUPERVISOR application. 5.2 Visibility of controls to do is add the groupware files when creating
• the user’s password. This password is optional the site setup.
• Password: SUPERVISOR When developing your application, you can define
and it can be entered by the user during his first • supply a programming documentation that
2. Select "Configuring the groupware". the visibility options for the elements found in your
connection (check the corresponding option). provides the names of controls, groups of
3. The page for managing the user groupware is pages:
The user can be defined as being a supervisor of controls and options that must be configured
displayed. This page is used to: • when describing the element (7-tab window), according to the level of use defined for the site.
the site.
• manage the users and the groups. • by programming (..State or ..Visible).
You also have the ability to modify or delete a user.
• manage the rights. When deleting a user, you have the ability to delete
• display the statistics. the entire user or to delete his rights only.
• migrate the data coming from a user The users can be grouped.
groupware version 18 and earlier. A user can be associated with several groups.
Remarks:
• The supervisor password should be changed
during the first use.
• If you are using an LDAP directory, you have the
ability to import the users found in the directory
in order to manage the rights of these users.
1
languages. The different languages of the site • If the operating system supports several
Choosing languages
will be taken into account during the different languages (Hebrew, Arabic, Greek, ...),
- Project development steps. the corresponding character set will be
- Analysis The main steps for developing a multilingual site automatically used when typing translations in
are as follows: these languages.
1. Choosing the languages supported by the • If your site is a multilingual site, this feature
project and the analysis. must also be managed in the pages of user
2 Translating project
elements
2. Entering the different project elements (pages,
code, ...) in the different project languages.
groupware and in the pages for automatic
management of HFSQL errors. See the online
- Direct translation 3. Defining the project language by programming. help for more details.
- Translation via WDMSG, WDINT, • The management of Unicode is available in the
WDTRAD, ... 4. Managing specific character sets in the data
files. HFSQL data files and in the controls of pages.
5. Creating the library and the setup program.
4 Library
Choosing the library
2. In the "Languages" tab, you have the ability
to add or delete the languages supported by the
(accessible from the Windows control panel).
When creating an edit control or a table column
languages project. that displays numeric data (number, currency, date,
time, duration, ...), the input mask used will be the
The selected languages will be proposed for all
mask defined in the language options of project.
multilingual resources that can be translated
This option is available in the pages.
(captions of controls, menu options, help message
5 Setup program associated with a control, ...). At run time, when an edit control or a table column
has a mask "Defined by the project", the input mask
When modifying the project languages, the
- Available languages and/or the display mask will automatically adapt
- Translating the setup modifications will be automatically taken into
according to the options selected in the project for
program account:
the language displayed at run time.
• for each new element or object created in the
Remark: The linguistic options are also used to
WEBDEV editor,
define the writing direction and the character set
• all each element or object opened in the used ("various" option).
WEBDEV editor.
The main language corresponds to the language 2.2 Languages supported by the analysis
used by default at run time. If your project is using an analysis, the choice of
languages supported by the analysis is performed
in the data model editor. Indeed, the same analysis
can be shared among different projects that do
2 Get in touch
When Web users visit a site, they must be able to identify the person or the company in charge
of the site: simply provide a name, a mailing address and an Internet address, ... allowing the
Internet user to contact you.
Top of page End of page with a button
used to go back to the top of page
This page can show a map specifying a store’s location, opening times, etc.
5 Avoid using of framesets.
The framesets, even though they seem to be more efficient at first, have specific problems:
they include several pages. Referencing them beside search engines is more complicated. The
navigation (especially the use of browser "Back" key) is hard to understand for the users. Today, it
is not recommended to use framesets when developing sites.
The pager control will allow you to go from a page to another one without having to write a single
code line and the overall interface of your site will be lighter. The site will be more pleasing and
faster to view.
9 The Web user must type a quantity? Use a combo box to simplify the input of quantities.
Image at 100 % if the Stretched image Selecting the display mode in the
control dimensions (not recommended) editor (Image control description,
correspond to those of "General" tab)
the image, otherwise,
Homothetic image
A skin includes:
• a style sheet containing WEBDEV styles.
• an image directory.
• a default color palette.
• a set of reports used as base to build the new project reports.
In the browser
The skins can be swapped at any time to modify the graphic aspect of a site. When changing skin,
WEBDEV automatically adapts the visual aspect of the site controls.
Once it is added to the project, the preset template can be opened in the editor and modified like • Reinitialize the page controls
any other page template. Example: Link used to clear the controls found in the current page.
To perform this type of process, use a link with the action "Delete content of the controls in the
browser".
A preset page template can also be used as base template for creating another page template.
When the same Session page is used to display different data (page with browsing table, loopers
or "Form with browse" page, etc.), the page context on the server changes according to the data
displayed.
When the Web user clicks on the "Back" button, the browser does not inform the site or the
server. The browser goes back to the previous page without the corresponding context.
No specific management is required when using a "Back" operation to go from one page to
another.
A specific management is required when the same Session page displays different data.
The context contains the list of suppliers displayed in the Table control.
Total security!
The Session page displayed on the browser corresponds to the page displayed in step 1. However,
the browser did not inform the server that the "Back" button was used by the Web user. The page
context on the server is still the one corresponding to the customers.
If the Web user selects an element (a supplier) in the Table control, the selected element will be
the corresponding element in the context: a customer. A desynchronization occurs between the
dynamic page viewed and the page context found on the server. The WEBDEV engine detects this
desynchronization.
Web user
pane, in the "Project" group, click "Description". • The synchronization mechanism can be disabled
2. In the "Advanced" tab, check "Use the for the page controls that do not require a
mechanism for synchronizing pages (runs the management of synchronization ("Close"
synchronization code)". button for example): simply uncheck "Call page
3. Validate. The project pages will be automatically synchronization process if the user has used the
included in the history of browser pages: to go browser "Previous" button" in the "Advanced" tab A cookie is a file saved by the WEBDEV site on the computer of Web user. This file can be read at
back to these pages, click the browser "Back" of the control description. any time from the server or by the browser. The cookies are used to store persistent information
button. • The warning message can be customized (see on the computer of Web user.
next paragraph). For example, various information is requested when a Web user connects to a site for the first
time: user name, login, ... and it is stored on his computer. During the next connections, the
WEBDEV site will read this information in the cookie created during the first visit and it will be
4 Synchronization by programming able to greet the Web user personally on the first page.
1st connection
To manage the synchronization by programming: Remarks:
The WEBDEV site saves the
1. Display the description window of the page: on • ChangeAction is initialized with "No action" if information given by the
the "Page" pane, in the "Description" group, click a WLanguage function that allows displaying Web user on his computer.
"Description" or re-displaying a page is used in the page
2. In the "UI" tab, for "Using the browser "Back" synchronization code.
button", select "Allowed". • To customize the desynchronization message,
3. Configure (if necessary) the page controls for all you have to do is enter in the synchronization
which the synchronization must not be managed. code of the page:
For each control that triggers an action on 1. the custom message.
the server, you can specify whether the page 2. the re-display of the current page on the server
synchronization must be managed (default (with PageRefresh, for example). The new Web user must enter
option) or ignored during this action. To ignore the • To perform a synchronization from the his name and password here
synchronization management, simply uncheck information found on the computer of the Web
"Call page synchronization process if the user user, we recommend that you:
has used the browser "Previous" button" in the
"Advanced" tab of the control description. 1. Use a hidden control containing the identifier
of the displayed and selected record.
4. Enter the code required for custom Next connections
management of synchronization in the page 2. In the synchronization code, find the current
synchronization code. Use ChangeAction in the record on the browser. This search is performed The WEBDEV site reads the
page synchronization code. This function is used from its identifier found in the hidden control. data previously saved on the
3. Refresh the page. computer of the Web user.
to define the action that will be performed if the
page is desynchronized.
• a specific password will be assigned to the members of marketing team: they will be able to on- Operations in
Client 9c Vendor 1 Sending the email from the Web user’s computer
computer 9d server
Use this method when the Web user must send an email to a specific address: author of site,
technical support, sales department, ...
5 9b The EmailOpenMail browser function is used to open the email software of the Web user. Some
parameters can be filled by default: email address of recipient, ...
SSL 9a SSL Web user 3 Web user n
4 6
7 Web
Payment server
8 Bank
operator
2 Identification
(input of personal details) 6 Enter the credit
card number 9b
Response for the
customer This method allows you to use the messaging software of Web user: no specific process must be
performed in the WEBDEV site.
3 Check the
order 7 Bank authorization 9c Redirection of the page
for order confirmation
9d
4 Redirection to the
secure payment 8 Response of the bank
Web user 2 or
Web user 1
System studied
Corresponding analysis
The analysis of a WINDEV, WEBDEV or WINDEV Mobile project corresponds to the LDM (Logical
Data Model). The entire structure and data organization are described: the data is grouped by file
(called data file). Each data file contains several data called items.
In the analysis, the description of a data file can be linked to a type of file (HFSQL, HFSQL Client/
Server, SQLite, ...).
The analysis generation is performed before the To start generating the analysis, on the "Analysis"
programming step and after the description of data pane, in the "Analysis" group, click "Generation".
files. This generation is used to: The generation is performed in three steps:
• validate the modifications performed on the • verification of modifications and generation of
analysis (LDM). data files of the analysis description.
• create the modules required for programming. • automatic modification of accessible data files
• automatically update the data files if necessary. (files found in the "EXE" directory of project).
As long as the analysis (the LDM) is not generated, • Synchronizing the project.
the analysis description (the data files) cannot be
used in the project.
WEBDEV allows you to manage the different The "small rectangles" displayed between two
analysis versions: versions indicate:
1. On the "Analysis" pane, in the "Analysis" group, • one rectangle: few modifications have been
expand "Generation" and select "Manage the made between the two versions.
versions". • several rectangles: several modifications have
2. In the wizard, specify whether you want to work been made between the two versions.
on the current analysis or on a specific analysis. To see the details of modifications performed
Remark: when an analysis is damaged, you have between two versions: Double-click the line
the ability to select the damaged analysis to restore containing the "small rectangles" or click on
one of the earlier versions for example. [Modifications].
All the analysis versions are viewed in a graph. The options available in the version manager are:
The yellow rectangle indicates the version number • Restoring an analysis.
of analysis; the caption on the right indicates the • Canceling the last generation.
generation date.
• Resetting the version number to 1.
Web
server Web
WEBDEV site
server
WEBDEV site
Session 1
Session 1
Windows or Linux
Client 1 HFSQL server
Client 1
Client 2
Client 2
Session n HFSQL
Session n Client/Server
databases
Client n Client n
".ftx" file
One or more full-text indexes
Session of client 1 Full-text index file
".mmo" file
Session of client N One or more "Memo" items
Memo file
Access to data Remark: This diagram only presents the main created files. Other specific files can be created if
the data file uses logs, transactions or replication.
Cluster
Applying modifications
The method for displaying and retrieving the information is straightforward: PageToFile FileToPage
• The link between a control and an item or variable is defined in the page editor during the Linked variable
control description ("Link" tab).
• PageToFile is used to update the record or the variable with the data found in the page. Simple control
• FileToPage is used to update the data displayed in the page with either the information saved Link with:
- Simple variable
in the data file or the information saved in the variable. - Instance of class or structure
member
- Property of dynamic object
Link between control and item List box, Table, Combo box, ...
Link with:
- Array of classes or structures
- Advanced types (for example
xlsRow, xlsColumn)
PageToFile FileToPage
Database
Queries
Remark: In programing, a query can be handled like a data file. Especially, it can be associated
with a display control (a Table control for example) that will present the data returned by the query.
Embedded query : MyPage_1$Query.
In this case, the query is included in the page. It is found in the WWH file corresponding to the
page. If the WWH file is copied (into another project for example), the embedded queries used by
this page will also be copied.
Customer
file
The number of records displayed in the control can be limited by a filter (HFilter used in the
initialization code of control). Customer
Several WLanguage functions can be used to handle the browsing Table controls. These functions file
start with "Table".
File loaded
To add a record into the Table control, add the record into the corresponding HFSQL data file in memory
(HAdd), and redisplay the Table control with TableDisplay.
To delete a record from the Table control, delete the record from the corresponding HFSQL data
file (HDelete) and redisplay the Table control with TableDisplay.
Remark: The different fill modes (memory, browsing, browsing loaded in memory) are available for
the List Box controls, Combo Box controls, Table controls, Looper controls, ...
A commercial site allows the Web users to place orders, to make reservations, ... WEBDEV allows you to create AWP pages. The AWP pages are independent pages that can run
processes from the parameters passed in command line to the page. The AWP pages can be used
Several methods can be used to retrieve this information.
to retrieve the data entered on the site.
Tip: Process the retrieved data in a "Back Office" application developed with WINDEV. Run the AWP pages
by HTTP requests
The AWP pages found on the Web server are interrogated on a regular basis by the HTTP requests
run by the Back Office application. The data is returned in string format and processed by the
Access to data Access to data WINDEV application.
Web Company
Server headquarters Benefits:
• Solution that can be easily implemented.
WEBDEV site Back Office
application
• Equivalent to a custom Web service.
• No additional executable is required on the server. No additional session is run on the server.
Drawback: Need to manage security in an optimal way: using a secured connection to access
data, opening a specific port to access data (port 4900 by default), configuring the firewall, ...
4
entered in the site. Confirmation
email
The Webservice found on the Web server is interrogated on a regular basis by the HTTP requests
run by the Back Office application. The data is returned in XML format, as strings (or other) and
processed by the WINDEV application. Company
headquarters
Benefits:
• Solution that can be easily implemented.
Web server
• No additional executable is required on the server. No additional session is run on the server.
Drawback: Unidirectional data retrieval: no data update toward the server. - Dynamic WEBDEV site
- WEBDEV application
3
server
This solution can be used on a shared server. Email containing
the order
2.3 By FTP:
WEBDEV allows you to regularly save the data files of WEBDEV site. This backup can be transferred
by FTP to the company headquarters. Then, all you have to do is: 1. The Web user places an order on the site.
• retrieve the compressed backup of data files. 2. The WEBDEV site informs the Web user that his order was successfully saved. The Web user is
• decompress the files (via a WINDEV application). informed that a confirmation email will be sent to him.
• process the data found in the files. 3. The WEBDEV site sends an email to the company headquarters. This email contains the order
placed by the Web user.
Benefits: 4. An email is sent by the company to the Web user to inform him that his order will be
• Solution that can be easily implemented. processed.
• No additional executable is required at the hosting company.
Benefits:
Drawback: All data files found in the application are retrieved. • Solution that can be easily implemented.
• No additional executable is required on the server.
This solution can be used on a shared server.
Drawback: Unidirectional data retrieval: no data update toward the server.
The replication can be performed by email or via the assisted universal replication. See the online
help for more details.
Universal
replication
The synchronization can be adapted to special cases. For example, you have the ability to retrieve
the records regarding a specified product or the records created on a specific date, manage the
conflicts, ...
These adaptations must be done by programming with HRplFilterProcedure.
Running the
Processes layer only. It also optimizes the teamwork and the multi-target development.
test of a
Web site
Remark: To find out the coverage of tests run, WEBDEV proposes to use "Code Coverage". Code
coverage is used to measure the coverage of tests run on a site. Each code line run is considered
as being "checked".
Caution: The code coverage does not allow you to find out whether tests are successful: it only
allows you to find out whether the code line was run.
The code coverage is used to detect the code lines that have never been run.
190 Part 6: Running the test of a Web site Part 6: Running the test of a Web site 191
How to run a
Contenu
site test? WEBDEV administrator
(dynamic WEBDEV site only)
Running the test from the
administrator allows you to
test:
Start the WEBDEV
administrator ("Start" menu)
and click the "Test page"
• the site features, button ("Advanced" tab).
Several tools can be used to run the test of a WEBDEV site: • the features specific to the This test allows you to use the
• the main editor of WEBDEV. Web (cookies, ...), WEBDEV site in conditions
• the use of the site in real similar to the ones of a Web
• the WEBDEV administrator.
conditions. user.
This module is required to run a dynamic WEBDEV site (in Session mode or in AWP mode). On
the development computer, the test of dynamic sites can be run from a test page created by The rights granted to the
the administrator. Web user (access, write and
read) correspond to the rights
• WDTestSite, tool for running stress tests.
granted to the default Web
The table below presents how and when these test modes must be used. user defined in the Web server
used.
Test mode Type of test Running the test
Editor Running the test from the • On the "Project" pane, in the WDTestSite WDTestSite is used to run 1. Create a test scenario (with
editor allows you to test: "Test mode" group, expand stress tests. WDTestSite).
• the site features, "Test mode" and select (dynamic WEBDEV site only)
WDTestSite is used to 2. Install WDTestSite and
• the code used in the "Trace the project". start several simultaneous the scenario on the different
different events and • On the "Project" pane, in the connections to a WEBDEV site. computers to simulate
processes. A powerful "Test mode" group, expand Each connection performs a an important number of
debugger allows you to "Test mode" and select set of actions in the WEBDEV accesses.
monitor the execution "Debug the project from the site (preset scenario). 3. Specify the number of
of different events and home page". connections to establish.
This test must be run on a
processes. The rights granted to the Web WEBDEV site installed on a 4. Run the test scenario on
• the use of the site with user (access rights, write rights deployment computer that is each computer.
different browsers (installed and read rights) correspond ready to operate.
to the rights granted to the Remarks:
on the development
computer). developer. • Each computer establishes
a defined number of
connections.
This type of test: • Each connection performs
• allows you to use the the selected scenario.
debugger.
• is taken into account by the Automatic tests The automatic tests are used 1. Display the procedure
"Code Coverage". to run the test of procedures or the class in the "Project
and classes found in a site at explorer" pane.
different development levels. 2. Display the popup menu
The test scenarios are of the element (right mouse
generated in WLanguage from click) and select "Create a
the procedure test or from the unit test".
class test. The scenarios can
be modified in the code editor.
This type of test is taken
into account by the "Code
Coverage".
192 Part 6: Running the test of a Web site Part 6: Running the test of a Web site 193
The
Contenu
When can I use the
Contenu
debugger debugger?
To help you optimize your code, a debugger is supplied with WEBDEV. The debugger can always be used when running a test from the editor. To do so, breakpoints must
be placed at the requested locations in order to debug the site step by step.
The debugger allows you to run your dynamic sites step by step, by viewing the WLanguage code
run, the content of variables, etc.
The different types of tests available from the editor are as follows:
• "Go" on page:
The test of the current page in the editor can be run via among the quick access buttons of
WEBDEV.
• "Go" on project:
The project test on the development computer can be run via:
• found among the quick access buttons of WEBDEV,
• on the "Project" pane, in the "Test mode" group, expand "Test mode" and select "Debug the
project".
• The deployed project:
The deployed project can be debugged. This feature is very useful to reproduce a problem that
occurs under specific conditions.
To start the deployed project, on the "Project" pane, in the "Test mode" group, expand "Test
mode" and select "Connect to a site and debug the connection".
Remark: This option can be used with a development server or with a deployment server. The
server must be configured to allow the remote debugging.
• The deployed project being used:
The deployed project can be debugged while it is used. This feature is very useful to reproduce
To start the debugger, use: a problem that occurs under specific conditions. The most common case: a problem occurs
• a breakpoint positioned in the code editor: the debugger will be automatically started when while you are using the site: you can start the debugger immediately by setting a breakpoint in
the line preceded by a breakpoint is run. your the code of your project.
To insert a breakpoint, all you have to do is click in front of the code line: a red bullet appears. To use a session of deployed project, on the "Project" pane, in the "Test mode" group, expand
"Test mode" and select "Debug an existing connection".
Remark: This option can be used with a development server or with a deployment server. The
server must be configured to allow the remote debugging.
• the STOP server keyword of WLanguage in your WLanguage code: the debugger will be
automatically started when this code line is run.
• the "Trace the project" option: the debugger is started when running the test of dynamic site.
on the "Project" pane, expand "Test mode" and select "Trace the project".
194 Part 6: Running the test of a Web site Part 6: Running the test of a Web site 195
Test of a site in practice To run the test of a dynamic site (Session or AWP)
from the editor, several methods are available:
2.2 Running the project test from the
WEBDEV administrator
• On the "Project" pane, in the "Test mode" group, Running the test from the WEBDEV administrator
expand "Test mode" and select "Debug the (WD250Admin) allows you to test:
1 Overview project" (or Ctrl + F9).
• the features of the site.
• Click among the quick access buttons.
• the features specific to the Web (use of cookies,
The editor is automatically minimized, the browser ...).
WEBDEV proposes several methods for running the The test of a single query is used to run the specified in the WEBDEV options is opened and
test of your sites: current query only. This allows you to check the first site page is displayed. Remark: The WEBDEV administrator can only be
• test of entire project, the operating mode of a query as soon as its used to test dynamic sites (Session or AWP) or the
• test of a single page, development is ended. To test a static + dynamic site (Session or AWP) dynamic part of static + dynamic sites.
The test of a single report is used to run the from the editor:
• test of single query (see the "Reports and
Queries" guide for more details), current report only. This allows you to check • to test the static part of the site: perform the Running the test from the WEBDEV administrator
the implementation of a report as soon as it is operations corresponding to the test of a static is equivalent to starting the dynamic site from a
• test of single report (see the "Reports and developed. Like for the project test, the debugger site.
Queries" guide for more details), remote computer.
can be started as soon as a problem occurs. • to test the dynamic part of the site (Session or Before deploying a WEBDEV site, we recommend
• step-by-step project execution, Running the project step by step is used to launch AWP): perform the operations corresponding to that you run the test of this site at least once from
• test of performance of your site, the debugger when starting the site. This solution the test of a dynamic site. the WEBDEV administrator.
• regression test/automatic test, allows you to closely monitor how the site runs.
Dynamic site (Session or AWP mode):
• stress test. The performance test of your site allows you to To run the test from the WEBDEV administrator:
Start
The test of the entire project is used to simulate check and optimize its execution time.
The following modules are automatically started 1. Start the WEBDEV administrator: on the
the startup of the site. This allows you to run test of The non-regression test (or automatic test) is "Tools" pane, in the "Web utilities" group, click
during the test of a dynamic WEBDEV site (Session
entire site, even if its development is not finished based on the execution of scripts. It allows you to "WDAdmin".
or AWP mode):
yet. As soon as a problem occurs, you have the check that, during the execution of your site, ... the
ability to start the debugger to identify and fix the existing features are still supported. • The Web server installed on the computer and 2. In the "Advanced" tab of WEBDEV administrator,
problem. configured for WEBDEV when installing WEBDEV. click the "Test page" button.
The stress test is used to start several
The test cannot be run if the Web server is not To stop the test, display the WEBDEV administrator
The test of a single page is used to run the current simultaneous connections to the same dynamic
started. (click the icon 25 in the taskbar) and click
page only. This allows you to run the test of your WEBDEV site.
project from a given page or to check the operating • The WEBDEV administrator (WD250ADMIN.EXE). "Disconnect" ("Connections" tab).
mode of a page as soon as its development has In addition to these methods, WEBDEV also The administrator is used to manage the Remark: The WEBDEV administrator also allows
ended. Like for the project test, the debugger can proposes to find out the "Code coverage" of site, connections to the Web server and to configure you to run a project test equivalent to the project
be started as soon as a problem occurs. which means the coverage measurement for the the WEBDEV sites. test run from the editor:
tests run on a site. See the online help for more Remark: a project test can be run from the test 1. Start the WEBDEV administrator: on the
details. page of the administrator ("Advanced" tab of "Tools" pane, in the "Web utilities" group, click
WD250ADMIN, "Test page" button). "WDAdmin".
• The WEBDEV engine (WD250AWP.EXE). 2. In the "Connection" tab, select the site and click
2 Running the test of WEBDEV project The WEBDEV engine is used to manage the the "Test" button.
requests made by the Web users from their
browser and to return the corresponding 2.3 Stress test/Regression test
2.1 Running the project test from the editor • in the options of test mode: on the "Project" dynamic HTML page.
pane, in the "Test mode" group, expand "Test Remark: The WEBDEV engine is started only if WDTestSite is used to run stress tests: WDTestSite
Running the test from the editor allows you to test: is used to start several simultaneous connections
mode" and select "Test browser". the project contains dynamic pages.
• the site features, to a dynamic WEBDEV site (Session or AWP).
Different types of tests • The Internet browser.
• the use of the site with different browsers. Each connection performs a set of actions in the
To run the test of a static site from the editor: The Internet browser is used to display the HTML
The test of a project can be run regardless of the pages of the WEBDEV site. WEBDEV site (preset scenario).
current element in the editor. 1. On the "Project" pane, in the "Test mode" group, See the online help for more details.
Remark: The test browser used to run the project expand "Test mode" and select "Debug the project
test can be chosen: from the home page".
• in the WEBDEV options: on the "Home" pane, 2. The editor is automatically minimized.
in the "Environment" group, expand "Options" 3. The browser specified in the WEBDEV options is
and select "General options of WEBDEV". The opened and the site home page is displayed.
browser can be selected in the "Web" tab.
196 Part 6: Running the test of a Web site Part 6: Running the test of a Web site 197
3 Running the test of a remote WEBDEV site • use conditional breakpoints In this code, depending on the result of InTestMode,
• modify the code while continuing the execution, the trace window appears during the application
• ... test only.
Several methods can be used to run a test and Two features are available: Such procedure allows you to leave the call to the
to debug a site on the development computer. • Starting and debugging the site on a remote 5.4 Debugging without debugger trace windows in the application code without any
However, in some cases, you may have to debug application server. risk of displaying it on the end-user computers.
the site directly on the user computers. In some cases, running a program with or without
• Debugging a site currently used on a remote debugger may be different. The call to this trace procedure is identical to the
From your office in London, you have the ability to application server. use of Trace:
debug a site running on a Web server in Taiwan. Indeed, the debugger introduces pauses in the
For these two features, a specific configuration is execution of the process during which several tasks MyTrace("Customer: "+...
The debug operation is done without having to go required for the remote computer. are performed by WINDEV. Customer.CustomerNum)
anywhere, on the final configuration directly.
Therefore, the debugger cannot be used in a Creating a trace file
procedure called by a timer or in the code of a During long processes (batch processes, ...), to
4 Running the test of a page scrollbar. check the operating mode of program, you must
Remark: See the online help for more details about keep a physical trace of processes run (a text file
the debugger limits. for example).
4.1 Running the page test from the editor 4.2 Stopping the page test To debug these applications, you may want to follow The following procedure is used to manage the
Several methods can be used to stop the test: the evolution of a value, how different procedures trace display:
To run the test of a page from the editor: are called, ...
1. Open the page whose test must be run. • 1st method: • on the screen (/DEBUG parameter in command
Close the page whose test is currently run. This information can be: line).
2. Click among the quick access buttons of WEBDEV displays the editor that was used at the • displayed on the screen
WEBDEV menu. You can also use the F9 key. • in a text file (default mode).
beginning of test. • stored in a trace file.
3. The editor is automatically minimized and the PROCEDURE MyTrace(StringToTrace)
• 2nd method: FilePath is int
page is run. Caution: If the information is displayed on the
• Go back to the editor with the taskbar or screen, it must be displayed during the application FilePath = fDataDirUser() +
During the test, all page features can be run. press Alt + Tab. ProjectInfo(piProjectName)+ ".txt"
You will have the ability to open other pages for tests only.
• Confirm that the test must be stopped. FileNum is int
example. DebugMode is boolean = False
WEBDEV displays the editor that was used at
the beginning of test. Displaying information IF Position(CommandLine(), "/DEBUG")
Two tools can be used to display information: > 0 THEN
DebugMode = True
• information boxes: Info WLanguage function.
END
5 Tracing a project Caution: Displaying an information box is a
IF DebugMode THEN
locking operation. Trace(StringToTrace)
• the trace window: Trace WLanguage function. ELSE
5.1 Principles for debugging 5.2 Overview of debugger The trace window is displayed in the top left FileNum = fOpen(FilePath, foCrea
corner of screen, without interrupting the teIfNotExist + ...
Debugging an application consists in: The debugger is used to trace the WLanguage
program execution. foWrite + foAdd)
• checking the operating mode of a process, programs in order to help you improve these
If FileNum <> -1 THEN
• understanding the operating mode of an existing programs.
DateTimeTrace is DateTime
The source code run is viewed on the screen. The Managing the display of the debug
program, information DateTimeTrace = SysDateTime()
• checking the value of variables, processes run are sorted in hierarchical order in DateTrace is Date
the "Debugger" pane. Displaying the debug information on the screen is DateTrace = MyDate..Date
• checking the operating mode of special cases in useful in test mode only.
The value of variables can be viewed: TimeTrace is Time
an application or in a site. Any unsuitable display must be removed before TimeTrace = MyDate..Time
The debugger is used to perform these operations. • individually in the rollover tooltip of each
distributing an application. fWriteLine(FileNum,
variable.
Remark: WEBDEV also includes several trace To avoid any oversight, we advise you to manage DateToString(DateTrace) + ...
tools (trace window, information box, etc.). See • in the "Debugger" pane. " -
the display of debug information via a global
"Debugging without debugger", page 199 for "+TimeToString(TimeTrace))
5.3 Features of debugger procedure.
more details. fWriteLine(FileNum, StringTo
For example: Trace)
The debugger is used to: fWriteLine(FileNum, " ")
PROCEDURE MyTrace(StringToTrace)
• find out the call stack IF InTestMode() THEN fClose(FileNum)
• view the content of variables or expressions Trace(StringToTrace) END
• run the code step by step with ability to skip END END
blocks.
198 Part 6: Running the test of a Web site Part 6: Running the test of a Web site 199
Remarks: • Example of content of trace file: 6.4 Choosing a process to optimize • the percentage of time spent in the process
• The trace file is created by default in the data 01/12/2015 - 10:53:25:20 of function or procedure. The higher this
The process to optimize is chosen according to percentage is, the greater the number of
directory of user. This file is named like the Customer name: Montgomery several criteria:
project. This file contains the information processes that can be optimized in the code.
to trace during the program execution. The • the execution time of process. The longest Remark: If the process corresponds to a
information is completed by the date and time processes must necessarily be optimized. WLanguage function, it is fairly hard to optimize it.
of each "Trace". This allows you to detect a
potential problem during the process.
7 Regression tests
6 Performance test
7.1 Overview 7.3 WDTestSite
Several test tools are available to guarantee the WDTestSite is used to run different tests on a
6.1 Overview 6.3 Reading the result of performance quality of your applications: WEBDEV site.
The performance profiler allows you to check and
profiler
• The test mode (project Go or page Go) is used to The following tests can be run by WDTestSite:
optimize the execution time of your site. The performance profiler presents the result of the immediately check a modification performed in • Stress test:
Its principle is straightforward: analysis in several tabs: your site. The stress test consists in simulating the
• You run the test of your site. • the "Summary" tab presents the ten longest • WDTestSite that is used to run different tests on connection of several Web users to a WEBDEV
• During this test, the performance profiler keeps processes. a WEBDEV site. site. Each Web user runs a set of operations
track of all the actions performed and the • the "Mapping" tab presents a graphical view of To automate these tests and to increase the (scenario) simultaneously.
corresponding processes run. main processes. quality of your applications, you have the ability • Regression test:
At the end of test, the performance profiler displays: • the "Details" tab presents all processes run to run automatic unit tests. These tests are used The regression test consists in checking the
• the 10 most time consuming operations. during the application test (from the slowest one to easily check all the features proposed by your operating mode of a WEBDEV site between
to the fastest one). applications. two updates. The regression test consists in
• all the actions performed in the site whose test checking whether a scenario performed with an
was run, sorted by duration (from the longest • the "Calls" tab is used to see the details of
operations performed in a process. 7.2 Automatic tests earlier site version still operates properly once
one to the shortest one). the site was updated.
The following information is displayed for each Each test contains a scenario that can be directly
You can select a process in order to analyze the • Test of a site in multi-user mode:
process: edited in the product interface. This scenario is
reasons for its processing time in order to optimize The test of a site in multi-user mode is used to
written in WLanguage and it can be modified at any
it. Function Function, process or procedure check whether concurrent accesses to the data
time.
run. files are managed properly. This test consists
6.2 Starting the performance profiler These tests can be run before each deployment in
Total Time Execution time of function. order to check the operating mode of a site after in simulating the simultaneous connection
To start the performance analyzer, on the "Project" several modifications. of several Web users to a WEBDEV site. Each
pane, in the "Audit and performance" group, expand Nb of calls Number of calls made to the Web user runs a set of operations (scenario)
"Analyze the performance" and select "Analyze the function (procedure or process). The following elements can be checked:
simultaneously.
performance". Time 1 call Execution time of a call to the • the sets of procedures
• Comparison of different servers:
The project is automatically run in test mode. The function (procedure or process). • the classes WDTestSite is used to compare the speed
process to optimize can be run in your site. Each test is associated with a WLanguage code: the of different servers. To do so, run the same
code % Percentage of code run outside
To go back to the editor, all you have to do is close test scenario. This scenario can be viewed in the scenario on different servers and compare the
the call to a WLanguage function
your application or your site. code editor. The code of the tests can be modified. execution time of this scenario.
or outside the call to a custom
Then, the performance profiler displays the result function or procedure. The tests and the associated code are not • Optimization of processes developed in
of the analysis. distributed to the end users. Therefore, the number WLanguage:
Parent Process that called the function. of tests for a site has no incidence on the size of WDTestSite is used to compare the execution
Remark: The performance profiler should be used
to optimize your site (before it is distributed for Remark: site supplied to the end users. time of a scenario before and after the
example). See the online help for more details (keyword: WLanguage code was optimized.
• The "Full execution" caption represents the total
amount of time for running the site test with the "Automatic test"). See the online help for more details (keyword:
performance profiler. "WDTestSite").
• The "Total Page XXX" caption represents the total
amount of time for running the page XXX (from
its opening to its closing).
200 Part 6: Running the test of a Web site Part 6: Running the test of a Web site 201
PART 7
Deploying a
Web site
Development Hosting
computer company
2 Setup by FTP
(WDDeploy) 1 Configuration of
the FTP server
Before performing a deployment by FTP, the hosting company must communicate the following
information to the developer:
• Name of Web server where the setup will be performed (or its IP address).
• User name and password defined in the FTP server.
204 Part 7: Deploying a Web site Part 7: Deploying a Web site 205
Deploying a dynamic
Deploying a static or PHP site in practice Contenu
WEBDEV site
1 Overview
When developing a static site or a PHP site, one of • deployment by network: recommended when
The different types of deployment
the important phases consists in deploying this site the server is directly accessible.
on a Web server (at a hosting company or on an
WEBDEV offers three methods for deploying a dynamic site (Session site or AWP):
WDDeploy is used to simplify the deployment of
Intranet). your static sites. • deployment by physical media (CD-ROM, etc.) of the WEBDEV site, with creation of a setup
Two deployment methods are available: Remark: To deploy a dynamic site, see "Deploying a
version supplied on CD-ROM to the hosting company.
• remote deployment (by FTP): recommended dynamic site in practice", page 212.
when the server is not directly accessible. Development Hosting
computer company
2 Creating the setup
1 2
Create a setup Install the WEBDEV
program on a physical site and configure
To deploy your static site: • Characteristics of FTP server used to update media (CD ROM, ...) the administrator
1. On the "Project" pane, in the "Generation" the site. These characteristics are supplied by
group, click "Deploy the site". WDDeploy starts. the hosting company, ...
2. Create the profile corresponding to your site.
This profile contains the following information:
3. Click the "Prepare" button. WDDeploy prepares
the list of files to install. For an update, WDDeploy
compares the files found on the development
3 Implement the site
(start link)
Development Hosting
computer company
Remark: It is also possible to perform a deployment by file transmission in FTP mode. In this
case, the hosting company must configure an FTP server.
206 Part 7: Deploying a Web site Part 7: Deploying a Web site 207
• remote deployment from a management computer (file transfer through Internet, FTP) The remote setup (by HTTP) from a management computer is recommended if the characteristics
of the server are not known by the developer when creating the setup program. In this case, the
Send the Install
package the site
setup program is called a "Package".
If a site is intended for several clients, you have the ability to create a single package and to
distribute it to all the relevant clients.
The server settings (address, etc.) are specified only when the package is run on the management
Development Web server computer.
computer
2 Deployment via physical media: necessary information
1 Create the
setup package
Configure the
FTP server and
When deploying by physical media, the information regarding the setup and the site setting is
supplied both in the wizard for setup creation and in the setup wizard.
4
the account
Online the
manager
site (run link) When preparing the setup, you must supply:
• the setup directory,
• the files to install,
• the directory for generating the setup.
3 After setup, the characteristics of the site (connection time-out, number of connections, etc.) must
be configured in the WEBDEV administrator (deployment version).
Run the package:
Install the site on the server by FTP
Deployment by FTP from the development computer: necessary
information
Remark: It is also possible to perform this deployment by file transmission in FTP mode. In this
case, an FTP server must be configured on the Web server. No setup can be run without this information. Ask the provider to get this information.
Choosing a deployment method Before performing an HTTP deployment directly from the development computer, the host
company must communicate the following information to the developer:
The choice of deployment method mainly depends on the constraints imposed by the hosting • Name of Web server where the setup will be performed (or its IP address).
company and on the location of deployment server (remote or local).
• User name and associated password defined in the WEBDEV account manager.
• The OS account used to run WEBDEV sites (it is associated with the WEBDEV account in the
The setup via physical media is recommended if the Web server can be easily accessed (the Web account manager).
server and the development team are located in the same premises, for example).
The remote setup (by HTTP) from the development computer is recommended if the deployment
computer cannot be easily accessed.
Before performing a remote setup, the hosting company must configure the WEBDEV account
manager.
208 Part 7: Deploying a Web site Part 7: Deploying a Web site 209
On-lining a dynamic
Contenu
WEBDEV site
When deploying by HTTP, the developer must specify in the wizard:
• the information provided by the hosting company,
• the files to install,
• the name of sub-directory of data files,
• the different parameters for connecting to the site. Your dynamic WEBDEV site (in Session or AWP mode) can be accessed as soon as it is on-lined.
On-lining a WEBDEV site consists in activating the site.
Remarks:
• A delayed setup can be performed at the specified date and time. Several methods can be used to activate a WEBDEV site:
• The setup and the update by HTTP are secured by password and data encryption. • when performing the setup by HTTP: a check box is used to automatically activate the site after
setup.
Deployment by FTP from a management computer: necessary
information
When creating the setup program, no specific information is required.
When running the setup program of the site (from a management computer), the hosting company
will have to specify:
• Name of Web server where the setup will be performed (or its IP address).
• User name and associated password defined in the WEBDEV account manager.
• The OS account used to run WEBDEV sites (it is associated with the WEBDEV account in the
account manager).
Remarks:
• A delayed setup can be performed at the specified date and time. • with the remote administrator.
• The setup and the update by HTTP are secured by password and data encryption. • with the WEBDEV administrator found on the deployment computer ("Locked" option in the
"Sites" tab).
210 Part 7: Deploying a Web site Part 7: Deploying a Web site 211
Deploying a dynamic site in practice • a setup by physical media:
The wizard allows you to create a setup program
Web server (if not already done).
2. Install your WEBDEV site by running the Install.
for your site. Then, this program will be supplied exe executable of your setup.
When developing a dynamic site (in Session or • deployment by package: recommended method to the hosting company and it will be used to Remark: It is also possible to create a setup by
AWP), one of the important phases consists of when the server is not directly accessible and install your WEBDEV site on the Web server. To stand-alone physical media, containing the setup
deploying this site on a Web server (at a hosting when its characteristics are unknown. install your WEBDEV site, the hosting company of a WEBDEV application server limited to 10
company or in Intranet) must: connections. This solution is ideal for proof-of-
Several deployment methods are available: Remarks: 1. Install the WEBDEV application server on the concepts presented on a laptop.
• remote deployment (by HTTP): recommended • For each Web server that hosts WEBDEV sites,
method when the server is not directly the hosting company must own a license for the
accessible. WEBDEV application server. 2 Remote deployment (by FTP)
Remark: for backward compatibility, it is also • To create the setup of a site, go to the "Project"
possible to perform a remote deployment by FTP. pane, "Generation" group and click "Deploy site".
• deployment by physical media: DVD, ...: To deploy a static site, see "Deploying a static, 2.1 The steps • Characteristics of the FTP account if
recommended method when the server is easily semi-dynamic or PHP site in practice", page 206. necessary (user name and password).
The deployment steps are as follows:
accessible. To easily identify the characteristics of the server
1. Installing the WEBDEV application server at
for a forthcoming update, give a name to this
the hosting company (optional step). See the
server. This name will be displayed (followed by
1 Implementing a library documentation about the WEBDEV application
the server address) in the window for choosing
server for more details.
the type of setup.
2. Creation of the following elements by the
Before performing a setup, all the objects found • deployment in the PC SOFT Cloud: 2. The files to install. By default, the wizard
hosting company:
in your dynamic site (in Session or AWP mode) PC SOFT offers a hosting platform based on the selects the library, the data files, the images and
must be included in a library.. A library is a file Cloud Computing model: you deploy without • a WEBDEV account (in the administrator). the HTML pages.
that groups all the elements created during the worrying about hardware constraints and you • an FTP account (in the FTP server) only if the 3. Configuring the setup: Chose the type of
development (description of database and pages, are billed based on your applications’ real deployment is performed by FTP. remote setup to perform:
compiled source codes, ...). The HTML pages and usage. 3. The hosting company supplies the names and • Immediate update:
the images are not included in the library. The A PC SOFT Cloud account is required to perform associated passwords as well as the name (IP The site files are compressed and
library is automatically implemented when creating this type of setup. The wizard proposes to create address) of the server. immediately transferred onto the Web server
the setup procedure. this account if necessary. 4. Creating the remote setup from the editor: on (the Web server must be accessible from the
Once the library is created, the wizard for setup • an installation by FTP via the test hosting the "Project" pane, in the "Generation" group, setup computer). Then, the WEBDEV site is
creation starts. You can choose to perform: service of PC SOFT : expand "Deploy site" and select "Deploy the site automatically installed on the Web server.
• a remote setup (by HTTP or FTP) PC SOFT proposes to host your test sites. The remotely". The necessary files are copied into the • Delayed update:
In order to perform a remote setup, the hosting setup is easily performed, directly from the transfer directory. The site files are compressed and
company must have: environment. Once your site is developed, you 5. On-lining the WEBDEV site. immediately transferred onto the Web server
1. Created and configured your FTP account on have the ability to run its test directly. Caution: By default, a WEBDEV site is deployed (the Web server must be accessible from the
the server (for setups by FTP). A PC SOFT developer account is required to remotely by HTTP. setup computer). The WEBDEV site will be
perform this type of setup. The wizard proposes installed on the server at the specified date
2. Created and configured your WEBDEV account to create this account if necessary.
on the server. 2.2 Creating the setup and time. This allows you to update your site
• a deployment package: during the night (between midnight and 3 AM
The hosting company must provide you with You must define in the wizard:
A deployment package is an executable for example), when the number of Web users
your logins and passwords for these different containing all the elements required to deploy a 1. The information regarding the remote is reduced.
accounts, as well as the name of the account WEBDEV site. This package can be run from any computer. This information must be supplied by Caution: the specified date and time are the
that runs the sites associated with the WEBDEV computer to install the Web site on the server by the hosting company: ones of the server. Make sure that they are
account. HTTP or FTP. • Server address (name of a computer valid.
To create this type of setup, there is no need accessible by network, IP address or Internet • Activating the site immediately after setup:
to know the characteristics of FTP account and address). The site will be available once it has been
WEBDEV account found on the Web server. • Characteristics of the WEBDEV account (user installed: you will be able to connect to it
name, password and account of the OS that either by using the proper address, or via a
runs the WEBDEV sites associated with the static page containing a link pointing to the
account). site. If this option is not checked, the site can
be activated via the remote administrator.
212 Part 7: Deploying a Web site Part 7: Deploying a Web site 213
4. Configuring the site. These options are used Remark: if this option is selected, the 3.2 Creating the setup 5. The default profile of the Web server to use.
to configure the options for connecting to the site update will be proposed during the setup. These parameters can be entered or modified by
after its setup. Special case: If the data files found on the server You must define in the wizard: the person who installs the deployment package.
These parameters can be modified if necessary: are in Hyper File 5.5 format, they must be migrated 1. The files to install. By default, the wizard 6. Configuring the setup: Chose the type of
• by the deployment administrator found on the to HFSQL Classic format. This migration must be selects the library, the data files, the images and remote setup to perform:
server. performed during the first site update. the HTML pages.
• Delayed update:
• by the remote administrator, that can be used 6. Specify whether your site is using the Native 2. If an analysis update was performed, select the The site files are compressed and
by the site manager. AS/400 Access. automatic modification of data files during the immediately transferred onto the Web server
Reminder: if your site is using the Native AS/400 setup. (the Web server must be accessible from
5. If an analysis update was performed, select the Remark: if this option is selected, the update will
automatic modification of data files during the Access, the AS/400 DLLs must be installed on the the computer that installs the package). The
Web server. be proposed during the setup. WEBDEV site will be installed on the server at
setup. Special case: If the data files found on the
If you are using a license for a limited number of the specified date and time. This allows you
computers, the number of current connections server are in Hyper File 5.5 format, they must be to update your site during the night (between
must be managed in the WEBDEV site (INI file or migrated to HFSQL Classic format. This migration midnight and 3 AM for example), when the
registry, ...). must be performed during the first site update. number of Web users is reduced.
3. Configuring the site. These options are used Caution: the specified date and time are the
Summary of elements installed as well as their location: to configure the options for connecting to the site ones of the server. Make sure that they are
after its setup. valid.
These parameters can be modified if necessary: • Activating the site immediately after setup:
Site server Data server • by the deployment administrator found on the The site will be available once it has been
Directory of WEBDEV sites Data directory server. installed : you will be able to connect to it
for user N for user N • by the remote administrator, that can be used either by using the proper address, or via a
by the site manager. static page containing a link pointing to the
Directory defined by the hosting company. Directory defined by the hosting company. 4. Specify whether your site is using the Native site. If this option is not checked, the site can
In this directory, a sub-directory will be created for In this directory, a sub-directory will be created for AS/400 Access. be activated via the remote administrator.
each site of user N. the data files of each site of user N. Reminder: if your site is using the Native AS/400
Access, the AS/400 DLLs must be installed on the 3.3 Installing a dynamic site
Web server. To install a site, you must:
The following elements are installed in this site The following elements are installed in this data If you are using a license for a limited number of
sub-directory: HTML pages, the library (".WDL"), sub-directory: the ".FIC" files, the ".NDX" files, the 1. Run the deployment package.
computers, the number of current connections
the image directory. ".MMO" files. 2. Specify the characteristics of the Web server
must be managed in the WEBDEV site (INI file or
on which the WEBDEV site must be installed
Example: The directory of sites for user N is "C:\ Example: The data directory of user N is "D:\ registry, ...).
(characteristics of the server FTP account if
UserN\WEBDEV sites". UserN\WEBDEV data". necessary and characteristics of the server
User N installs his site named "Boat". This site will User N installs his site named "Boat". By default, WEBDEV account).
be installed in the "C:\UserN\WEBDEV sites\Boat" the data files will be installed in the "D:\UserN\ 3. Validate the site setup.
directory. WEBDEV data\Boat" directory.
214 Part 7: Deploying a Web site Part 7: Deploying a Web site 215
5. The appendix files: 10. Modify (if necessary) the directory for 2. To install the WEBDEV site, INSTALL.EXE Contact the provider of the site if you don’t know
• The license (file in txt format) will be displayed generating the setup. (supplied with the setup of WEBDEV site) must be whether you must perform this update or not.
when starting the setup. By default, the setup is generated in the "INST" run on the Web server. Caution: The data files must not be currently
Remark: the setup will be canceled if the sub-directory of your project. Important: To update an existing site, you must used. Use the WEBDEV administrator to check
license is not validated by the person in 11. Generate the setup. lock the access to the site via the WEBDEV that no current connection is in progress and to
charge of setup. An information window flags the possible administrator (check "WEBDEV site locked" in the stop the sites (check "Site locked" in the "Sites"
• The "Read me" file: this file can correspond to presence of files with long names. If the setup is "Sites" tab). tab).
different formats (txt, htm, doc, hlp, pdf, …). performed on a network drive, make sure that: 3. Choose the setup language: a setup wizard 7. Install an ODBC driver for HFSQL if programs
Regardless of the selected format, the user • the network drive supports the long names, starts. Go to the next plane. not developed with WEBDEV must access the
must have a software allowing him to view • the network drive does not modify the case 4. The setup automatically detects whether one or HFSQL files of the site that will be installed
this file. (uppercase/lowercase characters) in the more of the following Internet servers are installed (optional step).
• An executable that must be run at the end of names of files. on the computer: 8. The setup summary is displayed. Confirm your
the setup. 12. When the setup is created, WEBDEV proposes • IIS Version 2 to 7 (Microsoft Internet choices.
Caution: Don’t forget to include the files to: Information Server): Microsoft server. 9. The setup is completed:
linked to this executable (DLLs, parameter • run the test of created setup. • Apache Version 1.3.x and 2.x: free Web • Click the proposed address to run the test
files, other executables, etc.). server supplied by the Apache Group. of your site locally. This option can be used
Remark: a license file and a "Readme" file • open the Windows explorer in the directory for
setup generation. Three cases may occur: only if the Web server was automatically
can be selected for each setup language. configured.
13. Perform a backup of your site. • Case 1 : your Web server is not displayed
6. If an analysis update was performed, select the in this list: select "Other server". See the • Click "Copy" to retrieve the proposed address.
automatic modification of data files during the We advise you to keep a backup of source code
corresponding to an installed version of your site. online help for more details about the server See "On-lining the dynamic site", page 220 for
setup. configuration. more details.
Remark: if this option is selected, the update will 4.2 Installing the dynamic site on a Web • Click "Done" to end the setup.
be proposed during the setup. • Case 2: your Web server is displayed in the
server (physical media) list but it is grayed: your Web server was not 10. Configuring the Web server:
7. If programs not developed with WEBDEV must detected. To select it, all you have to do is If the configuration of the Web server was not
access the HFSQL files of your site, choose to If you are installing your site via a hosting company,
this one can propose two possibilities: check "Display all the servers". performed automatically, two cases may occur:
install an ODBC driver. Then, you must ask to generate a
Remark: if this option is selected, installing the • Install your site on a "shared" server. This server • Case 1: your server was detected and a
configuration file in order to run the configuration file was generated: this file can
driver will be proposed during the setup. manages the sites for several customers. This
configuration later (to install your server later be viewed, modified (if necessary) and run.
8. Specify whether your site is using the Native server is configured when installing the WEBDEV
for example). • Case 2: your server was not detected: see the
AS/400 Access. application server. The WEBDEV administrator
(WD250ADMIN.EXE) is used to individually • Case 3: your Web sever can be selected online help for more details.
Reminder : if your site is using the Native AS/400 directly: select your server.
Access, the AS/400 DLLs must be installed on the configure each WEBDEV site installed on this 11. Via the WEBDEV administrator, unlock the
server. You can ask to generate a configuration file in sites that may be locked and configure the
Web server. order to run the configuration later.
If you are using a license for a limited number of Caution: The memory resources of server are parameters of your dynamic site.
shared by all sites. The configuration file can be modified before These parameters correspond to:
computers, the number of current connections it is run.
must be managed in the WEBDEV site (INI file or • Install your site on a "shared" server • the total number of authorized connections
Depending on the selected server, the
registry, ...). (recommended solution). You own this server. to the site,
extension of configuration file will be ".reg",
9. Print the deployment documentation: In this case you must: • the number of authorized connections for a
".conf" or something else.
The deployment documentation indicates the • configure the Web server, user,
5. Select the setup directory:
WEBDEV license as well as all the modules • manage the memory resources for your site. <webroot> indicates the root directory the • the authorized idle time.
installed during the deployment. It also specifies computer’s Web server. Depending on the 12. Run the test of the WEBDEV site from
the registry keys generated for the WEBDEV site. selected Web server, the root directory is detected the administrator via the [test page] option
To install the WEBDEV site on a Web server (at a
When the site is installed on the server, these and displayed. If the root directory of Web server ("Advanced" tab).
hosting company or in Intranet):
keys can be updated in the registry or saved in a is not displayed, it can be typed in the gray area or
file for further examination. 1. Install (if necessary) the WEBDEV application Remarks:
server on the Web server. it can be found via the "…" button.
The deployment documentation must be Caution: if the area is filled, we advise you not to • The WEBDEV administrator (WD250ADMIN.EXE)
supplied to the person in charge of installing Caution: if the WEBDEV application server is not
modify it. must be started and run in background task. It
your WEBDEV site (hosting company or Intranet installed on the Web server, the dynamic WEBDEV
6. Updating the data files (optional step, only for can be installed as service in Windows NT.
manager). site will not operate properly.
Remark: For each Web server that is hosting a site update). • See "The WEBDEV administrator in practice",
WEBDEV sites, the hosting company must own a To update the data files associated with the page 222 for more details about the WEBDEV
license for the WEBDEV application server. WEBDEV site, choose to run the automatic administrator.
modification of the data files.
216 Part 7: Deploying a Web site Part 7: Deploying a Web site 217
5 On-lining the dynamic site PART 8
To allow the Web users to access your site installed Example of META tag that must be included in the
at a hosting company, create a link in your home <HEAD> section of an HTML page:
page allowing your WEBDEV site to be started. <meta http-equiv="refresh"
If the setup was perform by physical media, the content="0;URL=http://205.51.231.57/
address to use was supplied at the end of setup. WD250AWP/WD250AWP.EXE.EXE/CONNECT/
Replace <localhost> by the address of your site. prettyeyes">
Example used to start a "OURAPP" site from the Special case: If a home page was defined in your
PC SOFT site: dynamic site, the address for starting this home
http://www.windev.com/WD250AWP/ page is as follows:
WD250AWP.EXE/ CONNECT/OURAPP
http://<ServerAddress>/
Hosting
To start the site by using its address (prettyeyes. <ProjectName>_WEB/
com for example), you must:
WEBDEV sites
1. Create an "Index.html" home page.
2. In the header of this page, use the html
commands (META REFRESH) to perform a
redirection toward the WEBDEV site, which means
toward the following address for example:
"http://205.51.231.57/WD250AWP/
WD250AWP.EXE/CONNECT/prettyeyes"
When developing a dynamic WEBDEV site, the administrator is mainly used to:
• run the test of dynamic sites via the test page ("Advanced" tab, "Test page" button).
• manage the webservices ("Webservices" tab).
• define the parameters for connecting to the dynamic sites for test: disconnection time, ...
("Configuration" tab).
• delete the current test connections ("Connections" tab).
• change the Web server used for tests ("Advanced" tab, "Server" option).
• perform a diagnostic if a problem occurs when starting a dynamic WEBDEV site ("Advanced"
tab, "Diagnostic" button).
• allow the remote debugging ("Configuration" tab).
• ...
220 Part 8: Hosting WEBDEV sites Part 8: Hosting WEBDEV sites 221
The WEBDEV administrator in practice 2.2 Sites installed
The "Sites" tab gives information about the dynamic
2.3 Webservices installed
The "Webservices" tab gives information about the
WEBDEV sites installed on the computer. dynamic WEBDEV Webservices installed on the
computer.
1 Overview The "Sites" tab returns the list of dynamic WEBDEV
sites installed on the computer and managed The "Webservices" tab lists the dynamic WEBDEV
by the WEBDEV administrator. For each site, the Webservices installed on the computer and
The WEBDEV administrator is a module to manage This chapter presents the WEBDEV Development following information is displayed in a table: managed by the WEBDEV administrator. For each
dynamic WEBDEV sites (Session or AWP). administrator only. • the site name. Webservice, the following information is displayed
When developing a dynamic WEBDEV site, the For more details about the deployment tools, see • the full setup directory of site on the computer. in a table:
administrator is mainly used to: their help. • the name of corresponding "project" file. • the name of the Webservice.
• run the site test via the test page. • the site status (locked or not). You have the • the complete Webservice installation directory
• define the parameters for connecting to the site Starting the WEBDEV administrator ability to check the box in order to directly lock on the workstation.
for tests: disconnection time, ... To start the WEBDEV Development administrator: the access to the site during the update. • the name of corresponding "project" file.
• delete the current test connections. • from WEBDEV Development version: on the • the number of scheduled tasks used by the site. • the Webservice status (locked or not). You
• change the Web server used for tests. "Tools" pane, in the "Web utilities" group, click can check the box to lock the access to the
"WDAdmin". The "Sites" tab can also be used to: Webservice during its update.
• perform a diagnostic if a problem occurs when
starting a WEBDEV site. • select "Programs .. WEBDEV 25 .. WEBDEV • Delete the site selected in the table. • the number of scheduled tasks used by the
administrator" from the "Start" menu. It is used to remove the site from the Webservice.
• ... administrator: the WEBDEV site will still be
In deployment, two types of WEBDEV administrators The WEBDEV administrator is automatically started found on disk. The "Webservices" tab also allows you to:
are available: during the first test of the site. • Delete the selected Webservice from the table.
• Refresh the list of sites found in the table.
• the WEBDEV Deployment administrator that Then, the administrator can be run in background This refresh operation is used to check the The Webservice is deleted from the
allows the hosting company to manage the task. presence of a site in the administrator after its administrator: the WEBDEV Webservice will still
dynamic WEBDEV sites installed on a Web By default, the WEBDEV administrator allows ten setup. be found on disk.
server. simultaneous connections to the same dynamic • Add a site into the table. • Refresh the display of the Webservices found in
• the remote WEBDEV administrator that allows WEBDEV site (GO icon). the table.
• Configure each site found on the computer.
the site manager to manage his dynamic The configuration used by default is the one This refresh operation is used to check the
WEBDEV sites remotely from any computer. defined in the "Configuration" tab. presence of a Webservice in the administrator
You can also create a specific configuration for after its setup.
the selected site ("Parameters" button). • Add a Webservice into the table.
2 Interface of WEBDEV administrator This configuration affects the number of • Configure individually the Webservices on the
authorized connections, the authorized idle time computer.
The WEBDEV administrator includes a window • The table of current connections indicates for and whether the site must be locked during an The configuration used by default is the one
containing several tabs: each connection: update. See the "General configuration, page defined in the "Configuration" tab.
• "Connections" tab. • the connection identifier, 224" tab for more details. You can also create a specific configuration for
To validate the new setting immediately, click the selected Webservice ("Parameters" button).
• "Sites" tab and "Webservices" tab. • the site affected by the connection,
the "Apply" button. This configuration affects the number of
• "Configuration" tab. • the identity of connected client. At run time, You can also manage scheduled tasks authorized connections, the authorized idle time
• "Advanced" tab. the client is identified by its IP address or by associated with the selected site (Scheduled and whether the Webservice must be locked
• "Setups/Accounts" tab. its Internet address, tasks" button). This setting is available when the during an update. See "General configuration,
• "Logs" tab. • the current connection time, site is deployed. page 224" for more details.
• the idle time of connection. • Run the test of the sites installed on the To validate the new setting immediately, click
2.1 Characteristics of current connections • Automatic refresh: this option is used to computer (in development version only): the "Apply" button.
automatically refresh the displayed data. Select the site and click on "Run the test". You can also manage scheduled tasks
The "Connections" tab gives various information associated with the selected Webservice
about the current connections. This information The "Connections" tab can also be used to:
(Scheduled tasks" button). This setting is
can be consulted at any time on the server: • Stop a current connection: available when the Webservice is deployed.
• The number of current connections indicates Select one of the connections and click
the total number of connections to the dynamic "Disconnect".
WEBDEV sites managed by the administrator. • Stop all current connections and close the
administrator: click "Disconnect all".
222 Part 8: Hosting WEBDEV sites Part 8: Hosting WEBDEV sites 223
2.4 General configuration • Duration of AWP contexts: • Range of ports for sessions (between 27 282 Name or IP address of the current computer
Validity period of AWP contexts. As soon as and 27 289 by default). The WEBDEV administrator allows you to specify
The general configuration corresponds to the the specified duration is over and if no new
default connection options for the WEBDEV The "Default" button is used to restore the default a name or an IP address to identify a specific
request was performed, the context file is values. computer. You also have the ability to specify the
sites found on the server and managed by the deleted.
administrator. port number. For example: localhost:8080.
• Duration of Webservices contexts: 2.5 Advanced options This computer will be used:
The "Configuration" tab is used to: Validity duration of contexts corresponding to The "Advanced" tab is used to: • when clicking the "Diagnostic" button.
• Configure the connections. Webservices.
• Choose one of the Web servers installed on the • when clicking the "Test page" button.
• Configure the sessions and the requests. • Maximum request duration: current computer to run the WEBDEV sites.
Maximum time-out allowed between the • when running the test of a site, page, report, ...
• Manage the log file to get the traffic statistics. • Perform a diagnostic regarding the configuration from the WEBDEV editor ("GO" icon).
beginning of an action performed by the Web
• Managing remote debugging.. of current computer.
user (via a button or a link) and the display of Test
a response. When this time is exceeded, an • Specify the name or IP address of current
The connections can be configured via the The "Test page" button is used to display in the
error page is displayed but the Web user is computer.
following options: browser a page allowing you to start each one of
not disconnected. • Display in the browser a page used to start all
• Maximum number of connections on the the dynamic WEBDEV sites and dynamic WEBDEV
• Maximum task duration: WEBDEV sites installed on the current computer.
server: Webservices installed on this computer.
Maximum number of simultaneous Used to limit the runtime duration of a • Manage the search for expired pages.
For more details on testing a WEBDEV site, see
connections allowed for all the sites managed WEBDEV scheduled task or delayed task. The • Manage the prints. "Test of a site in practice", page 196.
by the administrator (a connection = a Web task will be automatically stopped when this • Manage the error messages.
user). duration is exceeded. Searching for expired pages
• Manage the emails in asynchronous mode.
• Maximum number of connections on a site: • Allow the pre-launched sessions: This option is used to enable and configure the
• Manage the server sockets.
Maximum number of simultaneous Makes it possible to manage the pre-launched search for expired pages on the WEBDEV sites
sessions on the WEBDEV application server. • Allow (or not) some specific functions. managed by WEBDEV application server.
connections allowed for each site managed
by the administrator. This number can be This option is used to optimize the connection • Forbid the change of IP while navigating.
time to the WEBDEV sites and Webservices Printer used by default (Intranet sites only)
modified for each site in the "Sites" tab. • Forbid the access to AWP context identifiers
found on the server. See the online help for from Javascript. The "Prints" button is used to select the default
• Maximum number of user connections on a printer that will be used when printing on a local
site: more details.
Server used printer or on a network printer of Web server.
Maximum number of simultaneous The WEBDEV administrator is used to manage a The "Server" button is used to choose one of the
connections allowed for a given Web user to specific log file allowing you to follow the traffic Error messages
Web servers installed on the current computer to
each site managed by the administrator. statistics. The "Errors" button displays the different error
run the WEBDEV sites. Caution: This server will be
If this parameter is set to zero, a Web user • Generate a log file to manage the traffic messages that can be displayed in the browser
used for all the dynamic WEBDEV sites installed on
trying to simultaneously connect to the same statistics (.log): of Web user. You have the ability to customize the
this computer.
site will be automatically disconnected then Allows you to generate a log file (".LOG" error message and the HTML page where the error
reconnected. If the server used is not found in this list, choose
extension) used to see the traffic statistics of message is displayed.
If this parameter is greater than zero, an error "Other". You will have to manually configure the
WEBDEV sites via WDStatistic. See the help Web server used. See the online help for more Email spooler
message will be automatically displayed after about WDStatistic for more details.
the x simultaneous connections. details. If "Disable the email spooler" is unchecked, your
This number can be modified for each site • Save in the global file and in the file of each sites will be able to send emails without locking the
application: Diagnostic
("Sites" tab). execution of other processes (asynchronous mode).
This option is used to save the statistics both The "Diagnostic" button is used to check the
The option "A single connection automatically The asynchronous mode must be enabled
in the log file of application and in the log file of configuration of current computer. This diagnostic
recycled" is used to limit the connection of when starting the email session (with
server. Indeed, if the log file is defined both at is used to check:
a user to a single connection. The same EmailStartSMTPSession or EmailStartSession).
connection will be re-used. server level and at application level ("Sites" tab), • whether the FTP/IP protocol is installed
information may be "lost". If the asynchronous mode is enabled, all outgoing
• whether a Web server (HTTP server) is started
The sessions and requests can be configured via Remark: If the log file is enabled, the log of errors emails will be redirected to a "Spooler". The emails
• whether the AWP protocol manager is configured are queued up before they are sent. The execution
the following options: can be viewed in the "Logs" tab of administrator. properly of Email functions do not lock the rest of your
• Disconnect the idle users since:
Managing the remote debugging • whether the necessary WEBDEV executables are program anymore. EmailStatus is used to find out
This is the maximum connection time allowed
The WEBDEV administrator can allow (or not) the found. the email status.
without any action performed by the Web
user. When this time is exceeded, the Web remote debugging of dynamic WEBDEV sites. The dynamic WEBDEV sites will not operate if one
user is automatically disconnected and an If the remote debugging is allowed, the following of these conditions is not fulfilled.
error message is displayed. parameters must be specified: See the online help for more details.
This number can be modified for each site in • Main port (27 271 by default).
the "Sites" tab.
224 Part 8: Hosting WEBDEV sites Part 8: Hosting WEBDEV sites 225
Server
Contenu
configuration
Remark: If the WEBDEV administrator is closed, 2.6 Setups/Accounts
the email spooler is cleared: the pending emails
are not sent and they are removed form the spooler. The "Setups/Accounts" tab is used to:
If "Disable the email spooler" is checked while • Configure the server for the site setups and
emails are still found in the spooler, these emails updates.
will not be lost: the administrator keeps sending • Manage the log of setups.
them but no new email is accepted by the spooler. • Manage the WEBDEV accounts.
For a dynamic WEBDEV site
Caution: The asynchronous mode can only be Setup/Update
used when starting a session on an SMTP server
(EmailStartSMTPSession to send emails or These options are available in deployment version.
EmailStartSession). This mode is ignored in the They allow the hosting company to authorize and
other cases. configure the site setups and updates remotely.
The option "Lock the server (for an update)"
Computer of Server
Sockets is used to easily update a site by blocking any
If "Allow the server sockets" is checked, your sites connection from a new user. Whenever attempting
will be able to handle the server sockets (via the
Socketxxx functions of WLanguage).
to connect to one of the sites found on the server,
the Web user receives a message signaling that the Web user Connection to the WEBDEV site
the site is temporarily unavailable and asking
Forbid the change of IP while navigating Web server
him to retry later. The Web users who are already Only a browser is required
(IIS, Apache, ...)
If this option is checked, the IP address associated connected can continue to use the current
with the session cannot change while navigating. WEBDEV site.
This is used to protect against "session hijack"
attacks (attack that consists in pretending to be a 2.7 Logs WEBDEV engine
legitimate user connected to the server). The "Logs" tab is used to see the details of logs
Forbid the access to AWP context identifiers from over a specific period.
JavaScript Caution: To use this feature, the logs must have WEBDEV site
In an AWP site, the site context is stored on the been enabled for the site. The logs can be enabled:
server. The identifier of this context is sent and • in the "Configuration" tab to manage a general
stored in the browser via a cookie. log,
Database
If the option "Forbid the access to the AWP context • in the "Sites" tab ("Parameters" button) and in
identifiers from JavaScript" is checked, the cookies the "Webservices" tab ("Parameters" button") to
used will be "HTTPOnly" cookies, that cannot be manage a specific log.
read from Javascript code. This mode protects The log of errors is automatically created when the
against XSS attacks (Cross-Site scripting). log of statistics is enabled.
For a static site:
By default, the access to the AWP context
identifiers is not allowed from Javascript.
Managing fCopyFileWebFolder and
fDeleteFichierWebFolder
The option "Allow fCopyFileWebFolder and
fDeleteFileWebFolder" must be checked if these Computer of Server
the Web user
functions are used in the Web site.
These functions are mainly used to include images
found in the data directory in the directory of site
images (images uploaded then made available to
Connection to the WEBDEV site
the Web users of the site for example).
Only a browser Web server
Caution: The copy is taken into account by (IIS, Apache, ...)
is required
the WEBDEV administrator on the server
(WD250ADMIN.EXE). The Windows account that
runs it must have sufficient rights on the target
location of copy. WEBDEV site
226 Part 8: Hosting WEBDEV sites Part 8: Hosting WEBDEV sites 227
Dedicated server or
Contenu
shared server?
• dedicated server: the server is reserved for the client. The hosting company provides the
access to Internet (IP address, wire, etc.).
The computer is either rented by the hosting company, or provided by the client.
The hosting companies propose two types of servers for installing your WEBDEV sites:
• shared server:
server whose resources are shared by several clients (client = hosted company).
Web server
Computer dedicated to client
- Web server and FTP server if necessary
- WEBDEV application server
Web server - Operating system
- WEBDEV sites
Common part
- WEBDEV application server
Characteristics:
- Operating system The hosting company provides the access to Internet (IP address, wire, etc.). The client must:
- Registry • provide the server (or rent it),
- Web and FTP server • configure the computer (system, etc.),
• install the Web server,
Disk space Disk space
Client 1 Client 3
• install and configure WEBDEV sites (via HTTP, FTP or DVD-ROM).
Characteristics:
The hosting company provides a server to several clients.
The hosting company:
• configures the FTP server (required only for FTP deployments).
• defines the maximum number of connections for all the dynamic sites belonging to the same
client (via the WEBDEV account manager).
The setup and updates of a dynamic or static site can be performed by FTP.
228 Part 8: Hosting WEBDEV sites Part 8: Hosting WEBDEV sites 229
Which type of server to
Contenu
Hosting Control
Contenu
choose? Center
The table below presents the benefits and drawbacks of different types of servers. The Hosting Control Center, which is mainly intended for hosting companies and Webmasters,
Regardless of the server type, a deployment license is required for each server. helps you host WEBDEV sites.
Each server is hosting one or more dynamic WEBDEV sites (in Session mode or in AWP mode).
The Control Center manages the WEBDEV accounts as well as the account for the Web server and
Server Benefits/Drawbacks When should the rights for the operating system.
this server be used?
Shared Main benefits: A shared server is recommended for: A default choice is proposed: it allows you to easily install a server, without specific knowledge.
• Lower cost. sites with few hits (up to 20 or 30
• Server managed by the hosting simultaneous connections) The setting of the following elements is centralized:
company. • sites requiring little memory (no • Windows accounts,
large calculations performed on • Groups of FTP users,
Main drawbacks: the server), • Groups of WEBDEV clients,
• Memory resources shared by all the • Sites in startup phase.
sites found on the server. • Home Directory,
• If a site is locked, all the sites found • FTP alias,
on the server are locked. • WEBDEV accounts,
• Stand-alone executables can rarely • Data directories,
be used. • Virtual Web sites, ...
Non-secured access to data:
Unauthorized people can access The WEBDEV Hosting Control Center operates in the Windows environment with the IIS Web server
the data: the hosting company and (Internet Information Server, all versions from version 5).
possibly other clients if the server is
not configured properly.
Tip: encrypt the data files to avoid
any unauthorized use.
Dedicated Main benefits: A dedicated server is recommended
• The server resources are available for for:
the sites installed on this computer. • sites with many hits,
• Custom management of data • sites requiring a lot of disk space
download: and memory,
• replication by emails, • sites managing sensitive data,
• WDREPLIC, • dynamic sites.
• copy of files by FTP.
Main drawbacks:
• High cost.
• Server entirely managed by the client
in most cases.
230 Part 8: Hosting WEBDEV sites Part 8: Hosting WEBDEV sites 231
Dynamic site on specific
Contenu
configurations
2. Setup on a Windows server, with an access to Internet via UNIX
INTERNET
1. Setup on a Web server in Windows (2000 or later) or a Linux
server Unix
The configuration is as follows: 1 server
Are installed on the server:
INTERNET - Unix server Web
- the static pages
Windows
server
Are installed on the server:
Windows
2
- the WEBDEV application server
3
- the dynamic WEBDEV site
- the Web server in Windows server
Are installed on the server:
- the WEBDEV application server
- the dynamic WEBDEV site
- the Web server in Windows
INTERNET
1. Opening a static page. The static page is found on the UNIX server.
2. Starting the dynamic WEBDEV site (found on the Windows server) via a link found in the static
Linux HTML page.
server 3. Standard operating mode of the WEBDEV site.
Are installed on the server:
- the WEBDEV application server Remark: the same configuration can be performed on a Linux server.
- the dynamic WEBDEV site
- the Web server in Linux
232 Part 8: Hosting WEBDEV sites Part 8: Hosting WEBDEV sites 233
Traffic statistics of
Contenu
dynamic sites
3. Setup on a Windows or Linux server with Load Balancer
The Load Balancer system is used to spread the number of connections to a dynamic WEBDEV
site over several computers.
It is often important to get accurate statistics about the site visits.
INTERNET How do you find out who visited your site, which pages have been view, which applications have
been use and from which site were they coming from?
WEBDEV is supplied with a statistical tool for the dynamic pages: WDStatistic. This tool can be
installed on any computer.
Examples of statistics calculated by WDStatistic: number of connections per day, visited pages,
Load operating systems and browsers of Web users, ...
Data server
Solution 1: Installing the dynamic WEBDEV site on the data server only.
This solution consists in installing:
• the WEBDEV application server on each Web server,
• the dynamic WEBDEV sites and the data files on the data server.
Solution 2: Installing the dynamic WEBDEV site on all Web servers.
This solution consists in installing:
• the WEBDEV application server and the dynamic WEBDEV sites on each Web server.
• the data files of the dynamic WEBDEV sites on the data server.
234 Part 8: Hosting WEBDEV sites Part 8: Hosting WEBDEV sites 235
Monitor your sites,
Contenu PART 9
servers, ...
A site depends on several external parameters: Web site, HFSQL server, network, ... To optimize
the management of incidents, WEBDEV allows you to use a monitoring robot.
Made of three executables started on different computers, the monitoring robot is used to run
different tests: Internet tests, network tests, ...
If problems occur when running a test, different methods can be used by the monitoring robot to
inform you:
• Message sent into PC SOFT messaging (WDBAL).
• Email.
• Running another program.
Furthermore, a sound alert can be implemented on the monitor.
Appendices
Configures
User computer: Computer 1:
Monitor Monitoring robot
Monitoring
Configures
test
Computer 2:
Counter-Robot
ASPDisplay Calls an external ASP script and returns the result page
in the current browser window.
jQuery Runs a Javascript method (or several chained methods) PageAddress Used to find out the Internet address of a page.
of the jQuery library on a page element. PageCloseDialog Closes the current page. This page was opened by
jQueryExecute Runs a Javascript method of the jQuery library on a page PageDisplayDialog. A return value can be returned to
element. the calling page.
JSEndEvent Deletes the association between a WLanguage browser PageDisplay Displays a site page in the browser of Web user.
function and an event (implemented by JSEvent).
PageDisplayDialog Displays a page in modal mode. This function is used to
JSEvent Associates a browser procedure with an event on an establish a dialog with the user. The page is displayed
object in browser code. in the foreground while the opening page is displayed in
the background, grayed by the DDW mechanism.
JSInfoEvent Used to handle the JavaScript properties of the browser
event that triggered the code execution. PageExist Checks whether the specified page is currently displayed
in the browser of the Web user. Used to find out whether
JSInterruptEvent Interrupts the process of current event. a page is displayed in a frame other than the current
JSMethod Used to run a Javascript method on an element found in one.
the current page.
PageInitialization Resets to zero (or not) the controls found in the current
JSONExecute Calls a server URL that returns data in JSON format page and starts the events for initializing the controls
(JavaScript Object Notation). and the page.
PageParameter Returns the value of a parameter passed to the current
JSONExecuteExternal Calls an external server URL that returns data in JSON
page.
format (JavaScript Object Notation).
JSProperty Used to handle specific features on the objects found in PagePosition Scrolls a page up to position a control in the visible
the current page. section of the page (top) in the browser.
LocalStorageAdd Adds a value to the local storage. PageRateDDW Allows you to find out and modify the rate of gray for the
pages that use DDW (Dim disabled pages).
LocalStorageAvailable Indicates whether the local storage is available or not for
the current browser. PageReadHeaderHTTP Reads and returns one or more HTTP headers received
by the current page (these headers are sent by the client
LocalStorageDelete Deletes a value from the local storage. to the server in the current request).
LocalStorageDeleteAll Deletes all the values from the local storage. PageRefresh Refreshes a page displayed in the browser of Web user
from the context found on the server.
LocalStorageGet Retrieves a value from the local storage.
PageSubmit Validates the specified page and starts the execution of
LocalStorageOccurrence Returns the number of values for the local storage. a button.
LocalStorageValueName Returns the name of a value for the local storage.
PageToEmail Emails the data found in a page currently displayed in PreviousPage Returns the name of the previous page.
the browser.
rssDisplay Builds a RSS stream and returns the content of RSS
PageToFile Automatically initializes: stream to the client.
• the memory value of the items of a data file with the SaaSCheckService Checks the access rights of the user to a service of the
value of the controls found in the page. The items SaaS site.
of the base data file linked to the window controls
are automatically assigned with the values of the SaaSClientConnexion Returns the characteristics of the connection to the
corresponding controls (even if these controls are client database.
grayed, inactive or invisible).
• the value of the WLanguage variables with the value SaaSConnect Authenticates a user of a SaaS site beside the SaaS
of the window controls. The WLanguage variables webservice that manages the site.
linked to the page controls are automatically assigned SaaSConnectedUser Returns the user currently connected via SaaSConnect.
with the values of the corresponding controls (event if
these controls are grayed, inactive or invisible). SaaSDisconnect Disconnect the user of a SaaS site beside the SaaS
webservice that manages the site.
PageToJSP Sends the data found in a page currently displayed in
the browser to a JSP server. SaaSIsConnected Defines whether the connection to the SaaS webservice
PageToPHP Sends the data found in a page currently displayed in is still established.
the browser to a PHP server. SaaSReadSiteParameter Reads an information specific to the client for the
current SaaS site.
PageToSource Automatically initializes:
• the memory value of the items of a data file with the SaaSWriteSiteParameter Saves a specific information for a SaaS site in the
value of the controls found in the page. configuration of a client account.
• the value of the WLanguage variables with the value
ScriptDisplay Calls an external script or page (.php, .asp, .mhtml
of the controls found in the page.
or.mht) and returns the result page in the current
PageUse Displays a WEBDEV page in the browser of the Web user browser window.
and closes all the current page contexts. ScriptExecute Calls an external script (.asp or .php) and returns the
PageVisible Indicates whether the page is visible to the user. result in a string.
PageWriteHeaderHTTP Adds an additional HTTP header that will be returned to SiteAddress Returns the Internet address for connecting to a
the browser: dynamic WEBDEV site (in Session mode) found on the
same server.
• during the next function for page
display (PageDisplay, PageRefresh, ...), SourceToPage Automatically initializes the controls of a page with:
• during the automatic return of the current page at the • the values of the associated items in the current
end of the current action. record (loaded in memory) of the HFSQL data file
PHPDisplay Calls an external PHP script and returns the result page described in the data model editor.
in the current browser window. • the values of the associated WLanguage variables.
PHPExecute Calls an external .php script and returns the result in a SSLActive Used to enable or disable the secure SSL mode.
string.
StringDisplay Returns a specific string (or a buffer) to the client
PopupClose Hides a popup displayed in the page via PopupDisplay. browser in response to a request.