ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

New WINDEV, WEBDEV and WINDEV Mobile 2025 feature!
This content has been translated automatically.  Click here  to view the French version.
Help / New features / New features in version 2025
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
Productivity enhancement through artificial intelligence
Version 2025's on-the-fly generation of WLanguage code using Artificial Intelligence offers real-time suggestions during code entry, reducing the time needed for the coding phases.
This means you can code faster, avoiding rowdy tasks and benefiting from automation and suggestions for predictable parts of the code.
The feature is available in WINDEV 2025, WEBDEV 2025 and WINDEV Mobile 2025, and of course in the SaaS version.
Code proposed by the AI. The AI has detected the fields in the query, found the Table field and fills the columns with the corresponding fields.
Code proposed by the AI. The AI has detected the fields in the query, found the Table field and fills the columns with the corresponding fields.
For more details, see AI WLanguage code generation.
Automatic code entry, suggestions
Code suggestions are contextual.
The suggestions displayed depend on:
  • of the project,
  • code being written (above and below the current line)
  • previously modified codes,
  • of windows,
  • states
  • of sets of procedures,
  • data file headings (table columns).
Based on all these elements, the AI suggests the most likely code.
For more details, see AI WLanguage code generation.
How the code is proposed: 1 second stop or call by function key
The code proposal is displayed non-intrusively as "ghost text" (light grayed text) from the line being entered or from the cursor.
By default, a proposal appears after 100 milliseconds without typing.
To accept the code proposal, simply press the TAB key.
If you are not satisfied with the proposal, simply continue typing your code and it will be ignored, or press the ESC key.
You can also request a new code proposal by pressing CTRL+SHIFT+TAB.
During input, pale yellow italicized, generated ghost text. The TAB key validates this code.
  • The AI has analyzed the code, detected code repetition and therefore proposes repetition for the following elements of the starting structure (JSON). To validate the proposal (in pale yellow), press TAB.
  • The AI has detected in the window that a procedure is calculating a due date, it has detected an Edit control with a contract date, and proposes the most probable code to continue the line currently being entered. To validate the proposal (in pale yellow), press TAB.
If you don't like the result, ask for a proposal several times: SHIFT+TAB
  • In code entry, I type a comment...
  • The AI proposes a code that performs the action described in the comment, taking into account the current project.
    TAB validates this code, MAJ+TAB generates a new proposal, Esc or typing disappears the proposed code.
For more details, see AI WLanguage code generation.
Code generation for connection to specific technologies
One of the advantages of AI-powered WLanguage code generation comes into play when developers need to develop for a domain they are not familiar with.
Now developers can simply write a comment describing the desired process and AI will generate suggestions based on the context of the current code and project.
For more details, see AI WLanguage code generation.
Easily learn WLanguage or WLanguage domains
AI-based WLanguage code generation is also useful for developers new to WINDEV, making it easier for them to discover the incredible possibilities of a 5GL.
Here too, writing a comment describing the desired process is all it takes to generate the corresponding code, based on the context of the current code and project.
Note that the more precise the comment, the better the result.
For more details, see AI WLanguage code generation.
Suggestions improve over time
Generative AI functionality delivered as beta version.
New functionalities will be added over time, and the engine itself will improve through self-learning.
For more details, see AI WLanguage code generation.
One line of code
With palettes, end users can change the look of your application in 1 click.
In the application source code, simply use the WLanguage function PaletteChange, indicating the palette to be applied.
The change is applied dynamically by the WINDEV 2025 graphics engine.
There is nothing else to do!
Function PaletteChange
For more details, see Color palette management.
What is a color palette?
A palette is a set of colors (about a hundred).
Each color is intended for a specific use in the skin template: background, text, net, etc.
Each color is named according to its use: couleur_fond_principal, couleur_texte_principal, couleur_bandeau, couleur_fond_bouton, etc.
A defined palette allocates a color to each "color name". For example button_background_color = yellow or button_background_color = RGB(125,200,36)
This mechanism lets you change the look of an application easily and dynamically.
This mechanism lets you change the look of an application easily and dynamically.
For more details, see Color palette management.
How to change the color palette
The new WLanguage function PaletteChange can be used to change the color palette used by a skin template.
So you can change the look of an application in just 1 line of code.
All you need to do is add a choice in the application so that the user can change the look: dark theme, "same colors as current Windows theme" theme, etc.
For more details, see Color palette management.
Supplied color palettes: dark theme, etc.
Numerous color palettes are available in version 2025.
Among the palettes provided, the "Dark Theme" palette lets you turn an application into a dark theme!
Your applications can therefore feature the dark theme.
In your application, this will require a single line of code.
For more details, see Color palette management.
One skin template, many palettes
As you know, an application uses a skin template to define its style book.
The skin template defines the style of the fields: field frame, rounding, effect, font and font size, field size, etc.
And, of course, a skin template uses colors for all these elements.
In version 2025, the internal skin template format has been changed from fixed colors to a palette.
Convenient: the skin templates supplied from version 23 onwards are in 2025 format, and can therefore change palette: useful for your existing applications!
When recompiling projects in version 2025, a skin template change is proposed.
For more details, see Color palette management.
Use the colors of the current Windows theme
The new WLanguage PaletteGenerate function generates a color palette based on the Windows accent color currently in use on the end-user's machine.
This makes it easy to offer a UI that matches the dominant color of the PC in use.
Windows theme
Windows theme
Generated palette
Generated palette
For more details, see Color palette management.
Icons and buttons
A skin template contains icons.
When changing palette, icons must adapt, especially when switching to a dark theme.
When changing palettes, icon colors change automatically to keep them legible.
In a dark theme, for example, the colors change to white.
Left: original icons, right: automatic changeover to white for dark mode
Left: original icons, right: automatic changeover to white for dark mode
For more details, see Color palette management.
The charts
An application can contain graphs.
When the palette is changed, the graph adapts to the new palette.
For more details, see Color palette management.
Color opacity
Palette colors support opacity.
Transparency is defined by an alpha channel.
For more details, see Color palette management.
Create your own color palettes
When a project has to comply with a specific style book, simply create a specific palette.
The new WLanguage function PaletteGenerate can be used to create a color palette.
It is also possible to create additional named colors and include them in a palette.
For more details, see Color palette management.
Advanced mode for graphic designers
It is possible to indicate that a named color is derived from another named color to which a filter is applied: luminosity, hue change, etc.
This creates a cascade of colors.
For more details, see Color palette management.
Generate a color palette in 3 clicks
It is also possible to generate a new palette almost automatically by supplying only 1 to 3 basic colors.
The palette will be generated using these colors in harmony.
For more details, see Color palette management.
Easy sharing of palettes between projects
A palette is a JSON file on disk.
This makes it easy to share between different projects.
For more details, see Color palette management.
Color palettes: palette colors can be used by name
Wherever a color is used in WLanguage code (function, property, etc.), it becomes possible to specify a "named color" in place of the "hard" color.
The same applies to the "7 tabs".
Use of color named in the
Use of color named in the "7 tabs"
The advantage is that when a palette is changed, the new color from the new palette will be used automatically.
For more details, see Color palette management.
Pallets can be used for mobile projects
Palettes in 2025 format can be used and shared with applications created in WINDEV Mobile.
For more details, see Color palette management.
Accessibility: the benefits of pallets
To facilitate the use of your applications by users with visual impairments, such as color blindness, it's easy to provide one or more adapted palettes.
Specific pallets can also help prevent epileptic seizures.
For more details, see Color palette management.
Several different palettes in a single project
In a project, it may happen that certain windows need to have a different presentation.
For example, settings or administration windows.
To this end, several different palettes can be used for different windows within a single project.
For more details, see Color palette management.
New Segmented Button control
The new Segmented Button control field makes it easy to choose between single and multiple choice proposals.
Case management code is simpler than a series of ON/OFF buttons.
For more details, see Segmented Button control field.
Field blurring
In version 2025, it is now possible to blur the content of an Edit control, combo or image by programming.
Default blur factor makes text unreadable. This coefficient can be modified.
The new property Blur property on fields takes as a parameter the blur radius to be applied.
In particular, blurring makes it possible to comply with GDPR constraints directly in programming, when you don't want to make the field invisible.
Name and Phone fields have been programmatically blurred.
File table: sort and filter on all columns
In version 2025, the Table field enables the user to sort and filter all columns, including non-indexed columns.
On a non-indexed column, it is of course necessary to ensure a reasonable volume of data to optimize response times.
End-user repositionable notes: a new look
Repositionable Notes get a new look in version 2025.
5 new Smart controls
Version 2025 offers 5 new Smart controls:
  • One-time code authentication,
  • QRCode generation with central logo,
  • Web color light picker,
  • Handwritten signature on the device,
  • Page sequence input.
