This thread is an English translation of the previous French version.
The goal of this thread is to help WinDev developers migrate to Xojo, based on my experience.
I saw the re-broadcast of Geoff Perlman’s webinar on Xojo x Windev. Some questions concerned specific features of WinDev/WebDev for which Geoff did not have references.
I have been developing applications (free utilities for my clients) in WinDev since version 17 (released in 2011
) and have often navigated between WinDev and Xojo (RealBasic - the first license purchased in 2008
) because certain features were not available via plugins (especially in image management), and the EST language is multiplatform. Linux will become a necessity for information sovereignty.
I visualize applications like LEGOs: code blocks to assemble. I have used many plugins to facilitate development, often exploiting native APIs or third-party software.
It is simpler to assemble these features via plugins (especially in the context of multiplatform applications).
Reading the source code is the best way to learn how to use and understand the software. Feel free to open the example projects provided in the different plugins or in the IDE.
Plugins used to facilitate development
- MBS Complete: A general suite covering 80% of the features sought in Xojo.
- MBS DynaPDF: Library for generating and modifying PDF files, equivalent to PDFFile in WinDev.
- Einhugur: A plugin offering advanced controls (TreeView, CalendarView, PictureButton). The StyleGrid plugin could have been an alternative to ListBox to obtain a Table Field.
- Valentina DB ADK: An alternative to HFSQL allowing the same file to be used as a local or Client/Server database.
- Valentina Report ADK: An alternative to the report generator, allowing end-users to generate their own reports.
- ChilkatSoft: A library grouping features for email management, HTTP requests, FTP/SFTP/SSH connections, as well as caching and string management functions. I use ChilkatSoft with my personal module Mnemosyne (local preference manager, equivalent to ParamInit, etc.).
- GraffitiSuite: I no longer recommend it because the source code is no longer accessible for analysis and debugging since version 65. The Desktop controls based on HTML make the applications slow and generate unwanted files. Nevertheless, it remains an alternative option.
Notice the disappearance of 2 important notions: Encryption & No Crazy Requirement.
I recommend purchasing the OmegaBundle, where my expectation each year in the announcement is similar to what I had from the PCSoft TDF (living near Montpellier, I signed up for the first date every year
).
Be careful: purchasing the OmegaBundle is restricted to a short period of the year. It will be ending soon ![]()
Alternatives to WinDev Features
Be aware, Xojo is not WinDev; many automatisms will need to change for smooth use in the IDE.
You will also need to familiarize yourself with the English language.
- Excel File Management: Generating Word or Excel files via the Einhugur plugin.
- Report and Subreport Editor: Valentina Report is the closest alternative (available in OmegaBundle or ValentinaDB).
- C/S and Classic Databases: ValentinaDB handles both Client/Server and single-user needs simultaneously in a transparent manner. The VDN version allows for royalty-free distribution of the database server, as proposed by HFSQL.
- Spreadsheet Fields: No direct alternative for powerful fields displaying Word, Excel, or PDF files. DynaPDF allows easy creation of a multiplatform PDF reader.
- PDF Reader: Integration of the SumatraPDF reader is possible on Windows via a custom class in Xojo.
- Internal Windows: Replace internal windows with the Container field. To replace the Repeating Zone, I developed a specific module (SDELooper), but the Xojo Grid field is sufficient.
- Email Features: I recommend the Chilkat Email class for managing sends (IMAP, SMTP, SSL).
- Toast/Display Functions: The alternative is found in the Einhugur plugins with NotificationProvider.
Answers to Webinar Questions Specific to WinDev
- Source Code: The source code for WinDev is based on binary files, which are impossible to analyze by an external reader. The only alternative is conversion to text files via a recent version of WinDev (since version 25 - GIT format) before any operation.
- User Groupware: This powerful feature has no direct alternative in Xojo. It must be recreated or managed directly in the code.
- SFTP Connections: Use plugins like Chilkat (focused on networking/security) or MBS (via CURLMBS).
- Excel Import/Export: Easy to set up with Einhugur plugins (ExcelReader Component and ExcelWriter Plugin).
Concrete Example: IconStock
I recreated an application in Xojo, importing cliparts purchased to obtain an improved visual rendering. Development took one week instead of 2 days in WinDev (development in DirtyCode mode).
The Xojo version is now more complete than the WinDev version, handling external images (I used the application currently under development to generate the application’s own images), with the ability to change a color in the image (and soon replace SVG colors entirely before export) and with pagination management that makes the display smoother.
The icons come from IconStock, from which I bought the rights to use them in my software in the beginning with RealBasic ![]()
To speed up development, I created modules that take specific functions from WinDev (translated into English).
The pagination code in GraffitiSuite was buggy (bug in pagination management), so I rewrote the handler from scratch (its implementation is the next evolution of the application).
The single display of icons (Repeating Zone in WinDev) is managed by a DesktopContainer and my SDELooper module.
Version 2 of the application will remove all GraffitiSuite modules in favor of internally developed modules.
I also use an LLM Local simulating ClaudeCode for code review.
Zotto can serve as an integrated AI assistant in Xojo and function with local LLMs.
Feel free to ask your questions in this thread to complete it
- Follow the French version, I’m better with this language ![]()





