简体   繁体   中英

Microsoft Dynamics (Navision) vs C# .NET

I am an experienced C# / .NET developer and recently been offered an opportunity to become Microsoft Dynamics (Navision) developer (training, certification etc will all be paid for by employer). I've never been involved in anything to do with this Dynamics so I wanted to ask what is like to be a Dynamics developer in comparison to C#/.NET developer. I have compiled a list of things that I am interested to know before I make that decision. Please feel free to edit the list.

C# / .NET

  1. IDE: Visual Studio
  2. Language: C#
  3. Application domain: web based or desktop based
  4. Business domain: any industry
  5. Good career progression and easy to change job
  6. etc...

Microsoft Dynamics

  1. Relatively closed market (compared to .NET)
  2. Not as many jobs out there
  3. The IDE (or development environment) is terrible compared to Visual Studio, I might even prefer to work in notepad
  4. What benefits does Dynamics customers get in comparison with custom built application?

Thank you!

My own background is as a .NET developer using mostly C# and lately ASP.NET MVC. I've also been a Dynamics NAV developer/consultant/architect for about 3 years now.

The Dynamics NAV world is quite a small one and to be honest it's neither growing nor shrinking. I've heard of a few places recently moving from other ERPs to NAV and just as many moving away from NAV.

I attended a briefing at the Microsoft Executive Briefing Centre in Vedbæk (Denmark) earlier this year and met with the Dynamics NAV GM as well as some Dynamics NAV PMs and developers (ie the devs that write the actual NAV app) and the roadmap they have for the product is really exciting - there's going to be a huge focus on HCM and improving some of the financials over the next couple of versions.

In terms of day to day working with NAV it's a bit of a paradigm shift alright. As you mention, the IDE is absolutely terrible. They only added syntax highlighting recently and there's no real intellisense or any of the modern conveniences IDEs today offer. Having said that, you can do some tremendously powerful stuff by combining native NAV objects with add-ins, etc. and they've really improved some of the scaffolding tools to help with development.

Financially, NAV developers do pretty well because they are reasonably rare. NAV solutions architects and consultants do even better. You profile doesn't state where you are but I know in Dublin the starting salary for a NAV developer is around US$60k and in London it's about US$65k.

The job market is much smaller than that for C#/.NET devs but jobs tend to be a bit more secure and there is a growing market for customers hiring in-house NAV devs rather than only partners/providers hiring devs and consulting them out to customers.

I personally wouldn't see it as a binary choice between C# and NAV. Sure, your title may be NAV developer but if you're using some of the later versions of NAV then you may still do a lot of C# development writing add-ins, etc. It's also a fantastic opportunity to brush up on your SQL knowledge as writing/optimising well performing code in NAV requires a reasonably deep knowledge of SQL and how queries get executed handled right the way through the process.

Do you have any more specific questions?

I would always recommend that if you have the opportunity to have an employer cover NAV development or NAV implementation training if your employer is offering to cover the cost of this. As already highlighted NAV is a niche market and Microsoft is aggressively pushing this globablly (I think at last count Microsoft marketing materials showed 70,000 customer sites and over 1 million users on NAV).

I do not think that NAV and .NET development are exclusive in any way - actually if anything having knowledge of both development languages and development environments makes you much more valuable. As of the NAV 2009 R2 Release there are now many more ways that external applications, APIs and .NET can be integrated with any NAV process using any combination of: web services, .NET Controls in the Role Tailored Client and finally accessing native .NET types and classes via .NET Interop. Basically if you know C# or .NET you can use that natively in the NAV environment now. So if you understand the .NET framework and NAV you can utilize the best of both worlds when building any solution for your customers/clients.

Two points I would highlight for any future/current NAV developer (imho):

  • NET knowledge will be critical in the coming releases as NAV moves more toward .NET/Visual Studio type integration. As the recent changes in the R2 release demonstrate they are giving developers much better tools and if you know both .NET and NAV (C/AL) programming than you are very well situated to architecht and build best of breed solutions.

  • It is crucial that you be able to understand the application workflow and business logic. Eg. A developer who understands how a Sales Order works through the various stages of unposted and posted steps is much more useful than a developer who needs to be told exactly what to build by a business analysts. While this does take time if you're new to NAV, make sure that you take the time to understand and get to know the document structures and transaction workflow while you are writing your code or building reports.

I know this is getting long winded - but to answer your questions specifically:

  1. The market is opening up as current (and hopefully future) releases have more integration and .NET connection options. Microsoft is pushing NAV integration with CRM, online payment processors and web services.

  2. There may not be as many jobs, but they're global - there are many in the EU, Australia, New Zealand (I lived there for 2 years and my employeer paid for the move). North America has much lower NAV penetration so there are not as many jobs here (but its growing). So if you want to work and travel this can be great, also as there is smaller talent pool of specialized NAV resources the laws of supply and demand dictate that your going rate is higher than a .NET developer. Here in Canada senior NAV resources can be paid in excess of $100K CAD (which at todays exchange rate is actully $102K USD).

  3. Yes the IDE sucks! - but it is getting better with each release. (I HATE this about NAV)

  4. A key benefit (from a back end perspective) is being able to rapidly develop and deploy business logic and functionality. The NAV platform has integrated security out of the box and provides enough structure such that you can develop rich applications very, very quickly. (I LOVE this about NAV).

Regarding your points:

  1. While .NET is a way of generic development, NAV is a proprietary software for particular purpose (ERP). Hence, the market is pretty closed indeed, you need your development licence to do anything, which in turn requires involvement with Microsoft or being employed with a MS partner. While closed, the market is somewhat, so to say, an elite one..? At least that's how people tend to feel there.

  2. Jobs - maybe not as many in absolute numbers, but NAV people are heavily demanded, and the demand has constantly exceeded the supply for as long as I remember (10 years). Here in Europe you can easily get hired in a week, relocation paid. The jobs are all reasonably paid. Should also note that NAV is a best-seller in Europe, not so much in US, where Dynamics GP dominates.

  3. IDE does not matter. Lacking an intellisense of sorts might be a shock to a newbie, but you get over it in a month or so. Developing in NAV is so easy technically that you don't need a good IDE. What you need instead is a good understanding of how NAV works conceptually, what patterns and data flows are used, and build your things accordingly. The closer you are, the better off you are.

  4. Customer benefits - "best practice" functionality is there on day 1, speed of getting the rest of things done, consistent use of patterns, ie "things should work THIS way" (unless the developers create mess by breaking them), avoiding vendor lock-in to some extent, since there are many NAV partners around, and should things go wrong, there is an option to change partners while staying with NAV.

All in all, don't expect either to do much coding with NAV or growing yourself as a tech-developer. Technically, NAV is something between MS Access and a big LEGO of standard functionality and patterns of doing things. What all companies are actually looking for is not technical developers, but developing consultants, as most of the work is typically related to one-off customizations (big and small) as opposed to standard application/module development and releasing versions. So you will be most valuable to your employer once you not only learn to code (which is easily done in 3-6 months), but also understand how the application works, the proper ways of customizing, and most importantly - the do's and dont's and how to go around issues/change requests. Once you can do it on your own with confidence, you're a demanded NAV expert, and may feel, ugh, elite, yet the journey may take 5-10 years, during which you mostly learn the specifics of NAV, a proprietary system.

So the choice is yours. Go for NAV if you feel an ambition to become a valued business IT dev/consultant delivering visible business value. Don't go for NAV if your heart is at things like performance, neat code, version control, algorithms, and top-notch technology.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM