Why adding .Net can be dangerous, and why you need to stop adding them to components

For several version of Dynamics NAV you've been able to add .net components into the system, to do things that you cannot do with the core Dynamics NAV development environment. On occasion this can really be useful and provide a way to add capability that otherwise would be impossible.

So why, in my headline, have I described it as dangerous? Well .net components are not written in the same C/AL language that anyone with a development licence can come along and access and therefore maintain. They are written in languages like C# and compiled into executable code that is then added to your system. Usually you will never get the source code to that component.

This means that you have to return to the original writer to get any maintenance or updates done and that locks you into that relationship. Some Dynamics NAV partners have worked out that this is a great way to tie in customers without always giving the great service that means you would want to continue using them.

For example one UK Partner tries to get its clients to use a .net component that replaces standard Dynamics NAV’s role centre with a more colourful and flexible version. However, I'd argue that Microsoft have improved theirs anyway so it's as good as a match and that you should stick to standard. What does it add to your bottom line to use this non standard display?

For me the ability to move service partners if one of the major strengths of Dynamics NAV. I know in the partner I work, in having that threat means we are constantly reviewing what we do to make sure it's the best it can be. I hope that complacency would not set in if we knew that our customers couldn't go to another partner, but I'm not sure that over the years it wouldn't creep in.

So what should .net components be used for? Well I’ve used them for lots of things but specific examples are where I've need to talk to other systems. Weighing scales for instance often have an interface that Dynamics NAV cannot talk to directly. By putting a .net component in there it was easy. And when we use one of these we leave the source code with the customer, they have paid for its creation so I believe it's their intellectual property anyway.

One other point to note is that JavaScript is the best add-in language/technology to use these days. Using Java means that it will work in any of the clients from the full windows client, to the web browser, or the tablet. While you may not use them now, it’s part of future proofing yourself.