4 days / 20 talks
Awesome and great speakers

November 3-8

Mark Smit

Mark is owner of Master Object Consultancy (, his consulting firm based in the Netherlands that focuses on development of reusable components for Omnis Studio. Mark has some 25 years of software development experience, ranging from tweaking machine code in industrial automation systems for textile plants to complex client/server enterprise applications. Mark also founded MasterObjects Inc, a company that sells a web- based information retrieval technology called QuestFields.
A frequent EurOmnis speaker, Mark’s focus is on maximizing developer productivity and application maintainability through the use of established OO design patterns and a strict adherence to the “Single Point Of Definition“ concept. Mark is the creator of the MasterStudio framework for Omnis Studio and of PlanBoard, a popular scheduling component written entirely in Omnis.
Although PlanBoard can be used without any understanding of the underlying framework, Mark’s forte has been helping other Omnis developers learn and understand design patterns and implementing them cleanly in Omnis. Many developers are now using the same proven concepts for building complex, multi-(sub)window applications in less time, with fewer bugs. Understanding OO can be difficult, especially for developers coming from Omnis Classic. But once developers overcome the learning curve, they experience real empowerment. Mark’s favorite quote is from an Apple Engineer: “A steep learning curve is good. Because it means you learn a lot in a small amount of time.“ He has experienced this himself, and gets a thrill out of others saying “Wow. I never thought I could do that!“
The conversion, which wasn’t for the weak of heart, ended up being more of a rewrite, as all the code was made more object-oriented and was re-coded to use SQL instead of Omnis Data Files. Throughout the conversion he learned how to eke out every ounce of performance from Omnis Studio using Omnis tricks and C++ externals.

In addition to Omnis he also has a great deal of experience with PostgreSQL, PL/PGSQL stored procedures and triggers, Objective-C, and C++ externals and has used it to great advantage to make Theatre Manager faster and more capable. He’s always on the lookout for cool new things to integrate into Omnis so that he can make faster and more useful software.

Windows and Subwindows

While it is easy to build a window in Omnis Studio, most applications consist of many windows and “panes” that contain near- identical functionality. While it is easy to create a window superclass that provides common functionality, this superclass has a tendency to grow out of control. As a result, instantiating a complex window can become very slow. And, once we start mixing and matching functions and subwindows more than one level deep, it becomes difficult to manage the relationships between these components.

In this session, we’ll talk about using tasks and controller objects to host the “logic” behind your windows, giving window classes only one responsibility: being a “View”. Anything related to the “Model” and the “Controller” should not be in the window class! By linking window components to a corresponding controller object, they can suddenly be reused anywhere. And you can easily implement seemingly complex features, such as “open this tab in a new window”. By nesting controller objects in a hierarchy, we can use the “chain of responsibility” pattern to manage their relationships.

•This topic will be of special interest to client/server developers who have a need to:

•Control growing window complexity

•Improve window instantiation speed

Session participants will receive a fully unlocked development version of the MasterStudio framework, code examples, and a working demo application that shows what can be achieved.

OO and Design Patterns

By cleanly applying object-oriented concepts in Omnis Studio, we can avoid writing any logic twice. And thus, we can avoid fixing a bug and having it pop up again anywhere else. Also, we can spend more time on optimizing the code, resulting in faster, consistent, bug-free applications. And we can add luxurious functionality that is suddenly available anywhere in all windows of all of our applications.

It is not always obvious that code for checking user input behind a field in a window should really be located in a table class. And what if multiple fields do the same thing? In that case, we can create a common object instance to manage their functionality. If we display buttons as well as menus and context menus that allow users to control your application, shouldn’t these various “View objects” call the same function automatically? And if a specific function is currently disabled, shouldn’t all corresponding buttons and menu lines be disabled as well?

•This topic will be of special interest to client/server developers who have a need to:

•Reuse complex functions throughout many parts of an application with no copying of any code;

•Reduce “feature creep” and the associated bugs and maintenance cost;

•Add user interface features without copying or replicating code.

In this session, we’ll explore various ways in which the ideal of “Single Point Of Definition” can be implemented in Omnis Studio, implementing long-established design patterns in ways that make sense in Omnis. Participants will receive a fully unlocked development version of the MasterStudio framework, code examples, and a working demo application that shows what can be achieved.



Follow Mark



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