Interface building with Morfik: A hierarchical data representation

In the wake of my previous post I decided to show my dear readers another interesting thing you can do with Morfik, in creating an interface. 

It is quite common for applications to have the need to present users with information that is organized in a hierarchical structure. In creating a desktop application we would use a Treeview control to display this kind of data.  I’ve actually seen quite a few people asking for Morfik to incorporate just such a control.

Well, it isn’t really strictly necessary to have a specialized control to get this sort of representation.   The following picture shows a treeview-like data representation created with simple forms and very little glue code.

 Observe that in this picture the nodes for the tree representation vary in height, allowing for non-cryptic presentation of the information as it does not really need to be abbreviated.  You can, of course, also create more sophisticated hierarchical representations of your data.  The following picture shows a similar representation but with the nodes being color tagged.
This representation can be achieved though the usage of form that opens a new instance of itself in a subform that it contains.  It is essentially a simple recursive algorithm.  In the case of the second picture all that was really necessary was to design the form and write about 25 lines of code.  Sure using a treeview control might require less lines of code, but I sincerely  doubt that you could design a Treeview control have variable color and height nodes, without manually coding the necessary changes.
As soon as I can make the time I’ll write a two or three form application to provide a model or template that you can use to quickly make your own hierarchical views.
Posted in Visual Design | Leave a comment

Interface building with Morfik: Multi column continuous forms

A blog post by a disgruntled Morfik user, complaining about not being able to create anything but the most basic websites without resorting to Web Methods and manual control creation led me to the conclusion that many of Morfik AppsBuilder’s most interesting features go by unnoticed  by many.

One of the features that I’ve seem people make very little use of is the multi-column continuous form.  This kind of form allows us to create interfaces that resemble Morfik’s own “Project View”  In an application I’ve recently been involved in creating, we use this feature for maximum effect.  In one point, for example, we allow the user to choose the icon that will represent a certain entity within the application’s database.  The icon selection form that is shown in the following picture was quite easy to create.  The whole feature is actually composed of two forms.

Using nothing more than the MouseOver style configuration we can apply a nice rollover effect to let us know which icon we are about to select.

The same technique can be used to create other kinds of views for presenting information in your application. The following picture, for example, shows how data from several months is presented and color tagged according  to specific business rules.

In order to try out these possibilities just experiment a bit with the ColumnCount proprety of a continuous form.  I recommend that you try it and see what you can come up with.

Posted in Visual Design | Leave a comment

Morfik 2.2.1.4 update released

Morfik released a new build (2.2.1.4) a few hours ago.  As with last couple of releases, this also focus on bug fixing and adding a few more features to the Form designer.

The continuous bug fixing over the last couple of releases has gone a long way towards making 2.2.x a more stable platform for application development.   At the same time, a large number of new design oriented features has moved Morfik solidly into a camp previously dominated by designer tools, while remaining a developer’s tool.  Morfik AppsBuilder is certainly a much more designer-friendly application now, then it was a couple of months ago.

The new status bar in the designer offers some really useful information.  Download the new build and try it out. 

Posted in M22, Visual Design | Leave a comment

Organizing your application with Packages

Packages were introduced with version 2.1 of AppsBuilder, but it is in version 2.2 that they seem to be really maturing.  Version 2.2 introduces several new features for packages including package dependencies and nested packages which open up the way for packages to be used as tool for creating modular applications.

While the packages introduced in 2.1 offered the necessary support for the Widgets concept that was introduced at the same time, it did not lend itself well as a tool for organizing your application.  With the new features introduced in 2.2 that is no longer the case. 

Why create a modular application in the first place?
There are two main reasons why it is a good idea to breakdown your application into packages: to make it easier to find stuff and to make it easier to distribute work within a team.  The first one is a weaker as the built-in filtering feature of the Morfik IDE’s project view is quite powerful and makes locating stuff rather easy, if you know what the object you are looking for is called. The second reason, however, is much stronger.

As one of  three developers working on creating an application, I frequently find my self having to combine modules from different copies of a project.  While it is true that you can manage projects of virtually any size through a good source code management software, I started to contemplate how packages could be used to break up projects into smaller sub-projects.