You'll find these Smart controls directly in the corresponding sections: new features 215 for WINDEV 2025, 442 for WINDEV Mobile 2025, and 763 for WEBDEV 2025.
Spreadsheet control: native CSV format management
The CSV file format is a historical format that was used by spreadsheets.
Today, it is still widely used as an export format by many application software programs.
WINDEV has always offered WLanguage functions for managing CSV files.
In version 2025, the Spreadsheet control lets you directly display and manipulate the contents of a CSV file.
Word Processing control: export to PDF, links retained
Insert Internet links into your document.
In version 2025, when exporting a document containing links to documents in PDF format (using the WLanguage function DocToPDF), these links are retained with their clickable URL.
Spreadsheet: 3 new formula functions
Version 2025 introduces 3 new functions for spreadsheet formulas:
  • DATEDIF: difference in days between 2 dates,
  • GROWTH: value in relation to an exponential trend,
  • BDNDVAL: counts non-empty cells in a range.
Miscellaneous
  • The "brush" can be applied programmatically.
PDF: programmable form for reading and writing in fields
A PDF document may contain form fields on different pages.
In version 2025, these fields can be manipulated programmatically:
  • read values.
  • write values.
  • save a PDF modified by programming (and by the end user too).
  • etc.
This enables automatic processing:
  • generate pre-filled forms.
  • retrieve data directly.
  • perform batch processing: fill in a form, send it, without human intervention.
  • etc.
PDF: form: list page fields
In version 2025, it is also possible to analyze a page programmatically to detect form fields:
  • list them,
  • know their type.
WLanguage type PdfPage now contains the additional information of a PDF field array.
This enables even more automated processing.
PDF: extract pages from a PDF document to create a new PDF document
The new WLanguage function PDFExtract can be used to extract one or more pages from a PDF document, and create a new document with these pages.
Code sample:
MyPDF = MyPDFSource.Extract("3,10,15-16,36")
New Chart control: pictorial percentages
A new type of graph appears in version 2025: the Pictural percentage graph.
This new graph represents a chart that visually illustrates data in the form of percentages, in an illustrative form: bottle, person, thermometer, and so on.
This makes information easier to understand at a glance.
For more details, see Percentage image graph.
New Pictorial Percentage chart control: programming
The new Pictorial Percentage chart uses the same programming as any other standard chart.
The image can be supplied either via the "7 tabs" or by programming.
Supported formats: vector (SVG) or bitmap (JPEG, PNG, etc.).
Vector format is recommended for images that are likely to be resized, without losing quality.
The usual family of WLanguage "gr" functions can be used to manipulate this type of graph.
Graph: an icon instead of a label
In version 2025, pie, donut and semi-circular charts can replace labels with icons.
This makes for a more visual presentation.
For more details, see the help about grCategoryThumbnail.
Graph: faster display
WINDEV's internal application display engine can now use Direct2D.
When a WINDEV application uses this engine, graph display is much faster.
Chart: customizable rollover bubble
Charts have a rollover bubble.
In version 2025, this bubble is customizable, and can contain dynamic data provided by programming.
This customized hover bubble is created via an Internal Window: anything's possible!
For more details, see Custom tooltip.
Image editor: full-screen editing. editing and display
In version 2025, the Image Editor control features a new image viewing mode: "Full Screen View".
This mode displays only the full-screen image.
The F11 shortcut key enables this display.
A new "Full Screen Edit" mode has also been introduced, for editing in full screen mode.
Useful for precise alignment or overview.
Image editor: supersonic display
In version 2025, whatever the engine display mode, image display is considerably faster!
This is very useful when modifying images: zooming, moving layers, etc.
Don't duplicate your projects: a single environment
As you know, it is possible to use WINDEV, WEBDEV and WINDEV Mobile in the same environment.
Project elements are immediately common to all 3 platforms: analyses, queries, reports, procedures, classes, code, etc..
Windows, pages and mobile windows are in the same project.
These elements open directly in the WINDEV environment.
This allows for easy maintenance and portability of a WINDEV application to mobile and Web, without having to import or duplicate elements of the project.
Available in historical and SaaS versions.
In version 2025, the environment benefits from some useful day-to-day evolutions, such as the color of the icon at the top of the environment indicating the current configuration (obviously yellow for WINDEV, blue for WEBDEV and orange for WINDEV Mobile).
Remember: it is of course necessary to have a license or subscription for the software concerned.
Your existing DESKTOP becomes a SaaS application
A widespread need is to transform a Windows application (or parts of applications) into a SaaS application, for the purposes of sell as a subscription.
A SaaS administration site is delivered with WEBDEV Application Server 2025. WINDEV 2025, and the SaaS family of functions, enable you to use this site to administer the applications you wish to distribute in SaaS mode.
CTRL+E: search for a data file
As you know, the CTRL+E keys are the magic keys: they allow you to find and position yourself on a project element.
In version 2025, the search is also performed in the description of data files (tables) and headings.
Model class (MOR): regeneration of all classes in a single operation
It is possible to generate classes that correspond to the description of data files (tables).
This allows you to structure your application in MOR architecture (Mapping Object Relationnel).
The "Regenerate all model classes" menu option regenerates the class when the structure of the data file (table) is modified.
In version 2025, a new option lets you regenerate all the classes concerned in a single operation.
Warning: impact of structural changes on deployed applications
As you know, HFSQL automatically manages changes to the structure of data files (tables) in deployed applications.
However, processes that have already been written may or may not be affected by this change in structure:
  • heading deletion.
  • modification of item type.
  • etc.
The Analysis Editor (Data Schema Editor) in version 2025 offers a new feature that warns when a structural change has an impact on existing applications, even for applications you haven't written.
Simply enter the name (address) of the server(s) hosting the data, and launch this function.
Note: this function is automatically launched before an "automatic data file modification" (modif auto) is triggered.
See new feature 173
New modifier
A magnificent new modifier makes its appearance in version 2025.
See new feature 062.
Field creation pane
Version 2025 introduces an equally magnificent new panel: the Creation Panel, which allows fields to be created intuitively.
See new feature 065.
A faster, more responsive environment
Version 2025's environment has become faster and less resource-intensive, making it much more pleasant to use.
Model updating: 5 times faster
Window, page and status (report) templates are widely used to standardize presentations: updating templates exploits all the machine's cores.
In version 2025, the propagation of one or more modified models to the entire project is on average 5 times faster.
This is particularly useful for large-scale projects.
Project Explorer: even more practical
Version 2025 of the Project Explorer offers 2 new features:
  • ability to rename a window, a state, a page, a class or a collection of procedures from within the explorer.
  • only the sections used are visible, lightening the UI.
Choose your vocabulary: table or file?
In version 2025, you can choose the vocabulary used by the environment, help and WLanguage.
See new feature 170.
Editing in WINDEV continued: the icon in the Windows bar is in the right color
WINDEV Suite lets you edit Windows applications, cell phones and websites.
In version 2025, the icon in the application bar displayed by the environment is the color of the configuration being edited: yellow for WINDEV applications, blue for WEBDEV sites and orange for WINDEV Mobile applications.
New editor shortcuts
3 practical new shortcuts have been added to the editors:
  • Space: moves from the bottom,
  • ALT: duplicates,
  • SHIFT+Resize: maintains proportions.
Miscellaneous
  • New presentation of tutorials,
  • Faster project migration,
  • Launch Windows Explorer from the environment: set the file manager to be launched (e.g. Total Commander).
Image too large detected
Static audit detects images whose size seems disproportionate.
Reducing this size makes the application or site lighter and faster.
New warning: drawing in a colorless image
One trap a developer can fall into when programmatically modifying an image is forgetting to specify the color (shape or background).
In that case, there's nothing to show for it!
To avoid wasting time trying to figure out why nothing is happening, the Dynamic Audit points out this oversight!
Automatic notification options
By default, the Project Management Hub is configured to automatically send project status messages to a wide range of recipients.
In version 2025, it is now possible to select the messages to be sent, by recipient.
Topics for which you can set message sending parameters:
  • Add a task to a requirement for which the contributor is responsible.
  • Requirement development completed.
  • Requirement test completed.
  • End of a requirement task.
  • New incident.
  • New blocker incident.
  • Correction, incident archiving.
  • Incident changed to blocker.
  • Incident changed to non-blocker.
  • Reassignment, Reactivation of an incident.
  • Request for more information about an incident.
  • Incident set to "Will not be corrected" status.
  • Workaround added for an incident.
  • Workaround modified.
  • Incident moved to another set.
  • Incident changed to another type.
  • Incident moved to another sprint.
  • Task associated with a requirement canceled.
  • Requirement associated with a sprint.
  • etc.
Miscellaneous
  • New incident ticket status: corrected and cross-tested.
  • Ability to send a message or email to all contributors to a requirement.
  • Ability to delete a project and all its dependencies.
Modifier UX adapts to control type
The new modifier will instantly become an essential tool in your workflow.
The new Modifier intelligently and attractively presents the properties of the current field, or the current group of fields, or the current window or page.
Properties are listed in order of interest, according to field.
The UI for editing each property is visual.
Universal modifier
The new modifier is available for all elements:
  • control,
  • window,
  • page,
  • report.
The layout adapts to each element, while maintaining overall coherence.
Real-time modification
Changes made in the new modifier are immediately reflected in the current element.
Ribbons are good, but panes are better
The environment ribbon displays all available fields.
With so many fields to choose from, the ribbon is loaded!
In version 2025, a new control creation pane allows you to easily create the controls you need.
Of course, the ribbon is still available.
New layout
The presentation of fields by section is much clearer.
Fields are classified.
Each control is presented in a thumbnail.
The pane can be positioned on the right or left of the environment, or can be undocked.
Features
The control creation pane contains a number of smart and essential features:
  • Intelligent search in the form of a combinable real-time filter (Example: Date, date combo, time entry, etc.),
  • Preset controls,
  • Favorite controls,
  • Smart controls.The shutter can be positioned as you wish: top, bottom, 2nd screen, etc.
Software inventory (SBOM)
An SBOM (Software Bill Of Material) is a software nomenclature that exhaustively lists all the software components and their dependencies in an application.
This list can be edited using the automatically generated folder.
Migrating a project out of SCM
The Software Factory now enables you to request the migration of a project that is not contained in a SCM.
A new action has been added for this purpose: Migration of a disk project.
Miscellaneous
  • Ability to change the order of action plan parameters,
  • New action to generate a test library,
  • Set password to connect to SCM database,
  • New parameter for specifying a check-in comment,
  • New action to add a project to the SCM database.
User accounts can be exposed by an OAuth server
User Groupware (GPU) accounts can be integrated into the OAuth server delivered with version 2025.
This allows third-party applications to use GPU accounts for authentication.
GIT: properties in text format
New properties are available in text format:
  • Wording,
  • Image,
  • Visibility,
  • etc.
View history of changes made to an element directly in the environment
In version 2025, it will be possible to consult the list of successive versions of an element and launch comparisons directly from the environment.
Environmental image editor: benefits from improved performance
The environment's embedded image editor benefits from major performance improvements.
Modifications are much faster and smoother.
Faster extraction of text to translate
When the project is present in a SCM, extraction of messages (windows, pages, code, etc.) is faster in version 2025.
The gain is around 2 times faster.
Addition of an item with the same name as an old item deleted in the SCM database
When an item is deleted from the SCM, it remains in the history (fortunately!).
When, months later, a new element is created with the same name as the previously deleted element, the SCM now allows:
  • or restore the old element,
  • or use this name for the new element.
This procedure is much more practical than the old one.
New option: close all non-extracted documents
Often, when browsing a project, you open different elements to consult them, then leave them open.
This visually loads the editor's document bar.
In version 2025, a new option allows you to close all documents that have been opened but not extracted.
False positive eliminated
When a SCM is used by a team, each developer regularly feeds his or her changes back into the SCM.
When another developer retrieves these items, the SCM displays a list of them.
This list also displays modified elements, including those that only show modifications to the internal structure of the objects.
In version 2025, it is now possible not to display items that have only changed their internal structure, which makes the list lighter.
The branch merge also displays a list of this type.
Faster deletion of branches and directories
The SCM uses its own database to manage project repositories.
This database format evolves regularly, in particular to improve performance and functionality.
For your installed SCMs, it is therefore useful to migrate this database every year.
Simply click on "Migrate to most recent format" in the SCM administrator's "Tools" pane. launches this migration, which is totally transparent.
We strongly advise you to update this database.
Note that the SCM remains compatible with all versions of the.
For example, in version 2025, the database format speeds up the deletion of branches and directories.
View project shares
In version 2025, a new option displays a list of all projects (present in the same SCM) with which the current project shares elements.
The list displays project names and the names of shared items.
This makes it possible to identify the projects that will be affected by a change in one of these elements.
List of extracted items (with author) in 1 click
The SCM displays a list of extracted items, together with the extractor.
The option to display this list is now directly present in the Ribbon.
SCM: miscellaneous
  • Element integration UI: the UI is standardized regardless of the number of elements (one or more).
  • Option to automatically recompile the project when retrieving elements.
Overview
GDSDrive is your SCM in the cloud!
Sign up for a competitively-priced subscription and get SCM right away.
This SCM is accessible from anywhere in the world!
In version 2025, the update of the SCM database format is available from the SCM administrator.
Code editor: everything runs smoothly
Version 2025 code editor delights all developers!
Any manipulation is now fast, whatever the size of the code: a real pleasure!
Multicursor: modify several lines in a single operation
Version 2025 introduces multicursor functionality in the code editor.
Multicursor allows you to perform the same operation simultaneously at all cursor positions.
For example:
  • Insert text in several places at once,
  • rename several occurrences in a single operation,Operations are performed using shortcut keys:
Ctrl+Alt+Click to place cursors on the line.
Pinned header: to know which code you're in
The pinned header feature comes in very handy when the code exceeds the screen size and involves nesting.
The principle: when scrolling, the first line of each block that is no longer visible remains displayed at the top of the editor.
Clicking on one of the "first" lines takes you directly to this code.
Functionality is disconnectable.
Display all codes + hide empty codes with 1 click
The code editor in version 2025 lets you edit all window, page or state events and their fields in a single code window, with just 1 click.
This gives you an overview.
To avoid overriding the display, events with no code are not displayed.
Code modifications are of course possible, as usual.
Indentation materialization
A new comfort feature that reduces the mental workload is the ability to materialize each block of indented code.
A fine line takes care of this mission.
Note the fine lines marking the code blocks
Note the fine lines marking the code blocks
Completion combo: element coloring and type
The elements displayed are colored in the same way as in the code.
Automatic completion combo upgraded to version 2025.
The element type is indicated at the end of the line: edit control, label, integer, real, Boolean, etc.
The code in the combo uses syntax highlighting
The code in the combo uses syntax highlighting
100,000 character-long lines of code
Which developer hasn't complained about not being able to paste a giant content, like a JSON content, directly into a line of code!
In version 2025, the length of lines in the code editor is virtually unlimited (100,000 characters).
Delete spaces and end-of-line TABs
It can drag space characters or TAB characters to the end of the line of code.
In version 2025, the code editor automatically removes these unwanted characters.
User-friendliness: set cursor size and flashing speed
It may seem like a small detail, but many developers are sensitive to the code editor's cursor.
In version 2025, it is now possible to set the thickness of this cursor, as well as its flashing speed.
Hypersonic minimap
In version 2025, the minimap (with code preview) becomes super-fast, making it a pleasure to use.
Writing standard for variables: "Pascal Case" or "snake_case". Change in 1 click?
To write a variable name in a code, there are several naming rules.
2 commonly used rules are:
  • Pascal Case: CustomerName: first letter of each word in uppercase
  • Snake case: customer_name: all lowercase, each word separated by a hyphen.
