Morfik 3 has a number of major and minor new features as well as bug fixes and small improvements. In this topic you will have a brief overview of the major new features with links to topics that go into greater detail about them.

Pages as first class objects


Morfik 3 adds a new type of high level object: Pages. Pages are a visual representation of the concept of the Virtual Page that was introduced in Morfik 2. Using pages it is much more simple to structure a Morfik application and implement most of its navigational organization without writing a single line of code.


Explicit support for mobile devices

With version 3 Morfik has added special support for mobile devices in general and Apple's popular iPhone, iPod Touch and iPad in particular. The Morfik development environment allows the user to create alternate interfaces for different devices within the same application. The Morfik Framework automatically presents the correct set of Pages to the user based on the device he/she is using at the moment.

iPad ready Web applications - With version 3 of Morfik the user can create pages especially tailored to the iPad's screen resolution and input method and have it automatically presented to the end-user whenever he access the website or application from the iPad, while presenting another interface when he access it from a desktop computer, another when access is from an iPhone and still another when it is from a BlackBerry device.

Mobile Preview - The Morfik built-in debug browser now offers support for previewing iPhone and iPad applications in their respective pixel resolutions and orientations. Both the iPhone and iPad applications can be seen as if they were in the respective device. The user can alternate which device is being used to browse the application and which orientation from a drop down menu that is available under the device button in the toolbar of the debug browser.


New API for Design time behavior of Packages

Whats_New_Packages.png With version 3.0 Morfik introduced a more well rounded support infrastructure for creating scripts to add design time behavior to widgets within the Morfik development environment.

The new design time behavior infrastructure for widgets includes support for accessing external libraries in the form of Dynamic Link Libraries.

Abstract Data Access Classes

As part of the effort of adding support for additional databases to the Morfik Framework and the Morfik development environment, a series of abastract data access classes has been introduced. These classes can be used as the basis for the implementation of native access to just about any database.



Native Database Connectivity


In version 3 Morfik has re-implemented the database access portions of the Morfik Framework in a way that allows for direct connection to databases other than Firebird and ODBC. This means that it is now possible to implement direct native access to other databases.

Morfik 3 supports native access to the following additional databases:

  • MySQL
  • Postgres
  • Oracle
  • MS SQL

Continuous Editable Forms

Continuous editable forms were introduced in Morfik 2.x but were still at an experimental stage. In Morfik 3.x a lot of work went into making these forms usable and useful. You can now design a single form for browsing and editing data.



The Container Set Control

ContainerSet.png The Container Set control allows multiple container controls (referred to as Pages) to occupy the same visible space on a form with only one of the Pages visible at any time. The Pages can be moved through in a forward or backward direction or any page can be brought to the front at any time. Changing pages can also invoke graphical transitions sliding pages in from left to right, right to left, top to bottom or bottom to top. Other Morfik controls, including Container Sets and Subforms, may be placed on any of the pages.


The Repeater Control

Morfik 3 includes a new control, Repeater, that allows the developer to add a continuous list from a datasource without having to use the normal subform-form combination. The Repeater control has a Data Source property that can be set to any table or query and a display area that can contain controls bound to data fields.

The Repeater control does not include a navigation bar and no paging through the dataset is possible, however the number of records displayed can be controlled.




Whats_New_Menus.png Morfik 3.x introduces a very powerful menu control that can be used to to create menu bars that match just about any page layout you design. Morfik menus allow the user to place individual controls within dropdown menus thus allowing complete freedom to create as sophisticated a menu systems as the user wishes.

Among other things it is possible to create menus that pop up the left or right of a menu item, instead of underneath it. It is also possible to define the alignment of the popup menu in relation to the text of the selected option. This allows the user to set for example that the dropdown menu of a menu option that is aligned to the right of the page will also be aligned to the left.


Internationalization and Localization

Morfik has implemented a design method that we believe will make the creation and maintenance of websites supporting multiple languages a straightforward process that can be easily executed. As always, we are going to be the first users of our own technology, so you can expect to see in various languages!

Supporting multiple languages on your website consists of two parts:

1. Internationalization – the process of designing your website in such a way as to make localization possible, and
2. Localization – the actual process of adapting your site to a specific region or language.