As it turned out there was a road block on my path to breaking up a large project into several packages in the form of the project’s database.  Any items moved to a package would not have knowledge of the database objects that were part of the main project.  By the same token, if the database objects were created in a package, forms in other packages would not be able to see them as well.  This looked like a problem without a solution, and it was until Morfik Appsbuilder 2.2 came out.

Nested packages to the rescue
With version 2.2 of AppsBuilder came the possibility of having packages being used by other packages and this gave me an idea: What if we were to put all the database objects into a single package and then have all other packages reference that one.  As soon as it occured to me I set out to test the idea and it the proof of concept works okay so far. 

My first quick experiment made one thing painfully clear though: you need to set out to create a modular application right from the start.  The current incarnation of the project I am working on has between 50 and 60 forms, 30 tables, 18 queries and over 15 Firebird stored procedures.  Almost all of these items would need to be changed if I were to attempt to break this application into packages.  This is basically due to a feature in Morfik which is designed to ensure that name clashes don’t occur between packages created by different developers. 

You see, in order to create a package you need to have a Package ticket file.  A ticket file can be quickly created from within the IDE itself and it reserves a prefix for your use.  This prefix is then mandatory in all objects created within your packages.  While the usage of this prefix does prevent two developers from creating objects with the same name, it also precludes the possibility of simply slicing up an existing project into packages as all items that were moved into the packages would need to have their names changed.

For new applications, however, it is a simple matter to create all database objects in a single package that is then referenced by all other packages that are created for the application.  When creating packages that reference this database package it is a good practice to flag it  as a required package.  This will prevent anyone from adding the depedent package to a project without previously adding the required package with the database objects.

Breaking up an application into packages can be quite useful, especially since Morfik’s own form based architecture leads us to create a large number of objects (forms) which are used to compose a larger one.  This tends to leave us with several objects which are part of a larger context.  For example, in order to create a user management module you might end up with several forms for users, groups, permissions, etc.

You can combine all these objects into a single package and pretty much never see these objects, unless you need to do some work on them.

Have your worked with Morfik packages yet?

Posted in M22, Packages | Leave a comment

Bugfix update for Morfik 2.2.0.7 is available…

Morfik released, today, a small bugfix update for all versions of AppsBuilder 2.2.x.  This update covers a lot of small issues that still needed fixing after last week’s 2.2.0.7 release, speacially issues related to the new Dropdown control.

Some issues with the rendering of semi-transparent controls in the IDE’s thumbnails, and of certain controls in the new Zoom mode have also been addressed making for a smoother all around usage of the tool.

Posted in M22, Visual Design | Leave a comment

Morfik 2.2 is out and looking good.

Morfik has just released version 2.2 of its line of AppsBuilder tools.  This new version has some very interesting new design features including graphical zoom in the form designer and a bunch of new graphical effects for the background of your websites.

Also changed in this version is how the form designer handles bands.  The thick, three dimentional, band delimeters have been replaced by thin lines which interfere much less with your visualization of the design you’re working on.  The band names are now indicated outsite of the actual form design resulting in a much cleaner view of your work.

Morfik removed the sliding effect its panels used through out the IDE and the panels no longer pop out without being clicked on.  This is a feature I have been long requesting as I always considered the old behavior distracting and many times annoying.

The list of enhancements is quite extensive, specially those related to packages and widgets which I will explore in more detail in a follow up post.

Download and try out this new version.  It should be worth your time.

Posted in M21, Visual Design | Leave a comment

Morfik 2.1.1.3 update released

Today, Morfik released version 2.1.1.3 as an update to all versions of AppsBuilder. This is the first of several updates to be released. The update file is only about 6.5MB in size and can be easily and quickly downloaded and installed.

This update addresses several issues identified after the release of the first build of version 2.1, last week, and focuses on correcting problems with Apache plug-in modules and general IDE stability.

You can download the update directly from here.

Posted in BX, CX, FX, M21 | 3 Comments

Working with Packages in Morfik – The Basics

I spent an afternoon going through the basics of working with packages with Morfik 2.1 and thought I’d share with you my first impressions. The first thing that came to mind when I first opened the sample packages available (as a separate download) from the Morfik website, was that the concept was really cool.

