Some notes for Domino Application Developers

I have just finished up judging all the entries for the OpenNTF Development Contest and I must say there were some great entries, it certainly wasn’t an easy job trying to pick out the best so I went about my scoring criteria slightly differently. I started by giving everybody full points in each category and then deducted points based on different things that I found. Unfortunately a lot of the apps didn’t pass some of what, in my opinion, are fundamental points when it comes to application development in Notes/Domino.

Here are some of the points that developers of full applications should look at for future contests.

Learn how to use templates
All of the entries that I looked at were NSF files that you had to copy to the server and sign. While this is no problem for the initial deployment of an application what happens when you have an upgrade? Full applications should be distributed as an NTF with all it’s template information filled in. Then your deployment instructions are copy the NTF to the server, sign and create a new database based on the template, for an upgrade it is copy to server, sign and do a refresh design of your production application.

Set a default ACL in the template
When using a template based approch for application you can set up the default ACL for databases created from the template that is different from the ACL used for the NTF file. This is done by adding your default ACL entries to the NTF but surrounding them with square brackets. So if the ACL entry -Default- needs to have no access then you would add [-Default-] to the ACL of the template with those rights. This helps the admin ensure that when a new databases is created from the template the ACL is 90% configured correctly.

Detect when your app is not configured
Some of the applications in the contest needed configuration to be done before they could be used successfully however in some cases the applications main homepage appeared with error messages instead of content. Rather then let these errors be displayed you should write some routines to detect if the configuration has been done or not. If not, redirect to a configuration page or a page explaining that the app needs to be configured. If you need a role in the ACL to configure the app then detect that also and let the person know if they don’t have the role. If an admin sees errors on the first run of an app there is a higher probability that they will just delete it as not working correctly.

Test your app in XPiNC and disable it if if you don’t support XPiNC
When you create a new application from a template the first thing that the Notes client does is try open the database. If you have set the launch options for the notes client to open your main XPage then you should test to make sure that it works in XPiNC. A few of the entries just produced an Error 500 message on screen when they initially opened in the client. My suggestion here would be to create a traditional ‘page’ design element that explains that the application should only be used from a web browser pointing to the server.

Documentation should be in the archive from OpenNTF
A number of the applications in the contest didn’t have any documentation in the file downloaded from OpenNTF. No setup instructions, no usage instructions etc. When the app was finally running on the server there was a link to the developers website where they had either documentation or a blog posting explaining the app. This is not documentation, your site could be down or you move to a different system.

These are just a few of the things that I looked for when doing the judging and I’ll be the first to admit that sometimes I cut corners and forget to do things like the default ACL on full apps but that last bit of fit and finish is all that stands between your app being used in a corporate environment or been deleted because it didn’t work immediately.

Oh and if you submitted a custom control to the contest your not going to get off easily, I’ll have some pointers for you in a following blog post.

Tagged with: ,
Posted in None
5 comments on “Some notes for Domino Application Developers
  1. David Leedy says:

    I think these are great suggestions.


  2. Paul Withers says:

    Also, speaking from experience, before deploying to OpenNTF, test your app from scratch. The app may work fine already populated but a new deployment may hit problems masked by subsequent development.


  3. Excellent point Paul, I forgot about that one and it is something I used to do with BlogSphere a long time ago. I’d take the template and create a new blank application from it and test it as if I had just downloaded it from OpenNTF.


  4. Fredrik Norling says:

    Templates is great the main problem with them is that no one uses them. They just rename them to nsf.
    Great suggestions both for the Custom controls and applications. I’ll have them in mind when I do a new release.


  5. Thanks for this gooed adwise. We will transfer your points in our rollout process. Next version of myWebGate will cover this.


Comments are closed.

%d bloggers like this: