简体   繁体   English

Microsoft Dynamics(Navision)与C#.NET

[英]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). 我是一名经验丰富的C#/ .NET开发人员,最近有机会成为Microsoft Dynamics(Navision)开发人员(培训,认证等都将由雇主支付)。 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. 我从未参与任何与此动态有关的事情,所以我想问一下与C#/ .NET开发人员相比,成为Dynamics开发人员的感觉。 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 C#/ .NET

  1. IDE: Visual Studio IDE:Visual Studio
  2. Language: C# 语言:C#
  3. Application domain: web based or desktop based 应用程序域:基于Web或基于桌面
  4. Business domain: any industry 业务领域:任何行业
  5. Good career progression and easy to change job 良好的职业发展和易于改变的工作
  6. etc... 等等...

Microsoft Dynamics Microsoft Dynamics

  1. Relatively closed market (compared to .NET) 相对封闭的市场(与.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 与Visual Studio相比,IDE(或开发环境)非常糟糕,我甚至可能更喜欢在记事本中工作
  4. What benefits does Dynamics customers get in comparison with custom built application? 与定制构建的应用程序相比,Dynamics客户可以获得哪些好处?

Thank you! 谢谢!

My own background is as a .NET developer using mostly C# and lately ASP.NET MVC. 我自己的背景是作为.NET开发人员,主要使用C#和最近的ASP.NET MVC。 I've also been a Dynamics NAV developer/consultant/architect for about 3 years now. 我也是Dynamics NAV开发人员/顾问/架构师已有3年了。

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. 我听说最近有几个地方从其他ERP转向资产净值,而且还有很多人从资产净值转移。

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. 今年早些时候,我参加了位于丹麦Vedbæk的微软执行简报中心的简报,并会见了Dynamics NAV GM以及一些Dynamics NAV PM和开发人员(即编写实际资产净值应用程序的开发人员)以及他们的路线图。对于该产品来说真的很令人兴奋 - 在接下来的两个版本中,将会非常关注HCM并改善部分财务状况。

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. 如你所述,IDE绝对可怕。 They only added syntax highlighting recently and there's no real intellisense or any of the modern conveniences IDEs today offer. 他们最近只添加了语法高亮显示,并且没有真正的智能感知或当今IDE提供的任何现代便利。 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. 话虽如此,你可以通过将原生NAV对象与插件等结合起来做一些非常强大的东西,并且他们真的改进了一些脚手架工具来帮助开发。

Financially, NAV developers do pretty well because they are reasonably rare. 从财务角度来看,资产净值开发商表现相当不错,因为它们相当罕见。 NAV solutions architects and consultants do even better. NAV解决方案架构师和顾问做得更好。 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. 您的个人资料并未说明您的位置,但我知道在都柏林,NAV开发人员的起薪约为6万美元,在伦敦则约为65,000美元。

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. 就业市场比C#/ .NET开发人员小得多,但工作往往更加安全,而且招聘内部资产净值开发人员的客户市场不断增长,而不仅仅是合作伙伴/提供商雇用开发人员并咨询他们顾客。

I personally wouldn't see it as a binary choice between C# and NAV. 我个人不认为它是C#和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. 当然,你的头衔可能是资产净值开发人员,但如果你使用的是一些较新版本的资产净值,那么你仍然可以做很多C#开发编写插件等。这也是一个很好的机会来了解你的SQL知识在NAV中编写/优化性能良好的代码需要相当深入的SQL知识以及如何在整个过程中处理查询。

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). 正如已经强调的那样,NAV是一个利基市场,微软正在全力推动这一市场(我认为微软的营销材料显示有70,000个客户站点和超过100万的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. 我不认为NAV和.NET开发在任何方面都是独一无二的 - 实际上,如果任何了解开发语言和开发环境的东西都会让你更有价值。 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. 从NAV 2009 R2版本开始,现在有许多方法可以将外部应用程序,API和.NET与任何NAV进程集成,使用以下任意组合:Web服务,角色定制客户端中的.NET控件以及最终访问本机.NET .NET Interop的类型和类。 Basically if you know C# or .NET you can use that natively in the NAV environment now. 基本上,如果您了解C#或.NET,则可以在NAV环境中本地使用它。 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. 因此,如果您了解.NET框架和NAV,您可以在为客户/客户构建任何解决方案时充分利用这两方面的优势。

Two points I would highlight for any future/current NAV developer (imho): 对于任何未来/当前的资产净值开发人员(imho),我要强调两点:

  • NET knowledge will be critical in the coming releases as NAV moves more toward .NET/Visual Studio type integration. 随着资产净值更多地转向.NET / Visual Studio类型集成,NET知识在即将发布的版本中将至关重要。 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. 由于R2版本最近的变化表明它们为开发人员提供了更好的工具,如果您了解.NET和NAV(C / AL)编程,那么您将非常适合使用architecht并构建最佳解决方案。

  • 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. 如果您是NAV的新手,这确实需要时间,但请确保在编写代码或构建报告时花时间了解并了解文档结构和事务工作流程。

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. 随着当前(并且希望未来)版本具有更多集成和.NET连接选项,市场正在开放。 Microsoft is pushing NAV integration with CRM, online payment processors and web services. 微软正在推动NAV与CRM,在线支付处理器和Web服务的集成。

  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). 可能没有那么多工作,但它们是全球性的 - 欧盟,澳大利亚,新西兰有很多工作(我在那里住了2年,而我的雇主为这一举动买单)。 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. 因此,如果你想工作和旅行,这可能会很棒,同时由于专业资产净值资源的人才库较少,供需规律要求你的开工率高于.NET开发人员。 Here in Canada senior NAV resources can be paid in excess of $100K CAD (which at todays exchange rate is actully $102K USD). 加拿大的高资产净值资源可以支付超过10万加元(按今天的汇率计算为10万美元)。

  3. Yes the IDE sucks! 是的IDE糟透了! - but it is getting better with each release. - 但每次发布都会越来越好。 (I HATE this about NAV) (我讨厌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. NAV平台开箱即用地集成了安全性,并提供了足够的结构,使您可以非常快速地开发丰富的应用程序。 (I LOVE this about NAV). (我喜欢这个关于NAV的事)。

Regarding your points: 关于你的观点:

  1. While .NET is a way of generic development, NAV is a proprietary software for particular purpose (ERP). 虽然.NET是一种通用开发方式,但NAV是一种特殊用途的专用软件(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. 因此,市场确实非常封闭,您需要您的开发许可证才能做任何事情,而这又需要与Microsoft合作或与MS合作伙伴一起工作。 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). 工作 - 可能没有绝对数量那么多,但资产净值人员需求量很大,而且只要我记得(10年),需求就会不断超过供应量。 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. 还应该注意到,NAV在欧洲是最畅销的,而在美国,动力学GP占据主导地位。

  3. IDE does not matter. IDE没关系。 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. 在技​​术上开发NAV非常简单,您不需要一个好的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. 您需要的是很好地理解NAV如何在概念上工作,使用什么模式和数据流,并相应地构建您的东西。 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. 总而言之,不要指望用NAV进行大量编码或者让自己成长为技术开发人员。 Technically, NAV is something between MS Access and a big LEGO of standard functionality and patterns of doing things. 从技术上讲,NAV是MS Access与标准功能和服务模式的大型乐高之间的东西。 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. 一旦你不仅学会编码(这在3-6个月内很容易完成),你也将对你的雇主最有价值,同时也了解应用程序是如何工作的,正确的定制方式,最重要的是 - 做的和不做的以及如何解决问题/变更请求。 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. 一旦你可以自信地做到这一点,你就是一个需要的NAV专家,可能会觉得,呃,精英,但这个旅程可能需要5到10年,在此期间你大部分都会学习NAV的细节,这是一个专有的系统。

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. 如果您有志成为有价值的企业IT开发/顾问,提供明显的商业价值,那就去寻求资产净值。 Don't go for NAV if your heart is at things like performance, neat code, version control, algorithms, and top-notch technology. 如果你的内心是性能,整洁的代码,版本控制,算法和顶尖技术,那就不要去寻找资产净值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何通过C#从asp.net应用程序向Microsoft Dynamics Navision2016发送请求 - How to Send Request to Microsoft Dynamics Navision2016 from asp.net Application by C# 我可以在.NET / C#中为Microsoft Dynamics AX进行编码吗? - Can I code in .NET/C# for Microsoft Dynamics AX? Microsoft Dynamics CRM C#插件以使用Jquery和Ajax - Microsoft Dynamics CRM C# Plugin to use Jquery and Ajax 是否可以使用c#更改Microsoft Dynamics导航页的属性? - Is it possible to change the properties of a Microsoft Dynamics NAV page using c#? C#Microsoft Dynamics GP将新员工添加到taCreateEmployee - C# Microsoft Dynamics GP add new employee to taCreateEmployee Navision C / AL使用C#COM dll创建错误 - Navision C/AL Create error with C# COM dll 尽管使用了Microsoft.Net.Compilers nuget包,但VS2013上的C#6错误消息 - C# 6 error messages on VS2013 despite using Microsoft.Net.Compilers nuget package 在VS 2010 C#.NET Windows窗体中重现Microsoft注册表编辑器“编辑二进制值”窗口 - Reproduce the Microsoft Registry Editor “Edit Binary Value” Window in VS 2010 C# .NET Windows Forms 如何有条件地为Mono与Microsoft .NET编译C#? - How can I conditionally compile my C# for Mono vs. Microsoft .NET? Dynamics CRM & .NET (C#) 为所有行设置字段值 - Dynamics CRM & .NET (C#) Set field value for all rows
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM