ALM v3 - Conversion of a FileMaker Runtime to a Xojo Web App

conversionofafilemakerruntimeetoaxojowebapp

Getting Started

This is the beginning of a series of posts discuss converting our Art Licensing Manager product that runs as a FileMaker Runtime to a Xojo Web App. We'd love suggestions, feedback and more than willing to answer any questions about the process. We plan to get into a little detail, but not too much and some sample code.

If you’re not a developer, the goal is to create better software at reasonable cost / investment.

If you are a developer, this might be an option for you. If you’re not sure if you can do this, we could assist you or help you out as much as you need.

WE HAVE NO PLANS to halt our FileMaker development. We’re simply moving our runtimes to Xojo because FIleMaker may not be providing another option to Runtimes in the future.

What is a Runtime?

If you don’t know what I runtime is it’s described by FileMaker as: With FileMaker Pro Advanced, you can bind FileMaker database files into runtime solutions, which are solutions that do not require FileMaker Pro or FileMaker Pro Advanced in order to be used on a computer. You can also create runtime solutions in Kiosk mode.

FileMaker 14 shipped a month or so ago and have added Runtimes to the list of deprecated features: http://help.filemaker.com/app/answers/detail/a_id/14399/~/filemaker-14-deprecated-features

Runtimes have been around for years and years, but its deprecation was a surprise to the FileMaker community. It was brought up and discussed on the FileMaker Community https://community.filemaker.com/message/186105 FileMaker eventually locked the discussion after 440 replies. On May 18th FileMaker replied and stated:



We’ve heard your comments related to the deprecation of the FileMaker Runtime.

We’d like to remind everyone that the Runtime is supported today and the feature is included in FileMaker Pro 14 Advanced. And at this time we have set no specific timeframe for it’s removal.

A number of you have described uses of the Runtime such as for commercial applications, for demos, and as part of solutions. Over the coming weeks we will reach out to various individuals to understand more how you use the Runtime so that we can consider your concerns as we move forward.

FileMaker, Inc.



While I appreciate the reply, I still don’t know what the future of Runtimes will be and need to make decisions with the information I have now. I have to assume Runtimes will be removed in FileMaker 15.

FileMaker and Xojo Multi User Solutions Costs

We currently have two products that use Runtimes, but we’re going to focus on the Art Licensing Manager. http://campsoftware.com/products/art-licensing-manager We offer the ALM as a Runtime to save our clients money and Runtimes works great as a demo. Once folks start to use the ALM, they eventually want to move to multiuser. When that happens, they usually purchase two or more copies of FileMaker Pro so they can share with up to five ( used to be 10 ) users. If they need more than five users, they need FileMaker Server. This shows that while Runtimes are free, they do make FileMaker money, just not directly.

The cost of FileMaker has gone up dramatically since FileMaker 12, especially with concurrent connections. As soon as our users want to share the ALM between two users, they need to pay $330 for each FileMaker Pro which would be double the cost of our solution. Once they go past five users, they need server and possibly concurrent connections. Concurrent connections costs skyrocketed from ~$40 each in FM 12 to $180 each for FM 13 to $288 each for FM 14. The other option is to pay annually which offers a lower annual cost, but the overall costs increases dramatically over time since it’s essentially a rental fee.

We also considered transitioning the FileMaker Runtimes to using FileMaker Server with WebDirect. WebDirect is very similar to Xojo Web Apps in functionality as users can use the FileMaker database with just a web browser. One option would be that we host the server for ALM users or they could host it themselves. Unfortunately, the costs are EXTREMELY high. FileMaker Server 14 with 100 concurrent connections would cost $597/per month which is $7,163/per year under annual licensing and the price to pay for it once is $21,488. The same setup with 5 concurrent connections is $69/month or $828/year and the pay for it once price is $2,884. These numbers are from https://store.filemaker.com/US/ENG/LIC

Xojo licensing works differently. The developer purchases Xojo and can then distribute any number of apps for no additional fee or royalty. We’re already using Xojo Pro which is $699/year, but they have other plans too. https://xojo.com/store/index.php Xojo Pro gives us the ability to create Desktop ( Mac, Windows, Linux ), Web, and iOS apps. We’ve created all of those, except for Linux apps, which might change this year when Xojo adds the ability to Compile to Raspberry Pi. https://www.raspberrypi.org/help/what-is-a-raspberry-pi/