With that thought I proceeded to take on the task of creating a package of my own that would hold the bits and pieces necessary to do something useful. As always, when you set out to test some new technique or product version all ideas seemed to vanish so I just decided that I would do a package that allowed me to insert a blog-like list of articles into any application. That seemed simple enough and as it turns out it really is.

When you first decide to create a package you will need to get a package-ticket with Morfik. This ticket will reserve a three to six letter prefix for your use in creating your personal or business packages. This is handled directly in the New Package Wizard and the ticket is issued immediately. No bureaucracy, no wait.

When you complete the Wizard, while Morfik is “opening” the newly created package, an error is generated. You can safely press cancel and proceed to work in the package. This error is harmless and the result of a simple inversion in the order in which these items are opened after being created. As it turns out the IDE is trying to first open a test form containing a blank widget, before the widget’s creation has been completed. (Or something of the sort.:-) This issue should be corrected in a minor point release that Morfik will be making available soon.

Once you have created the package you will have a project which contains one form and one widget. The form is useful for you to test the objects you are creating within your package, without having to continuously add and remove it from other projects. The Package project can be run as it if it were a standard application. The actual redistributable file with the extention MFKPackage is actually quite small, if you haven’t added large resources to the project.

Adding resources to a package is an interesting area to consider as all packages you create will share a common resource root folder which has your package prefix, followed by an underscore as its name. In the case of MorfikWatch, for example, the folder is called mfw_. This means that you cannot have two packages that use the same name for two different images, as long as you plan on using them on the same project.

I’m not sure putting all the images for all packages I’ll ever create in the same folder is the best design decision, but I understand that it’s objective is to avoid having the same image added more than once to any single project. In that regard, this is probably a good decision.

It is obvious that Morfik considers Packages a natural environment for Widgets as any new Package comes with a pre-created Widget. The new features do really seem like an ideal match, as Widgets allow you to your own controls and packages provide a convenient mechanism for distributing them within your team or your customers.

Packages can, also, be great facilitators for larger developer groups. A project can be logically divided into packages so that it’s development can be easily handled by different developers.

What other uses can you think of for Morfik Packages?

Posted in M21, Packages, Widgets | Leave a comment

Integrated Hosting + Powerful Visual Design = Morfik 2.1

I wish I could say that I took the time to experiment with Morfik’s Integrated Hosting service, but that would be largely overstating what I, actually, did. Once you go have your project ready for deployment, the process is as simple as following a Wizard. The main decision I was required to make was the sub-domain name that I would use with my account.

Not surprisingly I chose MorfikWatch :-) as the sub-domain name for my Morfik hosted applications. After just a couple of clicks I had the application compiled and deployed as shown in the following picture.

Deploying an application couldn’t really be much simpler than that.

When you combine this ease of getting a ready application deployed with the traditionally easy Morfik visual design, you get the one of the best possible solutions for deploying small sites and applications. In fact, the power of the visual designer in Morfik 2.1 has been further enhanced with the ability to customize more in more detail how effects are applied to controls in creating styles.

The combination of the ease and power of visual design with the ease and speed of the Integrated Hosting might come to attract a good number of freelance web designers to become Morfik users.

Posted in Deployment, M21, Visual Design | Leave a comment

New Features in Morfik 2.1

Morfik 2.1 has a large number of new features. Some of these features are quite impressive while others are just small, though significant, improvements in existing features.

Lets look at the small improvements first. These encompass those small details that can seriously irritate you or make your day. In my particular case, the improvements to how styles are handled represent the greatest gain, in this group. Morfik 2.0′s implementation of styles while very impressive seemed a bit incomplete in some areas. Version 2.1 fills in the blanks left in the previous version. Styles now have a dedicated management facility which should make creating and distributing styles a much simpler and faster proposition.

The ability to individually configure which sides of a control will display a border or which corner will be rounded or not are other small changes to the capabilities available to visually design your website or application.

Moving into the realm of what is totally new, two features are quite impressive: Widgets and Packages. Widgets are user definable controls which can be visually created through aggregation. This feature alone may prove to be one of the most interesting in version 2.1 as it makes it much easier to develop controls for the Morfik platform. Packages are very interesting for much the same reason: they make it easier to redistribute code that you have created to other users.

