Tag Archives: uniface.info

Uniface 10: What’s happened since the release?

Back in September 2016 we had quite a major event, Uniface 10 was released with the ability to develop and maintain all forms of Uniface applications – Client Server, Web and batch.

Uniface 10

Since the release, and based on lots of feedback from the early adopters, we have continued to actively enhance the IDE with constant incremental improvements. In this blog post, I would like to share with you what these improvements are as well as what we have planned for the near future.

To start, it is probably a good idea to give some high-level topics we have been concentrating on.

Migration

This topic has probably been our primary focus during the continuous updating of v10. We have always had a migration path between Uniface versions automating any updates needed. In version 10 we continue with this concept and as information becomes available, from customers and our own experiences, the migration utilities have been updated to further improve the experience.

Uniface 10: Code migrated from 9 to 10
Uniface 10: Code migrated from 9 to 10
Usability and bug fixing

Performance in large repositories has proven to be an area where we have needed to pay attention and has generated some lively discussions on uniface.info. Although this is an ongoing theme we have already made significant enhancements. The dropdown browse dialogs for the Development Objects (cpt:, ent:, libinc:, etc) will load the information and format the data with considerably less of a delay. Incremental rendering has also been added so that the list becomes available and usable even while extra rows continue to be added. The same techniques and improvements will also be added to the resource browsers in the coming patches.

Uniface 10: Cascading brows dialogs
Uniface 10: Cascading browse dialogs
Embedding the GUI screen painter

Client server development is another area we are enhancing. The first enhancement we are planning and currently working on is embedding the form painter directly into the v10 IDE.

Uniface 10: Embedded form painter taken from a developer's PC
Uniface 10: Embedded form painter taken from a developer’s PC
Runtime enhancements

It is now possible to specify what trigger, accept or quit, will be called when an auto close popup loses focus.

The ability to undeclare a trigger, operation or local proc. This will allow model or previously defined scripts to be excluded from the compile effectively allowing default functionality for a trigger to be re-established.

The ability to call up to a higher-level trigger has been added, this allows such actions as explicitly calling the entity level Detail trigger from the field level detail trigger.

Uniface 10: New popup options
Uniface 10: New popup options

As you can see, we’ve been very busy, and there is a lot more to come.

I love Uniface

If you think ‘hey, this is a strange posting? Where is the technical stuff?’, you are right. Most of you don’t know who I am. My name is Peter Lammersma. I am an entrepreneur and work with Uniface since 1996. Uniface was my employer from 1997 to 2001. The reason I am starting to blog here, is because I am worried. In this first blog posting I will try to explain why. I asked Uniface BV (the company) to give me, although I am not employed by them, permission to write this blog on Uniface.info. Because I believe that we are the solution.

As you might know, I love Uniface. If there were ‘I love Uniface’ coffee mugs, I would drink my coffee out of it. Every day, really. If there were T-shirts, I would take good care and give it a special place in the wardrobe.

This feeling I have since 1996. Twenty year ago I swore that Uniface would be last software development tool I would ever use. As an entrepreneur for many years I am busy with several businesses, a few IT related, most of them not. And Uniface? I tried to escape, but she is always returning on my path. And believe me, I am more experienced with Uniface than I am with English :).

Now I am 45 I dare to admit, I like building software. To be honest, I don’t have a very objective point of view comparing Uniface with other tools. I am not interested in other tools, as long as Uniface serves my needs.

And it certainly does. Don’t you agree? Proven every day when we develop and maintain the software for our customers. With a minimum effort we produce highly effective applications. I believe this is called the return on investment. This is a very important business indicator. Every rational thinking decision maker can calculate and decide to use this wonderful tool forever! I certainly would. But, I have terrible news….

There is something wrong. I am worried and I want to share my worries with you.

Lack of Eagerness

I just realized that I am still using Uniface 9.6. While I should be interested in the new mobile features in 9.7. Wait, let’s skip 9.7. I should have downloaded Uniface 10, from the first day it was available. But I did not. Somehow Uniface 9.6 has everything that I need and I am not eager enough anymore to learn new stuff.

Have you already downloaded version 10? Or do you, like many, work in a version 9 in a way you used to in the previous versions?

And you know what worries me most? We don’t seem to care.

Where is that New Business

On the other hand, why should we use Uniface 10? Because it’s highly productive? The redesigned GUI? It’s not really important, is it. We all work like we did in Uniface 7. Sure, we use some of the new functions or statements, but in the end we try to hold on to what we once learned and used.