In the past, we’ve created many, but here’s a sample:

  • The MacAcademy Windows Academy CDROM Training interface for Mac & Windows.
  • A school attendance and behavior tracking Web App.
  • The "Reference for FileMaker" iOS app.
  • Positives and Negatives

I’ve been a long time Xojo developer, but I’ve been using FileMaker for seven years longer. I love both tools and they each have their positives and negatives. The speed of development is much faster with FileMaker than Xojo, but the cost of FileMaker is much larger than Xojo. Given a typical FileMaker solution, it would take me much longer to develop, maybe four times longer. At some point, the Xojo solution becomes less expensive since the FileMaker costs reoccur every year, but there is a higher initial expense. I can also create real app with Xojo that can run on Mac, Windows, Linux, iOS, and Web with Raspberry Pi coming soon.

What is a Xojo Web App?

We’ve decided to convert our Runtime solution to a Xojo Web App which can run on Mac, Windows, or Linux. They look and feel like REAL apps ( http://demos.xojo.com/ ), but just run in a browser. Xojo offers hosting on their servers ( http://www.xojo.com/cloud/ ) where they are EXTREMELY security conscience but you can host the apps yourself.

Web Apps are interesting because they are inherently multi user and can be run just about anywhere. Anyone who uses the Web App just uses their web browser to connect, but we plan to create an incredibly simple Mac and Windows app that is a one window web browser to help prevent folks from accidentally closing the browser or using the back / forward buttons. The Web App itself is essentially the server. It just runs and all access is via a browser. So if a single user wants to use it, they run the Web App and fire up their browser. For more than one user, it’s the exact same process, except more users open their browsers. We plan to offer self hosting or we’ll take care of hosting it for a monthly fee.

I’ve already started on the conversion process about a month ago where I’ve been testing and experimenting with Xojo to reduce the development time as much as possible. I’ve gone down several paths with the goal of finding a method that is super easy to use for simple solution, but allows for complex solutions as well. My goal is for it to be FileMaker like. In most cases, I want to be able to add a field to the database table and then just put the field/control on the layout/window.

So far, I’ve found the following database models in the order I’ve looked at them:

  • Active Record by BKeeney Software ( http://www.bkeeney.com/rbinto/activerecord/ ): I like Active record, but It seems too complex for what I want. I know Bob, the B in BKeeney, has had great success with it. Active Record requires that you create a class ( just a definition of the tables and fields in a hierarchy ) that mirrors all of your Table and Field names and types that are the SQL database. It's really easy to do with Argen, a tool that Bob created. However, if I add a field to a table, I’d need to update the class with the newly added fields. That seems annoying, but it does provide type ahead when entering the table and field names which leads to less errors.

  • LazyDB by Bob Gordon presented at the Xojo Dev Conference. This was a mind blowing presentation. Bob, created smart fields that knew their table and field names and they just updated themselves and saved themselves in a very similar manner as FileMaker. Bob’s not sure if he wants to make it available to the public or not, so it’s out of the question.

  • EasyData by CampSoftware ( https://github.com/campsoftware/Xojo-EasyData ): This is what I was able to develop to solve my own problem. It works great, but requires writing some code to 'register' the fields and list boxes to a 'table'. I like it, but I’d like something even easier.

  • Storm by Paul Lefebvre ( https://github.com/paullefebvre/storm ): I’m currently leaning towards using Storm since it requires the LEAST amount of code. Paul and I talked about some options to have it use even less code. Happy
  • Once we decide on what database model to use we need to think about / solve the following:

  • [Our Next Post] Wrapping the Xojo Web App into a Server Desktop App and providing an optional Client Desktop App.
  • Exporting all the data from the FileMaker Runtime to the Xojo Web App.
  • Printing and printing reports in Xojo to paper and PDF.
  • Changing our licensing to multiuser.
  • In app payment processing to transform the demo into the full product.
  • Building a library of reusable functions ( like FileMaker Custom Functions but more powerful )
  • Taking advantage of Xojo Containers ( like a sub layout, if that existed in FileMaker )
  • Building tools for Xojo ( like FMSnippets and FMClips )

We’d love any suggestions, feedback, or questions.