Peter did a great job for me with Dynamics CRM configuration and demonstration for a very successful proof-of-concept. He is calm, detailed and very knowledgeable.

Simon Shearston. Microsoft.

Share this page

Real world Dynamics 365 / CRM development

Course code
.Net developers, programmers, solution architects
Error loading MacroEngine script (file: CoursePage-AvailabiltySection.cshtml)

Most of our courses are available on a one-company basis and can usually be customised to your specific needs. Please contact us for more information.

Course overview

Print this overview
This course equips software development consultants with a deep understanding of the Microsoft Dynamics 365 / CRM platform in order that they can configure and develop extended software solutions using Dynamics 365 / CRM. This is an intensive 5-day course using the latest version of Microsoft Dynamics 365 / CRM 2011 developer tools and offers hands-on, practical experience throughout. Pre-course reading for an Introduction to Dynamics 365 / CRM will be offered and must be reviewed. Delegates should have a solid background in .net development with knowledge of web services, WCF and SQL.

At Course Completion

After completing this course, students will be able to:

  • Understand the components that make up an extended Dynamics 365 / CRM solution
  • Define the business unit and security framework in Dynamics 365 / CRM
  • Extend the entity structures to meet specific requirements
  • Use the Dynamics 365 / CRM solution management functionality to build and transfer solutions between environments
  • Design Dynamics 365 / CRM forms and views to meet specific requirements
  • Customise the Dynamics 365 / CRM ribbon and site map
  • Identify where Dynamics 365 / CRM queues can be used to assist workflow
  • Build workflows and dialogs to meet specific requirements
  • Understand the extension points in Dynamics 365 / CRM available in CRM to the developer
  • Understand and use the Dynamics 365 / CRM Organisation service
  • Understand and use techniques for client side extensions
  • Understand and use techniques for server side extensions
  • Understand how to build standard and custom reports within Dynamics 365 / CRM
  • Understand how to extend Dynamics 365 / CRM functionality to customer portals
  • Understand how to use Team Foundation Server and Configuration Management
  • Understand key differences across online v onpremise

Course Outline

Module 1. Microsoft Dynamics 365 / CRM technology overview

This module introduces the students to the world of Microsoft Dynamics 365 / CRM so that they understand the background of Dynamics 365 / CRM, the core technology components, modules and the opportunities open to skilled Dynamics 365 / CRM developers.


  • Why do customers buy Microsoft Dynamics 365 / CRM
  • Understanding the ISV and Partner community
  • Dynamics 365 / CRM out of the box
  • High level architecture of Dynamics 365 / CRM
  • Dynamics 365 / CRM server and client components
  • Dynamics 365 / CRM extended solutions
  • The market and CRM trends - the opportunity for the XRM developer


Navigating Dynamics 365 / CRM client and server side. Locating and identifying key elements.

After completing this module, students will be able to:

  • Understand the trends that have led customers to build and use Dynamics 365 / CRM solutions
  • Understand the technology infrastructure that Dynamics 365 / CRM relies on
  • Understand what Dynamics 365/CRM deliverys out of the box
  • Understand what makes up an extended Dynamics 365 / CRM solution
  • Identify future career opportunities with Dynamics 365 / CRM development


Module 2. Microsoft Dynamics 365 / CRM security primer

This module helps developers understand and apply effective security frameworks to their extended 365 / CRM solutions. Dynamics 365 / CRM implements security via the platform and so any request going via the platform conforms to the security model in place. Therefore, there is no shortcut to Dynamics 365 / CRM security - even developers must work within the boundaries designed within the solution


  • What are the components that make up Dynamics 365 / CRM security
  • Where are the security rules implemented
  • The business unit structure
  • Entities and ownership
  • Users and Teams
  • Security roles
  • Sharing and best practice
  • Form and field security


Locating the security components, amending and testing the results

After completing this module, students will be able to:

  • Identify and locate the core security components within Dynamics 365 / CRM
  • Modify business units
  • Understand entity ownership and its impact on security
  • Understand users, teams and related security roles
  • Understand how to use form and field security


Module 3. Microsoft Dynamics 365 / CRM functionality review

This module helps developers understand the core application functionality that Microsoft Dynamics 365 / CRM provides on an out of the box installation. One reason for this is to ensure that developers don't re-create the wheel by building functionality that already exists in Dynamics 365 / CRM.


  • Dynamics 365 / CRM views, forms and advanced find
  • The core customer model from lead to account and contact
  • The core activity model, tracking and synchronisation with Outlook
  • The sales process model - from Opportunity to Invoice
  • The product catalog
  • The customer service model - service management and scheduling
  • The marketing model - marketing lists and campaigns
  • Dynamics 365 / CRM queues - how to use them
  • Frequently used ISV solutions


Tracking the life in a day of a typical customer

After completing this module, students will be able to:

  • Identify functionality that is available from installation
  • Understand how standard functionality can be removed
  • Understand the central role that customer records play in Dynamics 365 / CRM
  • Understand how to best use Dynamics 365 / CRM queues  


Module 3. Microsoft Dynamics 365 / CRM Entity design

This module takes the student through a process of best practice design of entity and metadata in Dynamics 365 / CRM. Poor design decisions made at the stage of entity design and build can have ramification all the way through a Dynamics 365 / CRM project and so it is essential to get it right.


  • Principals in designing a new entity
  • Principals in extending a new entity
  • Custom activity entities explained
  • The core aspects of a new entity
  • Building new attributes
  • Building out Dynamics 365 / CRM entity forms
  • Accessing the new entity from code
  • Building entity to entity relationships


Establishing the core entity structure required for the case study

After completing this module, students will be able to:

  • Apply best practice in Dynamics 365 / CRM entity design
  • Understand the features associated with entities
  • Understand when to use a custom activity entity
  • Add new attributes to the entity and associated forms
  • Understand how to access the entity from code
  • Build relationships between entities to meet requirements


Module 4. Microsoft Dynamics Architecture and Extension Points

This module explains from a developers perspective the most important elements of the architecture that they should understand and the extension points that are available to build custom solutions from.


  • Dynamics 365 / CRM architecture server and client side
  • Server roles, groups and services
  • The Software Developers Kit introduced
  • Customisation extension points, events and web resources
  • The ribbon and the site map
  • Platform services
  • Plug-ins
  • Custom workflows and dialogs
  • Deployment options
  • Authentication and authorisation
  • Using the Solution Management features


Using the developer toolkit and solution packager

After completing this module, students will be able to:

  • Understand the difference between the physical and logical structure of Dynamics 365/CRM
  • Understand and access the extension points in Dynamics 365 / CRM
  • Understand the role of workflows, dialogs and plug-ins
  • Understand the principles of authentication and authorisation


Module 5. SOAP Platform Web Services

This module explains to students how to utilise the SOAP Platform Web Service in order to connect to Dynamics 365 / CRM instances and query data. Students will have hands on practice with building code as part of the course case study.



Using the Organisation and Discovery Services

Using SOAP Authentication

Using SDK assemblies

Understanding Entity and Entity collections and Attribute types

Working with CRUD operations

Execute requests

Querying data



Setting up the Time entry solution and building the Time entry editor


After completing this module, students will be able to:

  • Understand how to use the Organisation and Discovery Services
  • Use different SOAP authentication methods
  • Create, read and update records using SOAP requests
  • Query Dynamics 365 / CRM data via a QueryExpression request


Module 6: Querying & Executing Requests 

This module introduces the student to the methods of Querying and Executing requests. Students will learn how to use FetchXML, Linq and how to query metadata.


  • Where and when to use FetchXML
  • Creating and accessing FetchXML queries
  • Aggregating data via FetchXML
  • Setting up a LINQ Query
  • Querying metadata


Students will complete hands on exercises using FetchXML and LINQ

After completing this module, students will be able to:

  • Understand where and when to use the various query methods
  • Integrate query code into CRM extensions such as plug-ins and Javascript


Module 7: Custom Reports in Dynamics 365 / CRM

This module explains the purposes of the various reporting tools available within the Microsoft Dynamics 365 / CRM environment such as BIDS and Report Author. It identifies the structure of reports and the methods employed as a report is generated from Dynamics 365 / CRM. It explains filtering and pre-filtering and also looks at navigation and drill through techniques. The module concludes with a review of best practice techniques employed in CRM projects.


  • Reporting components and tools
  • The importance of the user context in running reports
  • Using FilteredViews in queries and FetchXML
  • Using parameters for filtering and pre-filtering
  • Reporting best practices


Building out a custom report for invoicing purposes

After completing this module, students will be able to:

  • Understand the options available to report on Dynamics 365 / CRM data
  • Utilise Filtered Views and parameters for contextual reports
  • Understand and utilise parameters within Dynamics 365 / CRM reports
  • Apply best practice to Dynamics 365 / CRM reporting


Module 8: Custom Process Activities in Dynamic 365/CRM

This module looks at how the developer can leverage functionality from the process tools available to them in Dynamics 365 / CRM. They will learn how best to use dialogs and when best to use a process or a plugin. This module also reviews in detail the role of the asynchronous service and looks at how to build and utilise custom workflow steps.


  • Workflows v dialogs
  • Processes or plugins?
  • The async server
  • Understanding workflow states
  • Understanding wait dependencies
  • Loop detection
  • Best practices including debugging and unit testing


