Today is the day everything changes for FileMaker developers. (Orchestra, play loud!)
Almost a year ago, soon after the release of FileMaker Pro 12, we already released FMSDIFM, and you might already have seen this video. The technique was widely discussed among the FileMaker community, but although it was incredibly efficient and stable, it was quite difficult to deploy, and this is why we didn’t give the source away. The principle was public, but the implementation was for our hosting service customers only.
Today, on the occasion of the Berlin Pause On Error conference, we release a free, fully functional, open source and downloadable version. From now, you can deploy FMSDIFM on your own FileMaker Server. Be ready, this is going to change your developer life, and your users’ experience.
FMSDIFM stands for “FileMaker Server, Do It For Me”. Yes, we’re bad at finding names.
The principle is the following: by offloading the client and performing all CPU and Data-access intensive tasks to the server, you can improve performance by a huge factor, including on the LAN, a WAN connection, and even more if you’re using FileMaker Go. By huge, we mean something like several hundred times faster!
As you will soon discover, performance is only one of the many benefits of FMSDIFM.
First, the new FileMaker Server 12 architecture is of great importance for this technique. The fact that it’s 64 bits and can be allocated more memory, as well as the relative independence of the database engine which won’t slow down during backups or when a container field is requested by a user, make FMSDIFM secure and stable.
The idea is super-simple. FileMaker 12 new feature Insert From URL allows interacting with a web server. It also allows really hiding objects on the right side of a layout. FileMaker Server also comes with several web publishing methods, including XML. Web publishing can of course perform a script on a database.
So what if you’d call a script on the server from the client? This is what FMSDIFM is about. At any time, FileMaker Pro/Go can trigger a script on FileMaker Server. It will then be performed in no time, and can send a result so your client side script can use it and adapt its behaviour.
All it takes is check the XML checkbox on FileMaker Server!
Please download the demo file and install it on your server (it won’t work if it’s not hosted by FileMaker Server). Ensure that the XML web publishing is enabled. If it’s not, you can do so from the FileMaker Server Admin console.
Note that the performance differences will be even more noticeable if the server is remote, typically on a WAN network.
Now, from your desktop or from your iOS device, you can try to click each of the 8 buttons on each layout (In Context and De-contexualized). You’ll be amazed.
Why does it look a little more complex than you said?
That’s true, this free downloadable version is a little more complex than the one we presented last year. Here is why:
A great part of the complexity is there to be able to create records in the FMSDIFM table without changing layout. It is not directly linked to the technique itself. With the ’old’ version (which is still available), you could simply insert a URL, as complex, long, full of special characters… the system was doing the job, but it was to complex to deploy. We hope that FileMaker will soon allow ExecuteSQL to create records using INSERT INTO, but for now we have to deal with this limitation.
OK, so now the communication with the server is easier (it doesn’t require an installation) but it requires a little more adaptation in your solution.
Here are the things you need to do in your solution.
That’s it. FMSDIFM is installed.
Now that your solution is ready, you must reorganize your scripts a little. Remember: you don’t need to do everything using FMSDIFM. Try to start with the heavy scripts with loops.
This is it. Your client side script will now call server scripts and receive a result.
As you will soon discover, benefits are simply huge.
Of course, by offloading the client and having CPU/data intensive tasks performed on the server, the performance is increased dramatically, as this demo file illustrates. But there are number of other benefits, among which:
There are still limitations that you should be aware of:
We hope that you will enjoy using FMSDIFM. We’ve worked hard to make it available for you and free of charge. Please help us improve it, and feel free to mention us somewhere in your interface.