Please note: for Attend from Anywhere customers an additional screen is required. The additional screen must have a minimum screen size of 19 inch and minimum resolution of 1280x1024, with the vertical resolution (1024) being the most critical.
This course offers detailed and interactive information on how to develop extensions for Microsoft Dynamics CRM, with focus on extension methods documented in the Microsoft Dynamics CRM SDK. It provides instruction on the use of a number of Common Platform Operations, on how to query and execute these operations, as well as on developing a concise understanding of business process including WorkFlows, Actions, CustomWorkFlow Activities, and Business Process Flows. The course also describes how to use and debug Plug-ins, integration of CRM with Azure ServiceBus, application event programming, client extensions and web resources.
This course is a CRM development course intended primarily for partners and customers who have a technical background and familiarity with Microsoft Dynamics CRM. The audience must also be experienced in basic form customizations and workflows.
- Experience in basic form customizations and workflows
- Comfortable with the following technologies: .NET-connected applications to Visual Studio, JScript, HTML
- Basic understanding of XML, Transact_SQL, Microsoft Dynamics CRM customizations and web services, Windows Workflow Foundation, AJAX and Windows AZURE Platform
Please note: Before attending this class delegates must have a Microsoft account (signing up one is free). The instructions on how to set up a Microsoft account can be found here.
Delegates will learn how to:
- At the end of this course you will be able to:
- Describe how Microsoft Dynamics CRM is extended and the core extensibility features.
- Use common methods to access system and custom entities, including business logic, xRM Framework and exceptions.
- Execute queries in the Microsoft Dynamics CRM database, including QueryAttribute, QueryByExpression, LINQ, FetchXM,filtered views and OData.
- Explain how the Organization Service web service interacts with Microsoft Dynamics CRM metadata.
- Develop custom workflow activities for use within Microsoft Dynamics CRM that run code when configured workflow or dialog rules are created.
- Debug custom workflow activity code and use declarative workflows for On-premise deployments.
- Use Plug-ins to extend the functionality of events for any entity in Microsoft Dynamics CRM.
- Understand the integration between Windows Azure with Microsoft Dynamics CRM.
- Use the built-in features of the Microsoft Dynamics CRM application and understand how the Dynamics CRM application
- behaves when forms are loaded or saved, field data changed, tabs change state, and when IFRAMES are uploaded.
- Use the new Xrm.Utitlity library to open forms and dialogs, and the Xrm.Page.UI library to use notificatioins
- Add custom buttons, menu items and modifications to the navigation areas, including interaction with the Site Map and the Command Bars.
- Call the OrganizationService and the Data Service from clientside scripts
- Use web resources to enable the storage of shared blocks of code or resources for reuse across the Microsoft Dynamics CRM web application.
Module 1 - An Extensible Framework
- Demonstrate the range of options to customise and extend the CRM platform
- Introduce the use of Jscript and HTML web resources to enhance CRM Forms
- Introduce sitemap and command bar to enhance navigation
- Describe Processes (Workflows, Dialogs, Actions, Business Process Flows)
- Introduce Custom Workflow Activities
- Describe Plugins and their pros and cons over processes
- Introduce the ability to access the data platform via WCF Web Service calls
- Learn the major areas of extensibility for CRM
Module 2 - Accessing CRM Data - part 1
- Demonstrate the range of options to perform CRUD operations with CRM, and recognise best practice
- CRM WCF Web Services
- Accessing Organizations with the Discovery Service
- Organization Service
- CRUD operations with the Organization Service
- CrmSvcUtil.exe to create early bound classes and enumerations
- Compare the use of Early and late-bound classes
- CRM data types
- Compare CRUD operation techniques (QueryExpression, QueryByAttribute, LINQ, FetchXML, FilteredViews, OData)
- Interrogate the Discovery Service to find Organization Service Endpoints
- Perform CRUD operations with an instance of SDK OrganizationService proxy
- Use the CrmSvcUtil.exe to generate early bound entity classes
- Learn best practice in which data access technique to use
Module 3 - Accessing CRM Data - part 2
- Describe the OrganizationService Execute method and the use of OrganizationRequest and OrganizationResponse messages
- Demonstrate the capability to create entities and attributes in CRM through use of Metadata
- Execute method of the Organization Service
- Common Request and Response classes
- MetadataRequest to return optionset values
- Using Metadata Requests to Create Entities and Attributes
- Know when to use the Execute method over the Create, Retrieve, Delete, Update methods of the OrganizationService
- Read OptionSet values
- Create a CRM entity and assign attributes in code
Module 4 - Processes
- Demonstrate the range of options to define and automate Business Processes, and place Business Logic in appropriate layer for maintenance and reuse
- Identify the types of Processes (WorkFlow, Action, Dialog, Business Process Flow)
- Compare the scope, flexibility and maintenance of the different types
- Understand core Process designer features.
- Examine the steps involved in developing and deploying custom workflow activities.
- Create custom workflow activities.
- Debug custom workflow activities.
- Understand declarative workflows and their limitations.
- Create an Action and invoke it through code
- Create a Business Process Flow and modify the process in code
- Create Custom Workflow Activities, invoke them through a declarative workflow and debug them
- Create Actions, expose them as OrganizationRequest derived types via the CrmSvcutil.exe and invoke through code
- Create a Business Process Flow, invoke it through the User Interface and then set the process to different stage through code
Module 5 - Plugins
- Demonstrate the creation of Plugins and recognise best practice in their use and debugging
- Identify how plug-ins can be used to extend Microsoft Dynamics CRM.
- Review the CRM Request Pipeline and the different event stages.
- Develop plug-ins.
- Use impersonation in plug-ins.
- Register and deploy plug-ins.
- Debug plug-ins.
- Create plugins with Developer Toolkit template, investigate preImage and secure settings
- Create a .Net assembly deriving from SDK.Plugin
- Register a signed Plugin to CRM with the Plugin Registration Tool
- Debug plugins online with the Plugin Profiler
- Create plugins with a preImage alias and Secure settings
Module 6 - Integrate CRM with Azure Services
- Demonstrate synchronising data from CRM to External Applications via the use of Azure ServiceBus and queues
- Defining an Azure NameSpace to create a ServiceBus and Queue
- Defining a service endpoint from CRM to propagate changes from specified entities to the Azure ServiceBus
- Define a listener to receive messages from the Azure ServiceBus.
- Register an Azure Namespace with powershell
- Define an ACS secured queue
- Create a service endpoint with the Plugin Registration tool to point changes of an entity to be received at the queue
- Create .Net client application to read the queue
Module 7 - Web resources and Client side Development - part 1
- Demonstrate the purpose of Jscript web resources in extending and customising the CRM Forms. Interact with Form events to perform validation, formatting, messaging and modifying the display. Determine when to use Jscript over Business Rules
- Describe different Web Resource types
- Examine the Form and Control events
- Invoking Jscript libraries from Form events
- Best practices for writing Jscript libraries
- Using the Xrm.Page API
- Debug client side scripts
- Best practices for writing Jscript functions ( namespace structures to avoid ambiguity, xml documentation for intellisense,
- mocking the Xrm.Page API)
- Use the Xrm.Page API to access entity attribute values, and form elements
- Perform validation, formatting, show and hide controls, and perform notifications with Jscript
- Debug Jscript in IE and Chrome
Module 8 - Web resources and Client side Development - part 2
- Demonstrate the ability via Jscript to perform complex CRUD operations with OData and Execute system operations with
- SOAP and the XMLHttpRequest. Describe best practice for naming Web Resources and referencing from within CRM.
- Naming and referencing web resources
- Introduce the XMLHttpRequest to access server side resources
- Define REST operations and call OData service from JScript
- Examine and understand the use of ATOM and JSON.
- Understand and demonstrate how JQuery can be utilized to simplify Jscript operations
- Understand how SOAP operations can be sent via XMLHttpRequest to call the OrganizationService Execute method
- Create a logical naming convention for web resources
- Create JScripts to access CRM data through the OData Service
- Create JScripts to access CRM data through the OrganizationService
Module 9 - Controlling Navigation
- Demonstrate the ability to modify the CRM UI by changing the sitemap, and effect the user's interaction within forms and access to external resources by modifying the command bar.
- Edit the sitemap manually - through exporting a solution
- Edit the sitemap with a specialised tool
- Edit the command bar with a ribbon editor
- Display and Enable Rules for Commands
- Passing Parameters to CRM Forms and Web Resources
- Edit the sitemap to show or hide areas and links
- Create new buttons on Form command bars
- Create command Actions to navigate or run Jscript resources
- Pass parameters to Web Resources and Forms to populate fields or supply business data