In version 2025, it is possible to switch from one naming rule to another.
This change can be made for:
  • the current element,
  • all elements of current processing (for local variables only),
  • all the project elements.
One way of using this new feature is to use one syntax for local variables and the other syntax for global variables. Variables are directly identifiable!
Miscellaneous
  • New SHIFT + Wheel shortcut for horizontal navigation.
  • The shortcut CTRL+ ^ goes back to the beginning of the code block; for example in block "If ... then ... Otherwise" block).
  • The shortcut CTRL + D (D for duplicate) also works on a selection.
  • Treatment name displayed in document bar.
  • Option to disable parameter entry bubbles.
  • Selection preserved when the editor regains focus.
SOAP & REST web services
WINDEV and WEBDEV 2025 make it easy to create web services that can be used with your own applications and sites, as well as by third-party applications and sites.
The web services created can be hosted on Windows or Linux.
In version 2025, the speed of use of web services will take a spectacular leap forward.
Webservices and scalability with simultaneous calls: 10 times faster
In version 2025, performance will be optimized when webservices consumption increases.
For example, a connection to a database is preserved and no longer reopened with each call.
Process launch is also optimized.
The gain generally observed for a web service requested by several clients simultaneously is on the order of a 10-fold increase in speed.
Note that if the speed becomes too high for your processing, and you wish to return to the speed of the previous version, the optimization mode can be switched off.
Webservices and scalability with sequential calls: 2.5 times faster
The speed of execution of sequentially called web services is also boosted.
The benefit is a call 2.5 times faster.
Automatic opening of the ATR, when the code to be debugged contains threads
ATR is the name of the Real Time Performance Profiler, which allows you to view and debug the activity of different threads at runtime.
This often overlooked function is highlighted: when the code to be debugged contains threads, an ATR pane opens automatically to facilitate debugging.
Possibility of blocking and then unblocking ("freezing") one or more threads
In version 2025, the debugger lets you temporarily block the execution of threads of your choice.
This means, for example, that a step-by-step impact on a code can be avoided.
An integrated DevOps environment
WINDEV, WEBDEV and WINDEV Mobile, along with WINDEV Suite (SaaS) version 2025, form an increasingly integrated DevOps environment.
You have access to all the functionalities you need to implement a DevOps approach: the end of the fragmentation caused by heterogeneous tools..
You'll have all the built-in tools you need to manage DevOps methodology: lifecycle management, coding, AI, sprints, testing, continuous integration, deployment, continuous delivery, operations, bug-fixing, customer feedback, etc.
Overview: side-by-side pages
In version 2025, the preview allows displaying front / back pages side by side.
Whatever space is available, 2 pages will be displayed.
It is possible to indicate that the first page is a cover page.
Different margins for odd and even pages
In version 2025, the Report Editor lets you specify different values for odd and even pages.
This is particularly useful for bound documents or documents kept in physical filing cabinets.
Different front and back sides
In version 2025, it is now possible to print a document from 2 different reports. Typically: an invoice and general terms and conditions.
See new feature 230.
Report editor: miscellaneous
  • A page number is set by default for each new report created.
  • UI audit: when an array is present in a report and does not propose a column total, a UI error is generated.
WLanguage source code generation
Version 2025 offers automatic source code generation by AI.
See new feature 001.
Programming passwords: total security
Passwords, private keys and tokens are often used in programming.
For example:
  • database connection password.
  • password for a data file (table).
  • account password to send email.
  • OAuth token.
  • password for a spreadsheet.
  • Word document password.
  • etc.
For obvious security reasons, these elements should not be left unencrypted in the source code.
To avoid having to implement personal or third-party security mechanisms, version 2025 comes as standard with a password vault and secret string vaults.
A password vault for your project
The way it works is simple: from version 2025 onwards, the project allows you to save passwords (secret strings) in a vault integrated into the project.
It is also possible to create a vault within a collection of procedures: useful when sharing procedures.
The vault itself is password-protected.
Each secret string is associated with an identifier and a description.
In the source code, simply use this identifier.
All project developers can use this identifier.
Secure editing of secret strings
Secure editing of secret strings
Use in WLanguage
WLanguage is very easy to use.
In the code, simply use the identifier defined in the vault.
To pass this value securely to a procedure, the new WLanguage type SecretString type.
ConnnexionBDD is Connection
BDDPassword is TO SecretString = MDP_BDD
ConnnexionBDD.Password = PasswordBDD
Integrated protections
Of course, in debug and trace mode, passwords (secret strings) will never be visible.
Functions that display content (such as Info) have no effect.
In practical terms, it is impossible to retrieve the contents of a variable of type SecretString.
Total automation
There's no manipulation to perform, no file to load, no parameter to define: when you use a vault, it's automatically loaded with your executable.
This is one of the benefits of WINDEV's full integration.
Multiple passwords to access the vault
Access to the vault itself is password-protected.
You can create several different passwords to access the same vault.
There are 2 password levels:
  • master password,
  • secondary password.
