Tuscany, Italy

4 days / 20 talks
Awesome and great speakers

October 16-21

Michael Monschau

Michael grew up and was educated in Germany and moved to England age 19 where he first worked with computers creating a staff rota system using Pascal. He joined the Omnis Software (then Blyth Software) engineering team at Mitford House in 1989. Having worked in core engineering since Omnis 3 Plus, Michael has been responsible for the design and implementation of many Omnis features that developers enjoy today. He was a key person in charge of various large projects when Omnis Studio was conceived, such as the design and implementation of the cross-platform graphic, windows and printing modules, the new window and report design modes, printing devices, and the web-client and javascript-client technologies.

In 2003 Michael formed Brainy Data, a company dedicated to providing consultancy services to Omnis developers, and over the years designed and developed Omnis software components such as OWrite, JS-OWrite, PDFDevice, OCal and JS-Signature.

During 2010 and 2011, Michael designed the Omnis Studio Javascript Client SDK and helped Omnis Software (then Tiger Logic) with the Omnis Studio 6 Javascript Client development. Ever since, Michael and his son Perry (who has an MA in Artificial Intelligence) have worked tirelessly porting Brainy Data software to the Omnis Javascript Client.

XCOMP development: Creating Custom Constants – 2 of 2

XCOMP development: Creating Custom Constants – 1 of 2

Learn how to add custom constants to the Omnis catalog window and solve the problem of typed constants, a feature currently missing from Omnis Studio.

The external component development presentations will cover two topics.
Writing JavaScript Controls
Creating Custom Omnis Constants
The title and short description for each XCOMP or JSCOMP session summarises its focus, but some of the material covered may overlap with material from the other session.

This session will focus on what is required to add custom constants using a text file (probably using the JSON syntax). The aim is that once the component has been build, constants can be added or modified within the text file without the component having to be rebuild. This topic is divided into two sessions which will take place during the morning and afternoon on the same day. In part one we explore what is required to load constants provided by the text file and register these constants with Omnis for display in the catalog. In part two we will expand on that to provide a solution for implementing typed constants which is currently not supported by Omnis.

You will learn:-
how to create a c++ project using XCODE or Visual C++ Express*
what is required to write an Omnis external library for registering constants
a way of simulating typed constants using static functions or a non-visual object
about the Omnis external SDK
* you will require Visual C++ Express 2015 for Studio 8.1 or Visual C++ Express 2013 for Studio 6.x and 8.0.x

Inside Omnis Notation: Studio 8/8.1

Find out the difference between built-in and custom notation, how to squeeze extra performance out of methods, what notation to use in JS Client, and learn about the structure, intricacies, pitfalls and benefits of notation within Studio 8/8.1.

This session aims to give an inside view of notation: explain what notation is, how it works, and how the use of notation differs or is similar within JS Client-, Omnis Server- and Fat-Client programming. The session is divided into two parts and the first part is concerned with notation basics such as the overall concept and different types of notation. In the second part we will cover some of the more specialised notation relevant to JS Client, Omnis Server programming and Desktop Client programming. There may not be time to cover all of the specialised notation and although there will be a focus on differences and similarities between JS Client, Omnis Server and Fat-Client notation, we may also look at other notation of special interest, such as reporting.

You will learn about:-
– notation as a hierarchical description of the Omnis environment
– the difference between build-in and custom notation, properties and methods, instance and class notation.
– the power of notation in manipulating window/remote forms and their objects.
– the benefits and relevance of notation in inheritance.
– different performance tricks that can be utilised within sever-client and fat-client models.
– notation new to Studio 8/8.1
– notation and the Studio 8 code assistant
Optional modules:-
– Java Script Client (server/client module overview and detailed look at special client and server notation)
– Special Interest Notation (object variable, complex grid, list notation, report notation)

Brainy Data Components

Find out how to provide rich interfaces for ad-hoc reports, projects, booking systems and schedules, and learn how the latest Brainy Data JavaScript controls have transferred this power to web-client development.

This commercial session will present tools with which users can create sophisticated documents for data merging, manage appointments and large projects, produce PDF/A documents for long-term archiving, create rich HTML mail-shots, create user customised invoices and much more.

For those who have not seen it before or want to refresh their minds, the presentation will briefly demonstrate the capabilities of Brainy Data’s five main products, OWrite/JS-OWrite, PDFDevice, OSpell2, OGantt and OCal, during which you are invited to ask questions. However, the main focus this year will be on JS-OWrite and an inside view on what is required to produce a rich client interface for the many OWrite features and how this interface interacts with the Omnis server.

Products summary:
OWrite looks and behaves like a word processor allowing end-users to feel right at home, but was specifically designed with Omnis data in mind. Its specialised features coupled with its word-processing capabilities make OWrite an indispensable tool, providing end users with an easy-to-use yet comprehensive interface for managing the appearance of their documents, and providing developers with the programmability to truly control every aspect of ad-hoc reporting and related automated processes. JS-OWrite brings the sophistication of the OWrite desktop plug-in to the Javascript Client. JS-OWrite provides powerful programable interfaces for editing rich documents direct within web-browsers without the need for plug-ins. PDFDevice has been highly optimised for speed and is preferred by many Omnis developers as the preferred tool of for producing PDF files from Omnis. It is ideally suited for converting OWrite documents into professional looking PDF documents complete with document outline trees based on OWrite document styles, but can equally produce sophisticated outlined PDF documents from any Omnis report. OSpell2 can provide application wide check-as-you-type spellchecking and for those interested in appointment scheduling, project management or booking systems, the OGantt and OCal presentation will show how to add a graphical interactive interface to your application that are intuitive and fast. All desktop client and Omnis server tools are written in c++ for ultimate performance.

Javascript ports:
The Javascript client ports are on-going long-term projects for Brainy Data. These ports are particularly difficult due to browser incompatibilities and uncertainties, often causing implementation u-turns and long delays. Brainy Data are however committed to invest in porting all their GUI components to this new platform while at the same time maintaining and improving existing software. During these busy times, your support and patience is greatly appreciated.

JSCOMP development: Writing Javascript controls

Learn how to develop custom remote form controls using JavaScript such as rich content interactive result sets (no C++ required) and learn how to provide an optional design interface for your custom controls (C++ required).

The external component development presentations will cover two topics.
Writing JavaScript Controls
Creating Custom Omnis Constants
The title and short description for each XCOMP or JSCOMP session summarises its focus, but some of the material covered may overlap with material from the other session.

This particular session will focus on writing your own javascript client component. It is possible to write custom controls without the use of c++ and the first part of this presentation will concentrate on just doing that. The second part will introduce the developer to writing a design interface using c++. If there is time spare at the end of the presentation, we may visit other material related to external component development in Studio.

You will learn:-
how to create a custom JS control using only Javascript
how to create a c++ project using XCODE or Visual C++ Express*
what is required to write an Omnis JS control design interface
about the JS SDK (C++ and Javascript)
* you will require Visual C++ Express 2015 for Studio 8.1 or Visual C++ Express 2013 for Studio 6.x and 8.0.x



Follow Michael




About workshops


You’ll sign up for the session you want to attend on a first-come, first-served basis. Up to 6 participants may attend a session, if full, you can sign up for the same topic at a different time. During the session, the speaker will guide the audience through the main topic but you will be able to ask him/her to deviate and cover related areas. Sometimes participants offer new ideas and solutions to a problem.

Check the


Pursue any question or area not directly related to the core topic. Every speaker hosts at least 4 sessions which means there are about 11 to 12 simultaneous sessions running all the time with an average of 5 or 6 participants

Meet the Speakers

Check the


Flexible conference format means you can choose the best classes for you and at the best time. Some sessions will be repeated, so when you miss one, you can attend the same session later in the day or the week.

Check the Schedule