The new Diagram Editor control really stands out among the main new features in version 27 . This control allows you to include superb diagram creation and editing functionalities in your applications and sites without writing a single line of code: all these functionalities have been automated into one control.
A diagram is a graphic representation.
A diagram can be used to represent structures, architectures, material infrastructure, plans, processes, mechanisms, unconventional flowcharts, etc.
The Diagram Editor control is equivalent to a full program: it allows you to create diagrams without writing one line of code.
End users of your application or site can create, edit, save and print their own diagrams.
The control takes care of everything.
All types of diagrams are supported: logical diagram, flowchart, workflow, plan, IT infrastructure, process, vector graphics, electronic schematic diagram, mind map, etc.
The Diagram Editor control can also be handled through programming.
Your application or site can create diagrams, and can edit or complement a diagram made by a user.
The Diagram Editor control has 4 main areas.
You can hide one or more areas and customize the ribbon programmatically.
1. Left: library of preset shapes
2. Top: toolbar
3. Right: modifier, to edit the selected shape
4. Center: diagram
The Diagram Editor control requires zero code.
However, according to your needs, you can access all the functionalities of the editor through programming.
In the code, the diagram is an array of shapes.
This array of shapes contains all the shapes and images of the diagram.
Each shape includes its coordinates and properties.
This makes it easy to edit a diagram, add shapes and images through programming.
All the functionalities of the Diagram Editor control are accessible in the code.
To add a shape to a diagram programmatically, simply add it to the array of shapes: the control will automatically display the shapes.
Of course, you can edit or delete a shape.
Version 27 includes the necessary WLanguage types to easily program the processes you want.
The Diagram native type allows you to handle the whole document. The Diagram has many properties:
The native Shape type allows you to handle all the shapes with its numerous properties: X, Y, width, height, text, background color, opacity, shadow, array of links, etc.
Other native types derive from the Shape type:
All these types inherit the properties of the Shape type and have specific properties: radius, etc.
New WLanguage functions now allow you to create and handle diagrams through programming:
New WLanguage properties are also introduced to define and configure diagrams programmatically:
New events are introduced to manipulate diagrams programmatically. They are added to existing events.
The PDF Reader control keeps evolving and now includes essential features to handle PDF documents.
Highly anticipated new feature for the PDF Reader control in version 27: ability to fill out a form.
The completed form can then be printed and/or saved.
End users can directly fill out the form.
The PDFSign WLanguage function already allows signing documents programmatically. In version 27, end users can sign PDF documents in the PDF Reader control. The signature option can be found in the ribbon. End users must simply select the desired certificate.
In version 27, end users can also add their digital signatures to a PDF document that has been previously signed. You can also use multiple signatures on PDF documents programmatically.
In version 27, a banner indicates if a PDF file is signed, and also indicates the number of signatures. By clicking on this banner, end users can view the signature details.
The PDF Reader control in version 27 offers end users numerous options for handwritten signatures:
Besides the PDF Reader control, the new Grayscale and BlackAndWhite options of the iParameterPDF function allow you to generate a black and white or grayscale PDF documents.
In previous versions, it was already possible to insert a watermark on one or more pages of an existing PDF through programming or in the print preview.
In the PDF Reader control in version 27, end users can insert a watermark, choose the text and set the text position, angle, font, size, color and opacity.
The Image Editor control allows you to include a full-blown image editor in your applications. End users can edit images and photos directly in your applications, without having to install and use third-party tools.
In version 27, the Image Editor control allows end users to define an area on an image and run OCR to retrieve the text from that area.
This makes it possible, for example, to automatically retrieve a delivery or billing address, the contents of an order, etc.
In version 27, OCR processing requires zero code.
A new feature in the Image Editor control allows end users to easily blur an area of the image.
You can blur part of an image or Image control programmatically.
To blur a control, simply use the new dBlur WLanguage function, passing the name of the control and the percentage of blur as parameters.
To blur an area, simply pass the coordinates of the area as parameters.
Version 27 features an artificial intelligence engine to detect objects in images. The new AI functions (AIDetect and AIModelDetect), as well as the aiImageResult, and aiNeuralNetworkModel WLanguage types, allow for easy programming.
Note: we are not objects, sure, but the concept of "object" also includes living beings!
82 objects are included as standard: face, human being, dog, cat, table, car, license plate, etc.
You can define other objects to be detected. In this case, you will need to provide the object recognition model.
There are 3 common uses for the standard list of objects:
AIDetect returns an array of aiImageResult containing the type of object, the coordinates of the polygon that contains the object and the confidence level.
Passwords are not stored, but your app can check them
In version 27, a new advanced type of HFSQL item is introduced: the Password advanced type.
This new type of item does not store the actual password.
This means there are no chances of hacking into the database to obtain this password.
Before being stored, the password will be both salted and hashed.
Salting consists in adding a random string to the password. If two users enter the same password, their salted passwords will be different.
This salted password will then be hashed, making it unidentifiable.
The result of these irreversible operations is stored in the database, instead of the original password.
Attackers cannot cannot reverse engineer the password from the result of these operations, but you can still check if a password matches the original one. The password cannot be read, but it can be compared.
With this new type of item, hackers can no longer steal passwords by accessing the data file.
You can now call Python code natively from WLanguage, just like .Net assemblies, SOAP web services, etc.
Importing the .py file into the environment allows the code editor to automatically recognize all the functions of the .py script.
Each function in the script is then considered as a native WLanguage function.
The Python engine is initialized using the PythonInitialize function.
Users install your WINDEV applications from your own store
Version 27 includes a Private Store. This store allows you to group applications used within an organization.
The Store can be accessed from within the organization only, or be publicly accessible.
A portal with optional authentication allows authorized users to install applications.
This standardizes and simplifies app distribution within an organization.
The Store is provided as standard in version 27.
Simply install it on a company server, or in the cloud (PCSCloud.net for example).
In WINDEV, when creating the installation for the app, select "Private Store".
The installation is deployed to the Store server either automatically at the end of the installation generation, or by manually uploading it to the server.
A store can contain applications accessible both with and without authentication.
By accessing the server with login credentials, users see only the applications they are allowed to install.
This makes it possible to keep certain applications "private" and limit their distribution.
You can provide end users with one of the following:
If authentication is required, it can be implemented:
The application is automatically installed on the device: your helpdesk is not burdened with requests, which reduces operating costs.
When a new version of an application is installed on the Store, users will automatically be prompted to update the application next time they open it.
The version history of each application is kept on the server, which makes it possible to go back to a previous version if necessary.
WebSockets allow for a real-time, bi-directional data exchange between a smartphone or tablet and a server.
This facilitates the development of instant messaging applications, and more generally, makes it possible to send data from a server to a mobile device.
The WebSocket WLanguage functions are now available for desktop applications in Windows and mobile applications in Android and iOS.
Therefore, this family of functions is available in WINDEV, WEBDEV and WINDEV Mobile.
It is now possible to connect to WEBDEV's standard WebSocket server, and to any other WebSocket server.
The OpenAsynchronous function has just been added to WLanguage.
With this new method, you can effortlessly open mobile windows.
Simply pass 3 elements:
The advantage of this syntax is the ability to write linear code, and open windows without blocking the app.
The window closing code is just below the opening code.
It is no longer necessary to write this code in the "Close child window" process.
11 Essential new features
Table controls in WEBDEV 27 are enriched with essential features for your users: There are more UI customization possibilities:
The following 3 new features are also useful additions:
In version 27, you can use new units to set the font size in controls for mobile devices: control labels, characters entered, icons, buttons and combo boxes, among others.
The available units are:
Decimal values are supported (2 digits after the decimal point).
These units allow you to precisely define any size.
UIs can be more finely tuned.
If no unit is specified, the legacy unit will be used by default.
Character spacing determines how far apart characters are from each other.
In version 27, you can adjust character spacing: control label, input text, etc.
This allows you to condense or expand text without changing the font.
Line spacing defines the space between 2 lines.
In version 27, you can finely adjust line spacing in a text, by choosing the unit, and specifying two decimals if necessary.
Using these three new features:
now you have total control over text and text layouts.
The WEBDEV environment is significantly faster in version 27. Some actions are up to three times faster, which obviously improves workflow in the environment.
In version 27, pages are generated three times faster in large projects: you will notice this improvement right away.
In version 27, you can update templates 3 times faster.
Since most websites developed with WEBDEV use templates, you will also notice this improvement right away.
In version 27, projects are compiled using all processor cores by default: this reduces compile time, depending on the power of your machine.
Since modern processors come with more cores, this feature is likely to prove itself very useful.
When other team members check elements back into the SCM, pages are recompiled and generated when these elements are retrieved.
In version 27, these operations are optimized and are on average 3 times faster.
The environment in version 27 includes a useful feature to detect obsolete technologies in your projects.
Using some of these obsolete technologies results in larger and slower pages, thus increasing generation time.
To accelerate these pages, simply follow the suggestions shown in the environment.
With the WEBDEV Application Server in version 27, you can create server clusters with ease.
Clusters make it possible to install as many application servers as desired, and thus to distribute the site workload across these servers.
A cluster can be installed in 4 simple steps.
The first step is to install a Proxy which will distribute the sessions across the different servers.
This proxy comes with WEBDEV, as both a Docker image and a VM.
Simply install this Docker image or VM on a Linux server.
Please note that the application servers that will make up the cluster do not have to be in the same location.
You can also use a proxy of your choice to distribute the load across the different application servers.
Simply install the first application server in cluster mode on a physical Windows server (or VM) at the location of your choice.
The Cluster mode can be selected when installing the application server.
When installing the other servers, simply indicate that they must join an existing cluster.
The cluster must then "accept" the new application server (for security reasons).
Each application server can be installed on a physical server (or VM) at any location you want: datacenter of your choice, in your premises, etc.
The new application server adopts the settings of the cluster, as well as the accounts.
The new server is added to the existing cluster, and synchronizes automatically: the sites on the other machines in the cluster are automatically installed on the new server.
The database can be at any location.
The application server cluster works with all available databases.
The database has to be accessible from each cluster node.
The database can be located on one or more physical servers or VMs: single server, cluster or a Spare server, on your premises or in the cloud...
Implementing a cluster of WEBDEV servers in different locations provides certain advantages:
The WEBDEV administrator (Web version) allows you to manage every aspect of the cluster:
Any site updates or any changes made to the configuration or account on an application server will be automatically synchronized with the other servers.
The "PDF Reader" Smart control allows you to integrate a standalone PDF reader into a page.
With this Smart control, the PDF is opened directly within the page, in your site.
The standard PDF reader features are available in the Smart control:
When you develop a site with WEBDEV, you can choose between 2 main architectures:
Before version 27, there was no specific URL per page in session mode. This prevented developers from making these pages SEO-ready.
The only way to obtain SEO-ready pages was to use AWP.
In version 27, a major improvement has been made: you can create SEO-ready pages, each with its own URL, in session mode.
What happens when a user types the URL in a browser (or clicks it in a Google result)?
WEBDEV Application Server detects that there is no active session for this user, so:
Once the session is created, all calls to the server benefit from the open session and are therefore much faster, compared to the AWP mode.
The other pages in this session are displayed automatically.
Programming is as simple as usual.
In version 27, the WLanguage PageDisplay function is available in browser code.
You no longer need to handle URLs, which translates into simpler code.