Learn Dynamics CRM development with these great resources

CRM crm2015 crm2016 crm2013 dynamics crm learning developer development training advice

A regular question I get asked is: I'm new to Dynamics CRM development, what training materials you would recommend?

Training materials

Of course there's no one-size-fits-all answer to this, it all depends on your background in software development. The following resources are a great place to get started:

CRM Help and Training

Tools

What tools do you need? To get started all you need is a web browser and a CRM Online trial. If you're going to write server-side code you'll need Visual Studio and the SDK Plugin Registration tool. Of course Visual Studio makes it easier to write JavaScript and other web resources. You don't need to go to the trouble of setting up virtual machines and all that jazz straight away, however be mindful of you're destination environment - for example, targetting CRM 2013? Probably want to go the VM approach rather than using CRM Online for your development environment.

Community developed tools you'll want to get familiar with:

  • XrmToolbox - invaluable for SiteMap editing, the other modules are all excellent bonuses.
  • Ribbon Workbench - much better than editing the XML by hand!
  • Dynamics XRM Tools - a pretty handy set of tools in a managed solution you can install into your CRM Organization
  • Dynamics CRM Developer Extensions are a community alternative to the SDK tools for Visual Studio. If you're starting out, probably best to stick with the SDK tools because a lot of the guidance and instructions are for those tools - then when you know what you're doing check these out.

Blogs

Blogs can be hard work for people new to Dynamics CRM, because often the content is for other experienced developers. However, Surviving CRM often covers great in-depth reviews of CRM functionality and minimal-code how-tos for solving problems. Hosk is also a pretty prolific Dynamics CRM blogger with good content for developers.

A great index of other Dynamics CRM blogs is found at the Dynamics Community site.

Community

  • The Dynamics CRM Community Forums are a great place to ask questions, and also find answers for questions that have been asked before.
  • CRM User Groups - find out if there's a CRM User Group near year, and find virtual events if you can't make it in person.
  • Facebook - there's a Dynamics CRM group on Facebook with plenty of clever people as members if you want to ask questions

Other tips

The other bit I would add to this for .NET Developers getting in to Dynamics CRM: do you really need to write code at all? Of course this is counter-intuitive, as a developer you'll naturally want to write code. But often this ignores the powerful functionality you get out of the box with Dynamics CRM. With the rapid pace of releases for Dynamics CRM, there are more and more features out of the box that can solve your problem without having to code. Also, this rapid pace of releases means more upgrades and regression testing of configured functionality. The less code you write, the smaller the target for regression testing when upgrades come along.

One other bit of guidance - learn about the out of the box entities. Some of the out of the box entities have special features / functionality / magic that you you do not get with custom entities. So when configuring a solution, it sometimes makes more sense to reuse an existing entity - either "as is", or rename it and repurpose it for your solution.

Don't reinvent the wheel. Check out the Dynamics CRM marketplace for solutions to your existing problems. Check CRM Tip Of The Day. Reuse existing solutions for auto-number generation, workflow extensions and other common problems. Part of the return on investment for using Dynamics CRM as a business platform is being able to rapidly configure it to meet your business needs. If you try and solve everything by reinventing the wheel and writing code that's been solved hundreds of times before you'll undermine that. As a developer you exist to solve business problems. If that means reusing an existing solution is the most effective way to do that, then swallow your ego and install that solution. Stand on the shoulders of giants mentality here, business users don't care if the way you'd code that solution is different to the way the 3rd party solution is written - they care about the system assisting and empowering them to go about their daily business. If you can get them results quicker with someone else's code, then do it. /rant.

I hope you find this helpful, let me know in the comments if there's other things you'd recommend.