And why should we. New business is rare. Building or buying, the oldest question in software. When an organisation decides to build software, they will choose a sexy software development tool. Rather than proven technology with a huge install base. A game changer is always nice to talk about in the businessclub. You never hear someone say: ‘I choose this product because my dad used it in his business twenty years ago’.

Despite all commercial activities, most of us are stuck with the maintenance of the current applications. No need for new stuff.

So what

All above gives me a headache. You see, I want to use Uniface in future too. But I am doubting there is a long future. There is something that must be done. It’s not enough for Uniface (who came up with the idea to give the company the same name as the product?) to release a brand new product and wait what will happen. Nothing will happen by itself.

And we? Are we also just waiting for things to happen? We, the Uniface users, should find a way to regain our enthusiasm, our eagerness. I am thinking about this for a while now. But I wonder. Do you share my worries? I am very interested hearing from you all. So please respond to this blog. I am looking to forward to hearing from you (send me a message or comment below)!

In the meanwhile I’ll need a coffee and wait for something to happen…. Or?

HTML5, Javascript and CSS3 training videos for Uniface developers on Uniface.info

The Web capabilities of Uniface have increased year over year. At the moment there are at least six different architectures to integrate Web technology in Uniface or build full Web applications in Uniface.  The HTML5 Widget, Uniface Anywhere and DSPs are obvious examples. In an upcoming blog post, I will go into more detail comparing all options.

Developing modern enterprise applications also requires more Web knowledge for Uniface Developers.

To facilitate this we made a special series of training videos on Web topics for Uniface developers. This series is available on Uniface.info and consists of Introduction and Advanced videos on HTML5, Javascript and CSS3.

The Introduction videos assume zero existing knowledge of the technology. The Advanced Topics can be played in any order and assume the Introduction as pre-requisite. Some videos come with demo material which is available as a download.

To make it easy, I’ve listed all the available videos:

HTML:

Hello World:  http://unifaceinfo.com/html-hello-world/

This session is an introduction to the Hyper Text Markup Language (HTML). We will be creating our first website and use a couple of HTML elements to display some simple text and an image.

Introduction: http://unifaceinfo.com/html5-introduction/

This session discusses the basics of HTML5. It introduces a lot of new HTML elements to give a clear structure to your website. Why are semantics are important?

Canvas: http://unifaceinfo.com/html5-canvas/

This session discusses the HTML5 canvas. We’ll create a simple Uniface graphic by ourselves, and have a look at some more complex examples.

SVG & Multimedia: http://unifaceinfo.com/html5-svg-multimedia/

This session is all about the HTML5 SVG, audio and video elements. We’ll discuss the differences between a Canvas and SVG, and see how we can incorporate a video and mp3 without using Flash or third party libraries.

Geolocation & Storage: http://unifaceinfo.com/html5-geolocation-storage/

This session is about using getCurrentPosition() to obtain the GPS coordinates of the user. Afterwards we’ll store this information in the localStorage object so it is remembered.

Javascript:

Introduction 1: http://unifaceinfo.com/javascript-introduction/

This session is an introduction to JavaScript. Its main characteristics will be discussed, and we will be looking at an example. Moreover we will have a quick glance at its connection with HTML.

Introduction 2: http://unifaceinfo.com/javascript-introduction-ii/

This session is part II of the introduction JavaScript session. We will be looking at some more useful functions, types, objects and arrays.

D3: http://unifaceinfo.com/javascript-d3/

This is a short session about D3. We’ll discuss some use cases and see how it works through the use of some examples. 

JSON: http://unifaceinfo.com/javascript-json/

This is a short session about JSON. We’ll quickly see what it is, how it works, and how you can actually use it.

Advanced Javascript: http://unifaceinfo.com/javascript-advanced/

This is an in-depth session about JavaScript. We’ll go through different ways of using events, and see how the only option of executing things in parallel in Javascript is using callbacks.

 

CSS3:

Introduction: http://unifaceinfo.com/css-introduction/

In this session we’ll explore the new possibilities of CSS3. It provides a lot of new features that make the life of the developer and designer a lot easier.

Advanced CSS3: http://unifaceinfo.com/css3-advanced/