The combination of Widgets and Packages might pave the way for more third party developers to venture into Morfik control creation. Morfik Packages are specially interesting as they can include tables, queries and all other types of documents you can create in a Morfik Application.

In a demonstration of forward thinking, Morfik acted to prevent name clashes between packages developed by different third party vendors. Before you can create your first package the IDE will take you through a registration process where you choose a prefix for your identifiers. This prefix can have from 3 to 6 characters in length and will be appended to the start of all identifier in your package. This will not preclude the possibility of name clashes between the items you create within your package, but these have always been the developer’s responsibility anyway.

I have done some basic experimenting with this feature, having registered the “mfw” prefix for MorfikWatch packages. The following picture shows my first attempt at creating a widget, already inserted into a form, at design time.
Along with the new version, Morfik made available a set of three demo packages and a 53 page document describing the most significant new features. In this document the creation of Widgets is described in detail as is another significant feature: Integrated Hosting.

Integrated Hosting is how Morfik is calling its hosting service offering which is available directly from within the IDE. The ease and speed of deployment this service offers will certainly interest a large number of developers, specially for development and demo purposes. It should provide much greater impact to just click through a wizard to deploy your application so that your users can see a live version of it, than to personally carry it on a notebook to show to other people. This of course is entirely dependent of type of application you are creating and the types of customers you have.

Apart from all I have just mentioned, Morfik 2.1 includes several features which can be used together to create sites which can be indexed by search engines: Clean URLs, HyperLinks and SEO-specific options for URLs.

All in all, Morfik 2.1 is a very impressive product. I will be adding new posts that go into more detail about specific features in the coming days.

Posted in Deployment, M21, Packages, styles, Widgets | Leave a comment

Morfik 2.1 has been released

Morfik has just made version 2.1 available for download. Along with several new features which were added to the existing FX and BX versions of AppsBuilder, a whole new version has been released. Morfik CX uses the C# language for all programming, both for the browser and server portions of the application, just as FX uses Pascal and BX uses Basic.

I’m currently in the process of downloading the new release and more posts about the new features in version 2.1 should be published later today.

Posted in BX, CX, FX, M21 | Leave a comment

Morfik 2.1 Update

Just a bit over 15 minutes ago Aram Mirkazemi, Morfik’s CEO, wrote a post on the General Discussions forum of the company’s website, indicating that the new release is likely to be released by mid next week.

While I know that many where anxiously awaiting a release today, a few more days shouldn’t make that much of a difference, specially if they translate into a release which has been thoroughly tested. Hopefully, this time next week everyone will have had a chance to experiment a bit with AppsBuilder 2.1 and will be reading more about it, right here at MorfikWatch.

Posted in M21, MorfikWatch | Leave a comment

Morfik AppsBuilder 2.1 is coming…

Most users of Morfik AppsBuilder should by now be aware that a new release is expected soon. Version 2.1 promises to be feature packed with lots of interesting new options and capabilities. As soon as version 2.1 is released, I’ll be writing and posting to MorfikWatch a series of article, covering the new features that were introduced in this version.

These articles are intended to be a general description of how to use the new features, for those who are not yet full time Morfik developers or just coming into the Morfik world. Experienced users who use Morfik in their day-to-day work should have little difficulty in finding out about the new features by themselves but may also save some time by going through these articles first.

Posted in MorfikWatch | 5 Comments

A Morfik wish list

While chatting with a friend, a few minutes ago, I started making up a small Morfik wish list. These are a few things I miss in the current version of AppsBuilder and that I have not seen mentioned in the list of things expected to be available for the 2.1 release. It occurred to me that if I don’t tell people about them, the chance of one of one of them ever finding its way to a future release of AppsBuilder was slim at best.