Support for JSON added


All communication between the browser and server portions of a Morfik application or website are now based on JSON (Javascript Object Notation), for improved performance.

JSON is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript text format for representing simple data structures and objects.


Animation and special effects


Morfik includes built-in support for browser-side image animation and transition effects through the SystemAnimations module. Included in the module are support for Fade, Move, Resize, Resize to Vertical Center, and Resize to Horizontal Center transitions. All these transitions can be combined to create a large variety of transition effects and animations.


Project Templates

With Morfik 3, the base template that is used to create a new project is replaced by a functionality that allows you to choose from a set of several pre-built templates. These new templates will help the user to go from a totally new project to a published website much more quickly than previously possible.



Edit Masks for TextEdit Controls


The improved TextEdit control has a number of new properties to support edit masks for input. Using input masks the developer can control which characters are allowed in different positions when entering text and numbers and also provide display formatting characters.

Additionally the TextEdit control can convert the case of initial values to upper or lower case and display special text for empty fields.


International character set support in Reports

As of version 3.0 Morfik supports a wider range of international character sets in reports. Morfik reports are generated as PDF documents that the user can view through Adobe's Acrobat Reader or save it for later review of forwarding to other people.

Morfik is adding support for the following languages:

  • Central Europe
  • Cyrillic
  • Western Europe
  • Greek
  • Turkish
  • Hebrew
  • Baltic
  • Vietnamese
  • Thai
  • Japanese
  • Chinese
  • Other Middle-eastern languages



Server Side Optimizations

Whats_New_Optimization.png Morfik 3 includes a number of server side optimizations to accelerate the delivery of web applications to the browser. The result is that Morfik 3 applications are much faster to load and execute than ones compiled with prior versions of Morfik.

These optimizations have been applied to General xApp Performance, Forms and Reports, Continuous Forms and The Main Page among others.


Miscellaneous compiler and framework changes

Morfik 3 brings a number of improvements in the compiler and runtime library. We have done our best to ensure that most existing projects will continue to work seamlessly with new version. In some cases however you might have to make minor adjustments. Here is the list of what has been changed:

  • A change has been made to the way string constants are handled in browser-side code. In version 2 one had to be aware of the way strings are encoded in Javascript and use escape characters when declaring string constants that include certain characters. In version 3 compiler takes care of that so string constants can be specified according to the rules of the language you are using.
  • Browser-side code: all class fields and local variables are automatically initialized now. String fields are set to have empty string value, numeric fields are set to be 0, object fields are set to contain null value.
  • Morfik C# syntax has been improved. In particular, support for shorthand assignments such as += or ++ has been added, and for loop statement is now supporting all the features of c#. Also, escape characters can now be used when defining string constants in c#.
  • Errors panel has been improved to always show you the full list of compiler errors in your project and to maintain the order of errors reported when the list is changing. This makes code refactoring to be a much nicer experience.
  • If you program against IBO database directly, you might need to add SystemConnectorsIBO unit to the uses section of your module.
  • Morfik BX and Morfik CX: if you use AsString(), AsInteger() and other functions of that sort, you might need to change the code to read AsString, AsInteger (remove the braces)
  • Indy is now obsolete and is provided for backward compatibility only. If you project depends on it, you can download the free package from this page. For new projects please consider using Synapse package instead.
  • FlashUploader, RSS Button, Wysiwyg and Google Maps Morfik 2 custom controls have been removed. Wysiwyg has been superseded with tinyMCE package. We are going to provide packages to replace other controls too.
  • Run-time behavior of continuous editable forms has been altered - changes are submitted to the server when the user navigates to another page or submits them explicitly.
  • Dropdown control can now be resized at run-time. If you have a fixed-size dropdown, you can set its Can Grow property to No for better performance.

Morfik Wiki 3


This entire wiki is in the process of being updated to reflect changes and new features added to Morfik 3 and you will be able to find many topics which have already been updated to reflect conceptual changes.

Some topics, specially those that go into extensive details related to how to complete an activity haven't yet been updated due to the need to have all interface changes finalized before revising such topics.

Related Topics

Back to top