Over the past several posts we’ve discussed MVC and FileMaker. We’ve talked about why you ought to consider implementing this pattern into your system. We’ve looked at each piece of MVC (model, view, and controller) and how it might work within FileMaker. Hopefully, you’ve seen some of the benefits and practicality of using MVC in FileMaker.
Separation Model
One further little tip here. When you combine the power of MVC with the power of the separation model you get some additional benefits.
The data file can act almost completely as your model. You can keep the file hidden, and when you perform scripts within the file it is invisible to the user (no more hiding off-screen windows or window freezes and layout changes to do the model’s background work). The relationships in this file only have to be the ones that relate to how your model works, and they can usually be kept very simple and clean without requiring the waters to get muddied by relationships for view or control work.
The interface file only needs the relationships that will make the views work properly. If no view of a particular model relationship is necessary, don’t add it. Your scripts can all be contextualized for the layouts in the interface, with no need to worry about the context for model activity.
Example
We’ve talked about giving an example file to highlight some of what we’ve discussed. Well we’ve put a little time and have a sample file ready. It’s a barebones look at how MVC might be implemented in FileMaker. As such, it’s not intended to be a full functioning system. For example, it needs better error trapping and handling. Also, as an demonstration file, the system and it’s functionality is a bit contrived. It’s not trying to show an ideal interface, but rather serve as a platform to illustrate some of the pieces of MVC.
We implemented an abstraction component in our model. This is a set of scripts that does a lot of the heavy lifting for you. It just requires layouts set up for model use (basically having an id name on the object that is the id for the table) and it handles obtaining and resolving context for the model, etc. That isn’t necessary for an MVC pattern, but it’s something we’ve incorporated into some of our systems to make things a bit easier.
So, without further ado, here’s the FileMaker demo file for your MVC enjoyment.
As with any development team, our implementation of MVC seems to improve and get more refined each time we do it. So this is, as they say, a work in progress. We’d love to hear your thoughts on how it could be improved.
Bottom Line
The MVC pattern is something we are adopting here in much of our work. It keeps things more organized, allows us to make changes in one place and have that change work everywhere, and it makes the process of adding functionality simpler. Multiple developers working on the same system can more easily understand what is happening within any given system if they both follow the MVC pattern. It seems to just make sense.
Your Turn
You’ve just completed reading our series on MVC and FileMaker. We tried to make it clear at the beginning that we don’t know everything there is to know about the subject and would love to hear from you. So, it’s your turn again. What do you think?
Hi folks
I’ve downloaded the demo file and been trying to get my head the MVC structures.
The part of the demo that should allow editing of a system part doesn’t seem to work for me. It appears that the script C.Computer.EditSystemPart() is failing – I thought it would be trying to update the existing system part, but the comments half way though suggest that it is trying to add a new system part. Whatever it is trying to do, the edit doesn’t work. Is there something else I need to do to get it working?
Thanks
Brian
Brian,
I think you are right, it looks like there may be a bug in the sample file code for edit. Let us take a look at it and we’ll post a fix as soon as we can.
Court
OK, we found the bug. A mistake on our part. When we put the file up a custom function didn’t get copied over. The download should be all good now.
Thanks for pointing it out.
Surely I am doing something wrong, but I can’t open the mvc.fmp12.zip file to review the example.
Chuck,
You are very correct. We moved to a new site and for some reason that file didn’t get moved correctly.
It’s been fixed now. Thanks for letting us know!
Court
Clicking on link gets 404 error, and right click to download reports “Failed – no file”
Thanks !