About this Course
This three-day instructor-led course provides students with the knowledge and skills to develop extensions for Microsoft Dynamics CRM.
Pre-requisites
Before attending this course, students must have:
* Completed Course 8912A Customization and Configuration in Microsoft Dynamics CRM, or have equivalent knowledge of the customization capabilities of Microsoft Dynamics CRM.
* At least three months experience creating .NET applications using Microsoft Visual Studio.
* A good understanding of Web development technologies including programming with DHTML.
Course Outline
Module 1: Extensibility OverviewThis module provides an overview for the course. It introduces the features available to extend Microsoft Dynamics CRM.Lessons
* Microsoft Dynamics CRM Design Focus
* Extensibility Features
* Required Skills
* Resources
Module 2: Microsoft Dynamics CRM ArchitectureThis module describes the Microsoft Dynamics CRM architecture as it applies to practical decisions when planning extensions to Microsoft Dynamics CRM. A strong understanding of the Microsoft Dynamic CRM architecture provides insight that can be used when developing extensions.Lessons
* Extensibility Points
* Microsoft Office Outlook Clients
* Layers
* Application Layer
* Platform Layer
* Database Layer
Module 3: Common Platform OperationsThis module explains how to include the Microsoft Dynamics CRM Web Service APIs into development projects and how to use common methods available for all Microsoft Dynamics CRM entities. This module also explains how data types are implemented in Microsoft Dynamics CRM as well as helper code that developers can use to manage Microsoft Dynamics CRM data types. Finally, the process of handling SOAP exceptions from the Microsoft Dynamics CRM Web Services is described.Lessons
* CrmDiscoveryService
* CrmService
* crmAuthentication Token
* Entity Information
* Microsoft Dynamics CRM Data Types
* Using Type Helpers
* Using the Create Method
* Using the Retrieve Method
* Using the Update Method
* Using the Delete Method
* Using the RetrieveMultiple Method
* Handling SOAP Exceptions
Lab : Importing Leads
* Create a .NET console application that uses the Create Method to import Leads from a .csv file.
Lab : Contact Management Application
* Create a .NET Web application that allows users to view, update and delete Microsoft Dynamics CRM contact records.
After completing this module, students will be able to:
* Use the common CrmService methods for all Microsoft entities.
* Use Microsoft Dynamics CRM data types and use the type helper provided in the Microsoft Dynamic CRM SDK.
* Handle SOAP Exceptions generated by the CrmService.
Module 4: Advanced Platform OperationsThis module explains how to query data and perform actions on the Microsoft Dynamic CRM platform using the Execute Method with the appropriate Request and Response classes. It also describes the use of Filtered Views, the DynamicEntity class and methods to work with the Microsoft Dynamic CRM Metadata.Lessons
* Querying Data
* QueryExpression
* QueryByAttribute
* Saving Queries
* Filtered Views
* Execute Method
* Requests and Responses
* Dynamic Entities
* Using the Metadata Web Service
* Caching Metadata
Lab : Using Query Expressions
* Create a .NET console application to query the Microsoft Dynamics CRM platform using QueryExpression.
Lab : Using Filtered Views
* Create a .NET console application to query the Microsoft Dynamics CRM platform using Filtered Views.
Lab : Using Request and Response
* Create a .NET console application that uses the Execute Method to reassign accounts evenly amongst users.
After completing this module, students will be able to:
* Query Microsoft Dynamics CRM using QueryExpression, QueryByAttribute and Filtered Views.
* Use the CrmService.Execute method.
* Use DynamicEntity.
* Access, use and cache Metadata.
Module 5: Custom Workflow ActivitiesThis module explains how to create and set up Custom Workflow Activities.Lessons
* Configuring Custom Workflow Activities
* Workflow Architecture
* Setting Up Custom Workflow Activity Assemblies
* Creating Custom Workflow Activities
* Debugging Custom Workflow Activities
Lab : Creating a Custom Workflow Activity
* Create a simple Custom Workflow Activity and register it using the Plug-in Registration Tool so that the activity can be used in a workflow rule.
After completing this module, students will be able to:
* Write Custom Workflow Activities.
* Create Workflow rules that use Custom Workflow Activities.
* Use the Plug-in Registration Tool.
* Understand Workflow Architecture.
Module 6: Plug-insThis module explains how to extend the functionality of Microsoft Dynamics CRM events by writing custom plug-ins.Lessons
* Plug-in Model
* Plug-ins Overview
* Event Framework
* Developing Plug-ins
* Impersonation in Plug-ins
* Dynamics Entities and Plug-ins
* Deploying Plug-ins
* Debugging Plug-ins
Lab : Creating a Plug-in
* Create a pre-event plug-in and use the Plug-in Registration tool to register it against the event.
After completing this module, students will be able to:
* Decide when to use Plug-ins.
* Review the Event Framework.
* Develop, de-bug and deploy Plug-ins.
* Use Dynamic Entities within Plug-ins.
Module 7: Application Event ProgrammingThis module explains how to write client-side code for Microsoft Dynamics CRM Form and field events. It includes the available form and field events, how to work with form and field values, debugging client-side code and several techniques to improve productivity and solve business problems.Lessons
* Form and Field Events
* Overview of Form and Field Events
* Accessing Microsoft Dynamics CRM Data Fields
* Setting Event Dependencies
* Using Best Practices in Writing Client-side code
* Debugging Client-side code
* Using DHTML
* Developing Code with External Files
* Requesting External Data
* Accessing Microsoft Dynamics CRM Web Services
Lab : Creating Heirarchical Picklists
* Implement a hierarchical picklist on the phone call entity.
* Values in the Call Description picklist will be dependent on the option chosen for the Call Type picklist.
Lab : Using XML Request
* Use the onChange Event of the postal code field to auto-populate the state and city codes based on the value of the postal code.
* Pass the postal code to a Web page using a query string.
* Return the XML to update the state and city fields.
* Use error handling code.
After completing this module, students will be able to:
* Use Form and Field events.
* Reference Microsoft Dynamics CRM form values.
* Write and debug client-side code in Microsoft Dynamics CRM.
* Request External Data from form and field events.
Module 8: Application IntegrationThis module explains how to add custom buttons, menus, and navigation items in Microsoft Dynamics CRM to integrate other applications. It also explains how to create applications that have the same appearance and behaviors as Microsoft Dynamics CRM. Finally, it describes how IFrames and URL addressable forms are used to integrate Microsoft Dynamics CRM with other Web applications.Lessons
* Overview – Customizing the User Interface
* Customizing SiteMap
* Using ISV.Config
* Customizations and the Outlook Client
* Using IFrames in Entity Forms
* Using the Microsoft Dynamics CRM Design Guide
* URL Addressable Forms
* IFrames Considerations
* Retrieving Data using Parameters
* Dynamic IFrame
* URL Addressable Forms and Views
Lab : Creating Menus and Buttons
* Add a custom button on the Contact form.
* The custom button will open a Web site used to set user’s passwords.
Lab : Creating a Task with Default Data
* Add a button on the Case form.
* Use this button to open a new Task form with a specific set of default data.
* Retrieve some of the data from the Case.
After completing this module, students will be able to:
* Add custom buttons, menus, and navigation items to the Microsoft Dynamics CRM user interface.
* Use IFrames to integrate other applications into Microsoft Dynamics CRM.
* Perform actions on selected records in a Microsoft Dynamics CRM view.
* Set default data in form fields.
* Create applications with the same appearance and behaviors as Microsoft Dynamics CRM.
Module 9: Building ASP .NET ExtensionsThis module explains how to configure and deploy custom ASP .Net pages which are deployed on the same Web site as Microsoft Dynamics CRM.Lessons
* Web.config settings within Microsoft Dynamics CRM
* Authentication within Custom ASP .Net applications
* Deploying Custom ASP .Net Applications
Lab : Creating and Deploying an ASP .NET Application
* Build and Deploy a Custom ASP .Net application within the Microsoft Dynamics CRM Web site.
After completing this module, students will be able to:
* Build and Deploy ASP .Net Applications on the Microsoft Dynamics CRM Web site.
* Modify the web.config file.
* Understand the authentication and impersonation mechanism within the application.