Students will incorporate their learning in this module to build a custom workflow process that sends a PDF invoice by email.

After completing this module, students will be able to:

  • Make informed decisions on the choice of process technology
  • Understand the features of the async server
  • Understand and use workflow states and wait dependencies
  • Apply best practices in process design and development

Module 9: Form Javascript Programming

The addition of form scripting using Javascript is a common method used by XRM developers to build business logic and custom behaviour into Dynamics 365 / CRM forms. Quality of code varies widely and poor implementation of such code leads to problems of usability and performance in extended Dynamics 365 / CRM solutions. In this module we look at how best to use Javascript and the recommended methods of building script as part of an overall solution.


  • A review of client-side event programming
  • Functions and libraries in CRM
  • Form events that trigger script
  • The XRM page structure and form elements explained
  • Using option-sets and lookups
  • Generating Javascript code
  • Understanding web resources and the virtual file system
  • Authoring, deploying and debugging
  • Creating a dynamic user interface



Students will have the opportunity to build several components in hands on practice labs using the knowledge gained in this lab.

After completing this module, students will be able to:

  • Understand the options available for client-side event programming
  • Understand how Javascript is stored and called from Dynamics / 365 CRM
  • Understand the XRM page structure and working with Dynamics / 365 CRM field types
  • Understand how to author, deploy and debug client-side script
  • Apply best practices in building a dynamic user interface


Module 10: Server-side plug-ins

Server-side plug-ins provide a level of process automation that is not available when building scripts or processes. However, they require detailed design and build using .net code and CRM SDK properties and methods. It is critical that a developer working on server-side automation understands the full range of options available to them and applies best practice methods when designing, developing and deploying Plug-Ins.


  • Understanding the difference between a Plug-in and processes
  • Understand Plug-in architecture
  • Understand the pipeline stages and Plug-In integration
  • How Plug-Ins are registed and stored within Dynamics 365 / CRM
  • Understanding Plug-In steps
  • The IPlugin Interface, Iservice Provider and Plugin context
  • Target, Pre and Post Images
  • Unit testing Plug-Ins and Sandbox processing



Students will apply the knowledge gained in this module to build a Time Entry Plugin and a cascade process to update addresses between accounts and contact.

After completing this module, students will be able to:

  • Identify where a Plug-in is required
  • Understand the architecture and the pipeline stages for Plug-Ins
  • Register and store the Plug-In correctly
  • Configure the interface, provider and context
  • Utilise the appropriate image for the process
  • Apply best practice in unit testing and deploying Plug-Ins


Module 11: HTML & Silverlight Web Resource Programming

Extended CRM solutions very often require dynamic forms that go beyond the constraints of the standard CRM form by using User Interface web resources. In this module we explore the use of UI web resources, how these may be stored and accessed from the Dynamics 365 / CRM interface. We compare the features of both HTML and Silverlight which is a topical area of discussion for developers today.



  • Web resources and virtual file system
  • Using UI Web resources
  • How to reference files and open them
  • Comparing Silverlight v HTML
  • Using Query string parameters
  • How to embed a web resource
  • Using the XRM context within the web resource
  • Understanding MVVM in the context of Dynamics 365 / CRM
  • Data binding to views
  • Building Web resources with Silverlight
  • Using Javascript web resources



Students will apply the knowledge gained in this module to build a web resource with both Silverlight and HTML

After completing this module, students will be able to:

  • Understand where and how to use web resources to extend UI functionality
  • How web resources are stored and accessed
  • Determine the best of use of Silverlight or HTML web resources
  • Design and build effective web resources
  • How to bind data to web resource views
  • Understand the use of the MVVM model


Module 10: Ribbon and Site Map editing

An extended CRM solution will require to customise the ribbon and the site map so as to provide quick and effective navigation around the modified solution. It may also be necessary to remove access to functionality that while is available. This module explores the options that are open to the developer and identifies best practices and tools to use to edit these components.


  • Ribbon customisation options
  • Understanding the RibbonDiffXML
  • Identifying typical customisation scenarios
  • Using the Ribbon workbench
  • Understanding the elements within the ribbon
  • How to use web resources within the ribbon
  • How ribbon customisations are stored within the solution layers
  • Best practice approach to ribbon customisation
  • Site Map structure explained
  • Outlook navigation explained
  • Web resources in the Site Map
  • Online & offline considerations



Students will have hand on practice using the knowledge gained in this module to build out customisations to both the ribbon and the Site Map in Dynamics 365 / CRM

After completing this module, students will be able to:

Understand the structure of both the Ribbon and the Site Map

Understand best practice approaches to customising both elements

How to use tools to work with both elements

Understand how the Outlook navigation differs to the web client