Turn your .NET Developer into a Dynamics CRM Developer

Course Description:

If you are looking to get started with Dynamics CRM development, and are looking for an instructor-led, hands-on workshop, then let me introduce you to Turn your .NET Developer into a Dynamics CRM Developer.

In case you did not know, Microsoft decided to only offer the Extending Dynamics CRM course via eLearning, starting with Dynamics CRM 2013. eLearning, which is a self–study program, is great for many people, but I think students gain a tremendous amount of learning and understanding from having an instructor who works with Dynamics CRM development on a daily basis. This student-instructor interaction combined with the ability for the student to ask questions and obtain clarifications, makes this course all the more valuable.

Download a PDF version of this document here.


This class is taught by Mitch Milam, nine–time Microsoft Most Valuable Professional for Dynamics CRM and an independent consultant specializing in Dynamics CRM architecture, development, and training.


We have taken the topics normally covered by the official Microsoft Extending Dynamics course, and expanded their depth quite substantially. Instead of a three–day course, this is a five–day course with most of the extra content being the addition of a large number of hands–on labs. The information covered is relevant to both Dynamics CRM 2013 and 2015.


Monday, August 31st through Friday, September 1st.

Class starts at 8:00am CST and will last five or six hours per day, depending on the day. Please budget the entire day so that you have time to complete the homework assignments.


This is an Internet-based workshop. Classroom time and discussions will be facilitated using GotoMeeting. Each student will be given their own virtual development environment for the duration of the course. This will allow for the completion of labs and homework without causing conflicts with the other students.

Ready to Make the Investment?

The price per student is $2,495 with the class limited to 20 students.

Eventbrite - Turn your .NET Developer into a Dynamics CRM Developer (August)

A 10% discount applies for two or more developers.

We are also offering a payment plan of $239.00 per month, for 12 months.

Contact me (mitch at xrmcoaches dot net)  for more information on either of these options.



After taking this course, the student will have familiarity with, and a better understanding of, the basic components and technologies that every Dynamics CRM developer needs to know.


Extending Dynamics CRM is designed for developers who have an existing knowledge of Dynamics CRM who need to better understand the tools, techniques, and processes required to develop solutions with Dynamics CRM.

The Benefits

This is your chance to learn first–hand from one of the foremost Dynamics CRM consultants in the business. Learn the tools and techniques that will make you a better Dynamics CRM developer and in the process, Mitch will give you exclusive access to his development toolbox, which contains tools and libraries to help increase your developer productivity.

You will not just learn the how of Dynamics CRM development, but also the why and when.


  1. It is assumed that you already know and have used Dynamics CRM 2011, 2013, or 2015.  This is not an introduction to Dynamics CRM so you will need to understand how the product actually works.
  2. This is a class for developers, which means you need to know how to use Visual Studio, .NET and JavaScript.
  3. You must be prepared to learn. This is a hands-on class and you need to be prepared and willing to do a lot of development work.
  4. You need to be willing to have fun.  Having fun makes the class better for everyone.

Course Outline

Day 1: Introduction to Dynamics CRM Development

The first day we will cover the basics of Dynamics CRM development including:

  • Dynamics CRM Architecture
  • Extensibility points
  • Working with the CRM SDK including:
    • Creating, retrieving, deleting and updating data
    • Executing requests
    • Generating early-bound classes using the CrmSvcUtil application
  • Lab 1: Show the available CRM organizations using the Discovery Service
  • Lab 2: Use the Discovery Service to retrieve and print details of the first CRM organization
  • Lab 3: Create a record using the Late Bound technique
  • Lab 4: Create a record using the Early Bound technique
  • Lab 5: Update a record
  • Lab 6: Delete a record
  • Lab 7: Retrieve a single record
  • Lab 8: Perform a query using the RetrieveMultiple operation
  • Lab 9: Execute a WhoAmIRequest
  • Lab 10: Assign a record using AssignRequest
  • Lab 11: Create a record using CreateRequest
  • Lab 12: Update a record using UpdateRequest
  • Lab 13: Delete a record using DeleteRequest
  • Lab 14: Retrieve a single record using RetrieveRequest
  • Lab 15: Perform a query using RetrieveMultipleRequest
  • Lab 16: Combine operations into a single ExecuteMultiple
  • Lab 17: Perform a Data Import operation
  • Lab 18: Retrieve a record using the Latebound technique


Day 2: CRM Query Strategies