For example, the project manager can hold the master password, and create a secondary password for each developer who is authorized to create or modify passwords.
Detect plain text passwords
In version 2025, plain-text passwords in code generate a warning at compile time.
This check is activated in the compilation options.
3 examples of password usage from the vault
TLS: Thread Local Storage, for storing information local to a thread
TLS allows you to provide a unique copy of a global variable for each thread.
This makes it possible for several threads to use global variables without overwriting them.
Calling procedures in threads: faster
In version 2025, threads using procedures are executed up to 8 times faster.
Procedure calls in threads are now significantly faster.
Ability to retrieve a certificate from the Windows certificate store
The new WLanguage function CertificateExport lets you export a certificate from the Windows store to a local file.
This makes it independent of the Windows.
This is also useful for certain WLanguage functions that require the certificate file to be read (.pfx and .cert).
If the certificate is password-protected, you will need to provide the password.
Combine a certificate and a private key in a single certificate (PFX)
With version 2025, it is now possible to merge a certificate file without a private key and a private key into a new certificate file in pfx format.
This is particularly useful for OpenSSL users (but not only!).
Drive functions: retrieve date and time from files
The DriveListFile WLanguage function has a new option for retrieving additional information when listing files:
  • date and time of the file,
  • file size.
OAuth: 3 new WLanguage features
In addition to the fabulous new OAuth features in general (OAuth server, see new feature 799, secure web services, see new feature 794 ), WLanguage is enriched by 3 new features:
  • The WLanguage function AuthIdentify can now be used to create a connection by directly passing a login and password. This can be used, for example, to create an application-specific login window.
  • The WLanguage function AuthLogout is used to disconnect from the authentication server.
  • The WLanguage function AuthRevokeToken revokes the OAuth token.
Encryption
AES192 encryption is widely used for data protection. This symmetrical key algorithm secures data by encrypting it in 128-bit blocks using a 192-bit key.
AES192 encryption is available in version 2025.
In addition, version 2025 offers the new constants crypteCTR and crypteCFB constants for CTR and CFB modes of operation (defines block processing during encryption).
Explicit conversion of simple types (CAST)
In version 2025, it is now possible to force conversion from one simple type to another (e.g. entier to String) without using a local variable.
Code sample:
product_ref is TO string = (string) 378 + (string) 578 // ->
gives 378578 AND NOT 956
Compression: WLanguage ZipAddFile function up to 4 times faster
The ZipAddFile file compression function, which adds files to a Zip archive, is up to 4 times faster in version 2025.
The greater the number of files to be compressed, the greater the gain!
IMAP protocol: search with filter
When browsing emails in an IMAP session, the WLanguage function EmailSeekFirst can now be used to specify a search criterion: sender name, recipient name, subject, message body, etc.
Programmatic handling of multi-gigabyte Json files
Developers are having to manipulate increasingly large JSON files, in some cases up to several GB in size.
For instance, the French government provides very large land registry files encoded in JSON format through the OpenData portal.
Version 2025 introduces a new way of accessing JSON content.
This mode allows you to manage content of unlimited size.
The usual mode loads JSON content entirely into memory, which could cause performance or memory occupancy problems depending on the size of the JSON.
The new JsonLecteur type and JsonOuvreLecteur function can be used to read JSON content without having to load it completely into memory.
There are no limits!
And it's much faster.
Programmable SQL queries: you can use a data source in a select function
You can enter an SQL query directly in the code.
In version 2025, the source of such a request can itself be a request coming directly from the code.
DocuSign: WLanguage management of initials and signature dates
To make it easier to sign documents electronically, the delivered DocuSign Internal Component now includes 2 practical new features:
  • management of initials, with positioning and row.
  • date management, with the option of entering a date other than the current date, and positioning.
It is no longer necessary to program these subjects: the wizard suggests these choices.
Default value for non-typed parameters (=*)
Version 2025 makes it possible to make an untyped parameter optional.
This allows the presence of optional parameters in generic code.< }} {{section:WDScript: stand-alone setup delivered| WDScript is a WLanguage script editor included with WINDEV, WEBDEV and WINDEV Mobile. WDScript allows you to: * write scripts in WLanguage. * execute existing WLanguage scripts. WDSCRIPT is now supplied as a stand-alone product. }} {{section:Miscellaneous| * The WLanguage functions [[3075002|ArraySeek]] and [[3075007|ArraySort]] work on UUID types. * [[3070014|SocketRead]]: new parameter to specify the timeout * The [[1410090512|eMailAppliRecoverArchitecture]] function indicates whether the workstation's email software is 32bit or 64bit * [[3013030|InitRandom]] returns the seed, reproduces the same randomness * Family of [[1000021159|SSH]] functions: Keep Alive functionality is available, to maintain the connection even in the event of inactivity. }} }} [[name=webservices_&_microservices]] {{section:WEBSERVICES & MICROSERVICES| {{section:Optimization in execution| In some cases, the response time of web services created with WINDEV or WEBDEV of significant size (several hundred classes, etc.) could be high.
In version 2025, calls to this type of web service are drastically optimized: response time is almost immediate, as with other web services, and CPU consumption is greatly reduced.
See Novelty 098.
OpenAPI web service: reference management ($ref)
Version 2025 supports OpenAPI descriptions containing local references ($ref).
This allows the description of REST web services using this functionality to be imported into the WINDEV environment.
This enables this type of web service to be called natively in WLanguage.
OpenAPI web service: automated returns management
In version 2025, OpenAPI web services return value management becomes automatic.
You no longer need to analyze the content of the answer yourself.
OpenAPI web service: generation in version 3 format
REST web services now expose their description in OpenAPI 3 format.
The principle of electronic invoicing
An electronic invoice takes the form of an A/3 PDF document (human-readable) and an XML document (for applications) containing the invoice data.
WINDEV allows you to:
  • generate PDF A/3 invoices,
  • generate the corresponding XML file,
  • integrate the XML file into the PDF,
  • sign the final PDF (with RGS and eIDAS digital signature certificates).
Version 2025 also allows you to describe the relationship between PDF and attachments (here in XML).
Send and retrieve
WINDEV has all the functionalities that allow vendors to send invoices to a public portal and buyers to retrieve invoices from the portal:
  • REST web service call,
  • OpenAPI support,
  • retrieval and analysis of attached XML files,
  • PDF signature verification (when receiving an invoice),
  • Windows service to query public portals.
Today, all these functions can be used to implement electronic invoicing in compliance with the eIDAS regulation.
It is already possible to automate links with the French Chorus Pro portal (implemented for public procurement).
You can also create electronic invoices in Factur-X format.
XML
Managing XML arrays in RepeatString form
The "RepeatString" format is commonly used in XML exchange formats.
Version 2025 automatically deserializes XML data received using the natural form of RepeatString data.
XML data can also be serialized in this way.
Possibility of creating an empty node
Some web services expect an empty node in the XML document structure.
This type of node can now be easily created in WLanguage.
XML description can be refreshed directly in the environment
The environment's project explorer can now be used to refresh an XML description that has already been loaded.
This is useful if the description has been modified while the environment is being used.
Downcast operator
The cast operator can be used to convert a base class to a derived class without using a local variable.
Code sample:
my_vehicle is TO CVvehicle
((CVoitureElectrique)mon_véhicule).calcul_autonomie()
Passing a method to an API callback
It's now possible to pass a method from a class instance to an external API.
This eliminates the need for a global procedure and variable, and therefore simplifies the code.
Calling up WLanguage code from C++
WLanguage can be called from many third-party languages, including C++.
In version 2025, WLanguage functions that accept points or rectangles as parameters are now supported.
Offer the YouSign electronic signature
WINDEV version 2025 includes the YouSign solution.
These electronic signature functions comply with European regulations (eIDAS).
Three types of electronic signatures
All three types of electronic signature are supported:
  • Simple Electronic Signature (SES),
  • Advanced Electronic Signature (AES),
  • Qualified Electronic Signature (QES).
Approver mode
YouSign offers an interesting feature called "Approval".
This feature allows one or more recipients, not necessarily signatories, to approve a document before signing it: e.g. legal, technical approval, etc.
This feature is natively supported in version 2025.
Easy-to-use functions
WLanguage functions are available in the form of an Internal Component, with their source code.
The functions allow you to:
  • Set the signature level,
  • Send one or more documents to YouSign, to a recipient (name, email, phone number, etc.), for signature, information or approval,
  • Define the location of the signature in the document,
  • Find out if a document is signed, and who hasn't signed it,
  • Get signing dates/times,
  • Retrieve signed documents,
  • Cancel the operation.
All aspects of verification, emailing, ID verification and document storage are fully handled by the service provider (Yousign).
A wizard generates the code
To simplify development, an intuitive wizard generates the necessary code.
Access to all APIs
To handle special cases, all the APIs provided by Yousign can be accessed via a WLanguage call.
All entry points are available directly in the code editor.
Billing
YouSign offers several types of subscription, giving access to different types of signatures.
The type of subscription to choose is an "API subscription".
Overview
WINDEV has its own vocabulary, as you know.
In version 2025, you can select the vocabulary you wish to use.
The most typical example is "file" or "data file", which is often replaced by "table".
Choose
Some historical terms can now be replaced by other terms.
Some examples:
FileTable
AnalysisData schematics
Skin templateTheme
Environment, help
The environment provides an option for selecting the chosen vocabulary.
The environment then adapts to the chosen vocabulary: input assistance, "7 tabs", etc.
WLanguage lets you code with the vocabulary of your choice (see new feature 172).
The help also uses the chosen vocabulary.
Even in WLanguage
WLanguage functions also adapt to your chosen vocabulary!
The terms are interchangeable and can be mixed in the same project.
Examples of synonymous functions:
ScreenToFileWindowVersTable
FileToScreenTableVersFenêtre
BuildBrowsingTableTableConstruitDataBinding
HOpenAnalysisHOuvreSchémaDesDonnées
HListFileHListeTable
ChangeSkinTemplateChangeTheme
Properties:
DataBindingDataBinding
BrowsedFileTableCurve
Optimize file (table) opening when server load increases
When an HFSQL server is under heavy load, a new cache management system improves the speed of opening data files (tables).
Server replication: a single network port
In version 2025, it is no longer necessary to open ports on each replication server.
Only one communication port can be opened.
For example, for replication between LAN and outside, it is no longer necessary to open the incoming port in the LAN.
This increases safety.
Universal replication: 4 new features
4 interesting new features appear in version 2025 for Universal Replication:
  • Data files (tables) can be added to an existing universal replication (without having to recreate a new universal replication).
  • Auto ID from 4 to 8 bytes now automatic, with automatic propagation of changes to replicated files.
  • Unique keys can now be added and deleted automatically.
  • Change the order of unique keys in the data structure.
Anonymized or pseudonymized file: copy and backup
HFSQL lets you automatically implement and manage the anonymization and pseudonimization of your data files (tables).
Version 2025 of HFSQL makes it easy to make copies and backups of these anonymized or pseudonymized files, without needing to have the rights to read the original data.
In this case, the copied file will contain anonymized or pseudonymized data.
Automatic backup upload
HFSQL allows you to set up periodic automatic backups.
Version 2025 can be used to set up an automatic upload of backups to a remote server.
Backup can be performed using a network path or SFTP.
Database backup unlimited number of files
Older versions of HFSQL limited the maximum number of files in a backup to 65,000.
This limit disappears in version 2025, as the number of files is now unlimited.
Docker HFSQL / Podman
Podman is a Docker-like system.
Podman is highly compatible with Docker, and allows you to run certain Docker images.
In version 2025, Docker HFSQL images can be run in Podman.
Compatible structure: when data files are modified automatically, verification carried out
Triggering automatic modification of data files ("Modif Auto") performs an additional check.
The risks of incompatibility between database schema modifications between the installed version and the version to be propagated impacting applications are pointed out:
  • heading deletion,
  • change of item type,
  • section renaming.
  • etc.
Miscellaneous
  • The HImportCSV function is used to import a CSV file (clone function of HImportText)
  • Enhanced hTransactionList
  • The WLanguage constant hLSTTriée of hListFile is available in Client Server
  • h.FunctionTrigger also returns constants rather than just strings.
Order by accepts functions with parameters
In version 2025, the SQL ORDER BY command takes into account functions that take the following parameters as parameters.
This makes it possible to sort according to a spatial function, such as a distance calculation, and to pass this distance as a parameter.
2 new SQL functions
2 new SQL functions appear in version 2025.
ST_CentroidCalculate the center of mass of a geometry.
TIMEDIFFSubtracts two hours.
Overview
HFSQLDrive lets you easily and immediately host your databases (your tables) in the Cloud.
A mobile app that stores data in the cloud is also at your disposal.
Attractive flat rate subscription.
Now you can host your databases for less!
Automatic restart
An unexpected stop may occur.
For example, when a network problem results in a cluster node being disconnected from more than half of the other nodes.
Another example of (short) shutdown: after a complete cluster has been shut down for a hardware reason, the cluster no longer waits for manual intervention to designate the master.
In the event of an unexpected shutdown, the cluster is automatically restarted.
Connection speed of a client application to the cluster
In version 2025, the speed of an application's connection to the cluster becomes constant, whatever the state of the cluster nodes.
Resynchronization after a node stop: 5X+ faster
In version 2025, resynchronization performance of a stopped node is on average 5 times faster.
Copy database to cluster
With version 2025, it is now possible to copy a database or data file (table) directly into a cluster from the HFSQL Control Center.
WLanguage functions
WLanguage function hDeleteFile now available for HFSQL Cluster.
No need to stop the cluster to clean up!
Miscellaneous
  • It is now possible to activate the notification system on each node.
  • The synchronization of nodes with one or more transactions in progress is improved.
  • Various fault management improvements.
New WLanguage function hActiveSpare
The new WLanguage function hActiveSpare can be used to switch a Spare server (slave) to a Master server.
Scheduled task reports (and +): can be viewed in the Control Center
An often-requested feature is implemented in version 2025 of the HFSQL Control Center.
Reports and execution history can now be consulted directly in the Control Center:
  • scheduled tasks,
  • planned stored procedures,
  • scheduled backups,
  • planned materialized views.
No need to delve into log files!
Note that the WLanguage function hHistoryListPlanning can be used to retrieve these reports programmatically.
Basic import into a cluster
From the Control Center, you can import a database into a cluster.
No need to program.
Miscellaneous
  • User logout: improved UI.
  • Manually refresh a materialized view.
  • Edit the materialized view refresh schedule.
Overview
Numerous Native Connectors are available for third-party databases: Oracle, SQL Server, AS/400, DB2, MySQL, PostgreSQL, SQLite, xBase, MariaDB, Informix, Progress, Sybase, etc.
These native connectors facilitate programming (binding, etc.). They are evolving into the 2025 version.
MYSQL: support for UTF8MB4
The UTF8MB4 encoding is an extended version of UTF8 that stores Unicode characters on 4 bytes.
This is necessary to support characters such as emojis or certain Chinese ideograms.
Miscellaneous
  • It is possible to make a request to a third-party database without systematically programming the opening of the connection. The connection will be opened automatically. In version 2025, this connection remains open so as not to waste time on the next query executed on this base.
SELECT insert possible
The graphical query editor now lets you insert a SELECT command in an INSERT.
This allows you to insert multiple records in a single operation.
Ability to edit a SQL query entered in the code with the visual query editor
SQL code can be entered directly in the code editor.
In version 2025, from the code editor, you can display this query directly in the visual query editor.
The code entered is reverse-analyzed, and the query is visualized.
You can modify the query visually, and the code will be updated automatically.
IOT
Bluetooth le: be notified when a device characteristic changes
The new WLanguage BTLECharacteristicChangeOfValue function enables or disables detection of changes in the value of a Bluetooth Low Energy (LE) feature: for example, when using a temperature sensor, to be notified or not when the temperature changes.
4 new functions for accessing the Bitcoin blockchain
In version 2025, the new Bitcoin function family is enhanced by 4 new functions:
  • BitcoinCoreDateLastLaunchTime returns the date of the last Bitcoin Core launch. To determine uptime.
  • BitcoinCoreConnexionOccurrence returns the number of connected peers. From 0 to 10 normally.
  • BitcoinCoreUsedDiskSpace indicates the size of the blockchain on disk.
  • BitcoinCoreHashBloc returns the hash of a block by index. The smallest is the oldest.
My health space: signing up with smart cards
In France, the "Dossier Médical Partagé" (DMP - shared medical file) is being used more and more.
The Dossier is associated with the management of the policyholder's Carte Vitale.
WINDEV 2025 offers a smart card signature for all communications between the practitioner and the management center.
Overview
Telemetry is phenomenal.
The Telemetry concept enables you to collect and aggregate information on how your applications are actually used:
  • features used,
  • treatment times,
  • selected menu choices,
  • clicked buttons,
  • possible bugs,
  • hours of use,
  • etc.
As well as end-user hardware and OS configuration.
Telemetry can be installed on your own servers, or via PCSCLOUD.NET, which provides a telemetry server.
Automatic version cleanup
An application lives and after several years generally has a very rich version history.
The telemetry version selection combo could therefore be very busy.
In version 2025, versions that are rarely used are no longer offered in the application version selection combo.
This makes it easier to make selections.
If an older version is used again, it will automatically reappear in the list.
Ability to create tests on an entire application
WINDEV's standard test automation is a highly appreciated tool. In the 2025 version, its use becomes even more universal.
In version 2025, in addition to creating unit tests, it becomes possible to create tests for an entire application, or parts of applications.
Ability to create tests without owning the source code
You no longer need to own the source code of the application on which you are creating tests. The automation test(s) can be generated using only the application executable.
Scripts for automation tests on the application are generated, and must be played by the owner of the source code.
This makes it possible to supply applications to a Quality Assurance team without having to distribute the source code.
Measure response times and identify slowdowns
In version 2025, it is possible to specify a maximum test execution time.
If this time is exceeded, an error is generated.
Receive a single alert or one at regular intervals
A test in error may send an alert.
Depending on the volume of tests, the volume of warning messages can become substantial, making them difficult to read.
In version 2025, it becomes possible to indicate for each test:
  • an alert will be sent in the event of a test failure.
  • that an alert will be sent only on the first detection of failure, then an alert will be sent when the test passes correctly.
Miscellaneous
  • Improved input of WLanguage code into the robot: syntax highlighting available.
Valkey support
The Valkey Big Data database is supported by version 2025.
Minimum version required
  • Version 2025
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 12/08/2024

Send a report | Local help