One for all
In recent months we have been busy working with the Microsoft Dynamics NAV 2013 R2 Community Technology Preview (CTP) to produce an add-in that will work with all NAV clients. I thought I’d share our experience of developing the add-in, how we engineered the solution and the benefits we see from this approach.
Some background
With the release of NAV 2013, Microsoft introduced a great new web client, but unfortunately there was no supported way for an ISV like us to extend it with extra functionality as we do for the Windows Client (formerly Role Tailored Client). However the good news is that with the release of R2 you can now target add-ins that work with the web client, and Microsoft has gone one better by enabling the same add-in to run on the Windows Client as well! So from a developer’s perspective, we can now engineer one solution that’s independent of whichever client the customer chooses – life just got simpler!
What we built
We’ve built a version of our Document Factbox for Zetadocs Express to allow you to drag and drop any file onto a record, store it in SharePoint and view the file from within NAV. I’ve included some screenshots of the Document Factbox on a sales order page in the web client. The close-ups show details for a document and also the menu options. The user interface is clean and intuitive, adopting the Office 365 style used by NAV.
Our new release also has endorsement from Microsoft. Marko Perisic, Principal Group Program Manager at Microsoft, says: “Equisys have produced a great add-in with Zetadocs Express which highlights the type of functionality that it is possible to achieve using the new cross-client extensibility in NAV 2013 R2.”
1: Document Factbox in the web client showing a sales order
2: Details
3: Menu options
Technical details
The solution is installed by putting a deployment package on the NAV server. This package consists of:
- A set of .NET dlls that contain the add-in interface and basic .NET types used for communication with the add-in
- An add-in resource zip file that contains a set of JavaScript files. These script how the add-in behaves and hook up with business logic implemented in the NAV objects and also an external web service
- A fob file that contains a NAV page part for hosting the add-in and a number of codeunits for the configuration and operation of the add-in
The add-in user interface is coded as HTML and JavaScript, with some AJAX code to call into web services and some JQuery to jazz up the interface.
We opted to use an external web service hosted on Windows Azure for the new functionality that we needed to write for the add-in. The benefits of this approach are that there are no extra deployment requirements for the customer and we can make changes to the code centrally if we choose to.
Development experience
Working with the NAV CTP has been very smooth, the initial delivery had some good documentation around how to create add-ins and once we got into the detail the support from Microsoft was helpful, specific and responsive.
Overall, the extensibility model is straightforward to use and we would recommend you give it a try.
Recommendations
If you are considering developing add-ins for NAV 2013 R2 then we’d recommend using the new extensibility model which has the following benefits:
- Reduced cost of ownership – with no client side install for the web client and ClickOnce for the Windows Client, it couldn’t be simpler.
- A single add-in that works on all clients – a single code base that reduces the cost of development and is more efficient to maintain
- Deployment of updates is simplified - updating the solution in one place on the NAV server.
Use ClickOnce deployment for the Windows Client: as the name implies it’s just a single click to deploy the client. Your add-ins are also ready to use without any further user configuration.
Additionally we’d recommend using Azure to host your JavaScript and web services to reduce the size of what you install in NAV and increase flexibility when making updates.
What next?
Once R2 is released we will be working to produce a final release of Zetadocs that fully supports R2 and will be including support for the web client too.
We also have a short video demonstrating Zetadocs on NAV 2013 R2 which you may find useful.