On day two we will be working with the various data retrieval technologies built into the Dynamics CRM SDK including.

  • QueryExpression
  • QueryByAttribute
  • FetchXml
  • SQL Filtered Views
  • Lab 1: Select All Contacts using a QueryExpression
  • Lab 2: Select All Contacts from Washington State using a QueryExpression
  • Lab 3: Working with ColumnSets
  • Lab 4: Sorting Results
  • Lab 5: Returning the Top 5 Contacts
  • Lab 6: Specifying Advanced Filter Criteria
  • Lab 7: Paging through a result set
  • Lab 8: Performing joins between tables using linked entities
  • Lab 9: Select All Contacts in Washington State using QueryByAttribute
  • Lab 10: Select All Contacts Named “Sample” using LINQ
  • Lab 11: Creating Records with LINQ
  • Lab 12: Updating Records with LINQ
  • Lab 13: Deleting Records with LINQ
  • Lab 14: Select All Contacts using FetchXml
  • Lab 15: Count Contacts by Owner using FetchXml
  • Lab 16: Select Account Information using Filtered Views


Day 3: Plugins and Custom Workflow Activities

Day three will find us:

  • Discussing the how to determine when JavaScript or a plug–in is the best option for any given situation
  • Developing plugins and custom workflow activities
  • Working with the Plug–in Registration Tool
  • Lab 1: Create an Autonumber plug–in using today’s date and time
  • Lab 2: Create an Autonumber using a QueryExpression
  • Lab 3: Create an Autonumber using SQL
  • Lab 4: Create Related Records for a parent record
  • Lab 5: Generate a Formal Name
  • Lab 6: Handling Exceptions
  • Lab 7: Create a Plug–in which can be used with Multi-Entities
  • Lab 8: Monitoring Plug-In Depth
  • Lab 9: Auto-Assign Records
  • Lab 10: Zip Code Lookup
  • Lab 11: Child Record Rollup
  • Lab 12: Data Validation
  • Lab 13: Creating an audit log
  • Lab 14: Route a New Lead using a custom workflow activity
  • Lab 15: Verify Email using a custom workflow activity


Day 4: JavaScript

Day four will shift to the client where we will work with:

  • The Dynamics CRM 2013 JavaScript object model
  • Using the XrmSvcToolkit to perform the following operations using JavaScript:
    • Create
    • Retrieve
    • Update
    • Delete
  • We will also be covering advanced topics such as working with the Dynamics CRM tablet client
  • Lab 1: Using the getValue and setValue Methods
  • Lab 2: Set the Required Level of a Field
  • Lab 3: Using the setVisible and setSubmitMode Methods
  • Lab 4: Disable a Field Programmatically
  • Lab 5: Set the Focus to a Field
  • Lab 6: Using the setLabel Method
  • Lab 7: Show a Tab
  • Lab 8: Expand a Tab
  • Lab 9: Using the setVisible Method
  • Lab 10: Set the Label of a Section
  • Lab 11: Using the getInitialValue Method
  • Lab 12: Using the getOption Method
  • Lab 13: Using the getOptions Method
  • Lab 14: Using the getSelectedOption Method
  • Lab 15: Using the getText Method
  • Lab 16: Using the clearOptions and addOptions Methods
  • Lab 17: Use the removeOption Method
  • Lab 18: Working with Lookups
  • Lab 19: Using the setSrc Method
  • Lab 20: Using the getFormType Method
  • Lab 21: Build and Display a List of Navigation Items
  • Lab 22: Build and Display a List of Sections
  • Lab 23: Build and Display a List of OptionSet Fields
  • Lab 24: Using the getEventSource Method
  • Lab 25: Using the preventDefault Method
  • Lab 26: Using the addOnChange Method
  • Lab 27: Using the fireOnChange Method
  • Lab 28: Create a Ribbon Solution


Day 5: User Experience Customizations

The final day will be focused on:

  • Editing the SiteMap
  • Editing the Ribbon
  • Working with Solutions
  • Lab 1: Change the Name of the Settings Area
  • Lab 2: Rearrange the Settings Sub–Areas
  • Lab 3: Create a Solution
  • Lab 4: Add Existing Components to a Solution
  • Lab 5: Hide the Qualify and Lead button

Download a PDF version of this document here.


Upcoming Class: Extending Dynamics CRM | On Technology with Mitch Milam - February 2, 2015

[…] Extending Dynamics CRM […]

Comments are closed