In case you’ve missed the summer’s exciting news from Uniface headquarters, Uniface 10.3 has now arrived.

I’ve already been working with this new version for a while, initially using a couple of pre-releases, but then for the past few weeks the live release. This experience has convinced me that Uniface 10, and version 10.3 in particular, is the version the Uniface community has been waiting for. I’m writing this blog post to explain why, and especially to share my experiences with the new IDE.

Background: Uniface 10

Uniface 10 was designed and built based on the wishes of the Uniface developer community. Hundreds of questions and requests from Uniface developers all over the world were taken into account during this extensive design exercise. The result is a complete overhaul of the Uniface development environment. Uniface 10 has a whole new look and feel, comparable with any modern IDE. Although it’s still recognizably Uniface, developers may need a little time to get used to the new version, but in my experience that will be time well spent. There’s no way I’m going back to Uniface 9! A major difference from earlier versions is that Uniface 10 is a non-modal development environment, which means you can work with as many Uniface objects as you like in parallel. Being able to switch between components with just one click makes development easier and more efficient. This by itself is a great reason to start using Uniface 10. \\

Highlights of Uniface 10 

Here are some of the enhancements that you’ll notice immediately when you start using Uniface 10 for the first time:

  • The IDE’s performance has significantly improved, making the non-modal concept a pleasure to work with.
  • The graphical form painter functionality is drastically improved – a strong argument for client/server developers to switch to Uniface 10.
  • Debugging is faster: every error and warning message in the compiler output contains a hyperlink to the relevant line of code.
  • There’s a completely updated and stable meta-dictionary so developers can safely port their existing custom-written utilities to Uniface 10. The additional menu items in previous Uniface versions can be used to launch these utilities.
  • Uniface 10 now also has user-defined menus and user-defined worksheets. My experience shows these are very powerful. Yes, you might need to modify your tools, but again it’s worthwhile.
  • The new Transport Layer Security (TLS) network connector makes the network connection between client and server secure – vital for business-critical applications.

I’ll discuss many of these enhancements in more detail in future posts. As well as all these major improvements, Uniface 10 brings some smaller “nice to haves”. For example, I’m pleased to have the option to set the title bar text of the IDE application window.

Migrating to Uniface The migration process from Uniface 9.7 to Uniface 10 has been run by the Uniface team over and over again. Many huge Uniface 9 customer applications have been migrated successfully to Uniface 10. So for those currently on Uniface 9.6 or 9.7, migration is likely to be a smooth process. If, on the other hand, you are currently considering migrating to Uniface 9.7.05, my advice would be to move directly to Uniface 10 instead because of the advantages described above and (This is also Uniface’s advice) it means one migration rather than two and ensures long-term support. Conclusion: based on my experience, I believe Uniface 10.3 is the version to go for.

Blog: Peter Lammersma

Peter Lammersma is an entrepreneur and IT and business consultant. Peter works extensively with Uniface 10. As a long-serving member of the Uniface community, he’s kindly agreed to give his independent perspective in this blog series.

  • No labels


  1. Nice try to get us into the UnifAce 10 world :-) But where is the beef? Do we have a working grid? Can one switch the SQL cursor type on the fly? What about the CANCEL button? Is there the possibility to overload operations like in C++ What about real inheritance and not this pseudo one? ... Have a look at the (yet not function) whischlist So why should we move? Ingo
  2. hi Ingo, Thanks for your reply. This article is my personal opinion after working with Uniface 10 for a while. If I had the migrate to a newer version or had to start with a new application, I'd certainly go for Uniface 10. It does remind me to my very first Uniface experience, somewhere in the 90s. The project worked on a application in Uniface 5. In the Uniface training I had as a young professional I did learn Uniface 7. When I returned to the client next Monday, the projectmembers, all experienced professionals, tried to convince me that Uniface 5 was a better choice. We all know that Uniface 5 was an excellent product, but Uniface 7 had the future (GUI for instance). In 10 I do love the nonmodal IDE. I can hardly remember how I did it before. Spending me days closing and opening components. Did you see the user defined worksheets in Uniface 10? I think there will always be wishes. I have a few myself. For instance, I would like to have an integration for distributed version control and a community edition. But a feature desperately needed for person A can be just a 'nice to have' for person B or even a nobrainer for person C. Just like you, I am 'just' a Uniface developer. Your voice is just as loud as mine. Every two weeks there will be a patch for Uniface 10. In these patches issues will be fixed, but also new or enhanced functionality will be delivered. If you have any questions about the functionality deliverd in Uniface, I suggest to (but I am sure you already do) get in contact with Uniface. Maybe someone at the Uniface HQ will be very angry with me, but just submit your wishes to them. Ofcourse you add an explaination for every wish: why you would like to see this particular wish added to the product. But please remember, when they work on your wish, they can't work on mine :). regards, Peter
  3. Hi Ingo, In version 10 the code inheritance model has been improved allowing applications to be much more robust and maintainable. In version 9 the scope for overwriting a block of code was, on the whole, at trigger level. In version 10 it is at a code module level - {web}trigger, entry or {web}operation. This change allows the component to only to contain the needed specific code while continuing to maintain inheritance for all other modules defined centrally for the entity. This granularity of module inheritance is also adhered to when inheriting into a subtype from a supertype (or another subtype) as well as from component level triggers defined in a modeled component. The IDE also contains a compiled module information panel, not available in 9, allowing developers direct access to a module's definition irrespective of where it was defined. Developers have control over the compiler with the new undeclare statement. I will be attending the UBG conference next month if you would like to discuss this or other topics further. Regards, Mike
  4. Bonjour Peter, En tant qu'ancien développeur Uniface (7&8), ajourd'hui sur JEE, j'ai bien aimé ce produit parce que complétement intégré. Les différents frameworks que l'on peut mettre en place sur un projet java par-exemple peuvent apporter : - De l'instabilité, - Des performances moindres, - Une architecture compliquée, - Des temps de dév plus longs, ... Si ils sont bien architecturés et utilisés par des dév compétents, une appli JEE sera en revanche plus ouverte, plus flexible et plus souple que tout appli Uniface. Sans parler de la possibilité d'utiliser les notions Objet que n'offre pas le langage Uniface, je crois. Le model si, sous une certaine utilisation. Uniface offre donc cet avantage qu'au minimum un projet dév sera stable, performant, facile à appréhender par les techos et reposant sur une architecture éprouvée. Les temps de dév seront moins longs, normalement. C'est déjà beaucoup ! La nouvelle génération n'est plus forcément sensibiliser là dessus : La performance logiciel, la stabilité, la productivité... Les machines ont tellement gagné en puissance de calcul. En fait Uniface = Qualité ? J'ai une question tout de même : Peut on installer une version d'essai avec une petite base mySql par-exemple ? Y'a t'il un guide d'intall ? Peut on facilement se former ? Bien cordialement, Jérôme Bignon Anciennement créateur du site uniface-dev ;-)
  5. Bonjour Jerome, You can also contact the Uniface French team, or contact Thomas Linares []. Phone: +33 1 41 14 20 40 Krissie