This is a follow-up of the CSS3 – Introduction session. Transformations allow you to modify the appearance of any HTML to your liking. Be it rotated, translated or skewed. Transformations and animations make HTML elements move around and respond to events.

If you have a question about any of the videos just open a topic on the forum.

 

Uniface and GitHub–Getting Started

We hope you have had a chance to browse around the Uniface samples on GitHub. This blog post will give you some background information and some useful tips for getting started.

Objectives of Using GitHub:

  1. Provide an open public globally accessible area for Uniface code samples and examples
  2. Theme focused
  3. Encourage participation in Uniface projects
  4. Ease configuration and setup of Uniface and Uniface examples

Globally Accessible

We are using GitHub.com to host our publically available repositories.

In using GitHub.com as the code hosting platform you have the opportunity to work with project authors and on your own projects from anywhere. The GitHub platform is widely adopted, very well understood including many samples and guides (https://guides.github.com/activities/hello-world/) and has a variety of tooling on various platforms to interface with the repositories.

How to get to the Repositories

You can obtain access to the projects by navigating to the GitHub Uniface page https://github.com/uniface  and select a Repository. In this example I chose the Project-Startup repository. Once selected the following page will appear:

Uniface GitHub

Click on: GitHub2

Uniface GitHub

If you choose ‘Open in Desktop’ it will attempt to use ‘GitHub Desktop’ available here : https://desktop.github.com/. Alternatively, you can just select ‘Download ZIP’ to download an archive of the project, extract and use as a sample.

Theme Focused

We have created a series of Repositories that include:

Project Startup Basic project structure with support for the Project Setup Tool.
Development Tooling Tooling to support development with Uniface including:

·       Uniface Meta Tools

·       Project Setup Tool

·       Signature Wizard

·       Version Control setup

User Interface User interface implementations:

·       Outlook UI

·       Uniface Tunes (uTunes)

·       Manipulating Windows specific functionality

Integration Uniface Integrations:

·       Utilizing 3GL in Uniface

·       Implementing a REST Api

·       Calling REST

·       Dropbox

·       Sharing data across Windows Applications

·       Interfacing with a GeoIPDB

Mobile The Uniface uClaim application
Product Usage Detailed usage of:

·       Structs

·       Using POSTMESSAGE across your applications

Web Uniface web basics:

·       Charting

·       Promises

·       Security

·       Basic web framework

Encourage Participation

In utilizing GitHub you have the opportunity to FORK( https://help.github.com/articles/fork-a-repo/) the project or projects and add their functionality or techniques to your own project. Additionally, you can request that your additions/changes be incorporated into the master. There is no guarantee that your changes will be accepted, just like every other open-source initiative.

Simple setup and execution

Those Uniface projects that require some basic setup utilize the Project Setup Tool to configure the application for your environment, importing sources, creating shortcuts and compiling the application.

Conclusion

While no attempt is made to provide detailed instructions for using Git and GitHub there are numerous sites that provide instructions and tooling on how to use Git and GitHub. Please take advantage of those resources. As this is the beginning of this initiative please feel free to comment and make suggestions.

 

Windows XP – another nail in the Coffin

I recently read this article about Chrome 50 stopping support for some older operating systems, and the mention of Windows XP caught my eye. 

From a Uniface perspective, we stopped supporting Windows XP in May 2014. Purely from a technology perspective, it freed us up in regards to choices on MS Visual Studio and even how to implement certain functionality. I’m sure in the Uniface source code there is still code that states ‘if Windows XP’…! 

Getting out and about, talking to customers, I’ve had a few conversations about Windows XP, mainly in the context of browser support and Internet Explorer 7, as in the big WWW, it’s pretty well out of control what OS, and what browser an end user can use. (Although I do remember this article about an Australian online retailer who was going to add an IE tax for their transactions.) 

Something that has come up during conversations has been customers who are doing business in China, where there is still a significant amount of Windows XP use. I’m assuming that this is related to how easy it was to bypass the MS licensing model and the availability of older specification hardware which might struggle to run a new version of Windows. 

I’m expecting that with Chrome soon to stop supporting IE, that will start to accelerate the move away from Windows XP, and I’m guessing some of the hardware manufacturers will be rubbing their hands with the anticipation of a peak in new hardware sales, and the recyclers are preparing for more obsolete hardware to be stripped for precious metals. 

And on a personal note, it appears I need to buy a new Mac for use at home, as I’m also impacted by Chrome 50 not supporting my version of Mac OSX!