So, here we go…

  1. Spell checking for the text in TextLabels. Ideally this would be visible in form design mode, but I would settle for having it work in the dialog box where you enter the text for the caption property.
  2. The ability to bind any property to a database field. For example, binding the Visible property of a control to a boolean (true/false) field.
  3. A visual way to design page navigation for the application, which would automatically generate navigation menus. I remember that this was in my wish list for 1.0, but I’m sure it was too soon for it back then. Now that Morfik AppsBuilder is a more mature product with a much more sophisticated IDE, the time could be right for something like this.
  4. Easy integration with Google Analytics. This is a great and free tool for following the access patterns to your website.
  5. Explicit support for database stored procedures. Stored procedures are great for accomplishing any number of tasks, including data retrieval and while it is possible to use them through pass-through queries it would be enormously helpful if we could see the available stored procedures in the current database in the Morfik Project View and choose one of them as a data source for Form.
  6. Input field masks, formatting and data validation. Having tool support for handling data input is validation, while not critical websites which have few input Forms, is critically important for business applications.

I’ll stop at this point. Having an active imagination I could go on forever. These are some of the more important things (apart from the visual navigation which would just be nice to have), which I did not see mentioned in the list of improvements that we can expect for the 2.1 release.

Does anyone else have any other “practical” suggestions for the future?

Posted in Architecture, M2, Visual Design | Leave a comment

Morfik Developers Day in Brazil

I’ve been invited by a local Morfik user to present a series of sessions, in a day long event, about Morfik AppsBuilder. This user, Fabiano Costa, got the idea from a recent post where I mentioned my presence at the Firebird Developer’s Day event that happened recently in the city of Piracicaba, in Brazil.

I had not doubts about accepting the invitation, even though I have no real idea of what the number of interested people in the region is like. I have a long standing passion for Morfik and can’t really resist an opportunity to talk about the product. (As any readers of this blog might have noticed.)

So… It seems that Brazil will be the first country to have a Morfik Developer’s Day, which should happen in September. Hopefully, Morfik 2.1 will be out by then and I’ll have even more interesting things to talk about.

Posted in Event, MorfikWatch, Training | Leave a comment

Firebird Developer’s Day

Yesterday I presented a session on data organization and modeling for websites at the 6th Firebird Developer’s Day, in Piracicaba, Brazil. This is an annual event that draws in from five to seven hundred people, every time.

As with the previous versions of the event, everything ran quite smoothly and I had the opportunity to chat with a lot of people in the Firebird usar community. I ran into several people that asked for information about Morfik and used some of my free time to demo AppsBuilder 2.0.5.27 to some of my fellow speakers. As usual, everyone liked Morfik’s current generation designers and visual effects, immediatelly.

The usage and general interest in Morfik in Brazil continues to grow, from I can see and I noticed that some objections to the product, raised by early testers, seem to be in the list of new features slated to be present in Morfik 2.1, which should be comming out next month. That seems like a nice indication that Morfik is moving in the right direction with its evolution of the product.

Posted in Database, Firebird, Visual Design | 4 Comments

Sometimes simple isn’t really simple at all

This afternoon I was working on creating a hierarchical visualization for a set of data, using Morfik. Essentially, what I wished to accomplish was a tree-like representation of a rather complex set of data.

Well, Morfik being a tool that is geared towards the creation of data-driven applications it seemed just too easy. I had a friend sitting besides me and I smugly thought to my self that I would show him just how easy it is to create such a representation in Morfik.

Two hours later I was still trying to achieve the results I wanted, though not due to any fault of Morfik AppsBuilder. If anything, AppsBuilder made things too easy. So easy that I simply didn’t bother to build my data access as I should have done, instead I just went for visually creating a query with a subquery. Then I got bogged down when in some situations the query did no return the result set I expected. I spent most of those two hours trying to coerce this query into giving me the information I wanted, when I wanted it, to no avail.

It was then that I decided that it would probably be simpler, not to try to be so simple minded. In about ten minutes I had writen a stored procedure which gave me exactly the result set I expected, when I expected and had it plugged-in to my Morfik application.

Normally I would argue that using a visual query builder is simpler than hand coding your own data access in stored procedures, however, in this specific case the exact opposite is true. There are several good tools in the market for direct manipulation of Firebird databases, inclusing some free ones. If you haven’t tried out some of these tools, I recommend that you do so as it is not possible to create triggers or stored procedures from within the Morfik environment.

