By Daniel Wood, 6 July 2015
Developer Assistant is an application produced by Chris Dragon and his company Dracoventions. It has been around for a couple of years, and version 3.0 has recently been released. This is the version we will be reviewing.
The Developer Assistant application is bundled with a nice easy to use installer and essentially is a plugin. You can choose to install it for just yourself or for all users, across all versions of the FileMaker platform (7v3 to 14).
As of writing this review, it is not currently available for Windows platform given a recent change from win32 to .net - but a windows version is expected soon and you can download beta versions as they come out.
The name is a good start! This tool is for developers first and foremost. It is a tool for searching your schema: fields, scripts, functions, relationship graph and so on. In addition to this it also contains a couple of other very cool developer-centric features which we'll cover. In essence this that missing allen key in any developers toolbox.
So why would you want to search these areas? Perhaps this is best illustrated with a demonstration.
Imagine a solution with hundreds of scripts. In these scripts are numerous broken field references that need fixing. In FileMaker, a broken field reference generally contains the string <field missing> if any script step references a missing field.
So how can we find all of these? There are a few ways to this point that developers have done:
Developer Assistant gives you a really quick way to not only find missing references, but to work your way through them fixing each.
This is done by first opening the script workspace. Developer Assistant searches in whatever your current context is - be it the script workspace, field definitions dialog, an individual calculation, or a specific script.
Here in the Developer Assistant window we can type in our search string. We have a few options here. First we can choose to just find references to the search value, or replace (more on this later). We can choose to step through results one at a time using the next/prev buttons, or we can just choose to 'Find All' to list every script step where this search string is found. This is the option we are going to run now.
This is what you get after finding all. The search process can take a little time depending on how many scripts you have. This is because it will iterate through each script, opening it in the script workspace and searching, before moving onto the next (currently you cannot have it search a specific subset of scripts)
Each result is a single script step found where its contents matches the search string. As you can see we have quite a lot! The beauty of this now is that you can double-click on any result to take you directly to that script, and that script step so you can fix. You don't need to locate the scripts yourself, Developer Assistant does all this for you.
In fact, when it comes to missing references, Developer Assistant has thought of it and given you an option to do this:
By clicking the search icon you are given a number of useful options. You have some powerful search options when it comes to how you conduct your search query. The most powerful of these being the ability to use regular expressions. The 'Find Missing References' is a shortcut way to achieve what we did in our example. You also have a history of previous searches.
Consider the possibilities:
This is so great! Because it is happening right away, you can very quickly address issues in your solution without producing a DDR or PDF of your schema.
As we mentioned earlier, Developer Assistant can effectively search most schema dialog boxes for a given piece of text, examples include:
This last one gets us particularly excited!
Previous versions of the Developer Assistant have allowed you to search the graph but this was somewhat limited. It relied on you entering the entire TO name if you wanted to go direct to a table occurrence, otherwise it worked much like the normal search on the graph where you have to cycle through matches.
With Developer Assistant 3.0 introducing a list of search results, we can essentially produce a list of all of our table occurrences for easy selection of any TO on the graph - perfect for large relationship graphs or legacy solutions where you are tasked with untangling a spiders web!
Above is a search on one of our solutions relationship graphs. Because we use a naming convention where every table occurrence contains an underscore, by simply searching for an underscore we produce a list of every table occurrence on the graph.
Double clicking on a result takes you directly to that occurrence on the graph with no visible cycling through results, it is brilliant! You can then rename the TO or do whatever you want. When it comes to tidying up graphs or managing large graphs this is an invaluable tool. If you use an anchor-buoy structure then with consistently named anchors you can turn the results into a list of your anchors for easy access to table occurrence groups.
Version 3.0 of Developer Assistant has introduced a powerful replace function to complement the find function. This function is available in the Advanced version of Developer Assistant only, but is well worth the cost of the upgrade!
Effectively you can update any piece of text in the schema area you are searching. Scripts is the obvious candidate. Imagine you are tidying a solution and wanting to rename some variables. You can use this to find all occurrences of a global variable and change its name to something else.
Here in this example we are looking for 'Daniel Wood' and replacing it with the text 'Weetbicks'. We are just searching one script and the name has been found as part of a comment line. Just hit the replace button to update the text, it's that simple!
The core of Developer Assistant is searching your schema and having easy access to the results for editing or replacing. A hidden gem in Developer Assistant however is this little button in the lower left corner:
Welcome to your in-line, evaluate-anywhere data viewer! This little beauty allows you to evaluate any selected calculation no matter where you are in your solution. Imagine you are editing a complex calculation in a field definition. If you want to test it to make sure it is working you can always copy it, save changes, and paste it into the data viewer. Doing this generally means you have to adjust some field references so it works in the data viewer, not to mention you have to save all your schema changes before testing.
Using the Evaluate button you can instantly evaluate your calculation without ever leaving your calculation dialog!
This little feature alone will save you enough time over a while to justify getting Developer Assistant! You can use this in any calculation dialog, so custom functions, scripts, field definitions etc. You'll quickly find that the data viewer plays second fiddle to this little tool.
Developer Assistant does more than what we've covered in this review. Windows users get a few other nice features such as the ability to move multiple selected fields with a click of a single button.
All features of Developer Assistant 3.0 are listed on the Dracoventions site here.
Developer Assistant 3.0 will cost you $195 USD for a single license ($395 USD for advanced). They also offer 5 and 10 license plans where you can save up to 60% per user if buying in bulk. Finally they offer an unlimited license for $1,995 USD which would be perfect for large development companies.
We think the price is fully justified by the product and what it can offer. For developers time is money, and if you can save 30 minutes here and there by using Developer Assistant as opposed to alternate methods then the product will pay for itself in no time. The Evaluate function alone is worth the price of admission! We highly recommend this product. We use it ourselves and has become a valuable tool here at Digital Fusion.
You can download a free 30 day trial from the Dracoventions website - try it out and you'll be hooked!