Posted in Database, Programming | Leave a comment

PannonRex introduces a specialized Morfik hosting service

Today PannonRex, a company well known for doing Morfik consulting and custom control development, announced that it is introducing a specialized hosting service for Morfik applications.

According to Péter Illés, PannonRex’s CEO, the service will be custom fitted to the users needs, instead of being a fixed set of pre-defined offerings. The main goal is to provide a managed hosting service that can handle special needs in terms of service integration (payment gateways, for example), or resource requirements.

Mr. Illés explained that while the service was being announced today, it was developed as an extension to custom hosting services already being provided for a few companies that developed Morfik applications and turned to PannonRex for help when it was time to deploy them.

With the introduction of this service Morfik developers will have a speacialized service provider where to take their applications, should they outgrow the application hosting service which will be provided by Morfik itself. Being a company focused on Morfik application development, consulting and hosting, PannonRex will be the one to go to if your application needs a dedicated server, or multiple servers, and you want the support of a team that is familiar with your applications chosen technology.

Posted in Hosting | Leave a comment

Morfik Languages: C# or something else?

Anyone that has taken an interest in Morfik AppsBuilder 2.0 knows that it is available in two editions: FX (Pascal) and BX (Basic). That is huge change to what you would find in AppsBuilder 1.4 which supported four different languages (Pascal, Basic, C# and MorfikJ a.k.a. Java) in a single version.

I have no idea why Morfik decided to separate the languages in 2.0 and have a separate edition for each language, but I imagine the reason they left C# and Java out was that these languages had drawn much less interest than Pascal and Basic and their compilers were not up to the level of the Pascal and Basic ones. In a previous post I presented a list of new features that were mentioned as being underway for version 2.1 by Aram Mirkazemi (Morfik CEO). Among these features was should be actually a whole new edition: C#.

There is a huge number of people around the world that work daily with languages from the C-family of programming languages and which would feel more at home working with a more familiar language. With this consideration in mind I would say that having C# support would be a nice thing. There is another question that comes into play, however. Most people that here the name C# would immediately expect to find support to the .net library, which is essentially the runtime library for the C# language. Morfik, however, has its own framework which has very little, or nothing, to do with .net. This might lead to people being disappointed with the C# edition and not taking up Morfik at all.

I feel it would be a better move for Morfik to add support for a c-family programming language but not call it C# as it will be working with a framework entirely different from what C# developers are used to and will have features that C# does not, in order to fully support the Morfik Framework. Having a language similar to C# and Java could be an asset but calling the language C# or Java could actually work out to hinder the adoption of the language and consequently the tool itself.

What do you think?

Posted in Architecture, Programming | 12 Comments

New features in Morfik 2.1

Aram Mirkazemi, Morfik’s CEO and main architect, presented a new list of features for Morfik AppsBuilder 2.1, in a recent forum post. This post presents an interesting list of features that which Mirkazemi says will be available by the end of the second quarter of 2009.

Here are some of the highlights:

1. Page Architecture and Search Engine Optimization – Pages are a new kind of project object. During the beta phase of AppsBuilder 2.0 there was a period where a Page object was available as well. This might be a refinement of that concept.

2. Plug-in architecture for controls, downloadable plug-ins – It seems that Morfik will be making available sample plug-ins to demo the usage of this architecture, when 2.1 is released. The only sample specifically identified is a plug-in for handling user authentication. This new architecture will form the basis for new and more powerful controls.

3. Editable continuous forms – This is presented as a subitem of the previous one in the original post, but anyone that has done any serious development with Morfik AppsBuilder should know that it deserves a special place of its own. This will be available as a third type of form (single, continuous and now grid).

4. Push button XApp hosting platform – This service is supposed to be available in a similar time frame to AppsBuilder 2.1 and will in fact require it in order to be used.

5. C# Support – A version of Morfik AppsBuilder using C# as its programming language is supposed to be available when 2.1 is finally released.

Another item of interest in the post is that the update to the Morfik documentation has been delayed and should not be available in the same time frame as 2.1.

Posted in Architecture, Custom Controls, Deployment, Hosting, Programming, Visual Design | 2 Comments