About Apex InfoTech Information Services Products Consulting Online Courses Certifications Course Schedule Reserve your seat Search Apex InfoTech Home Page
Course ScheduleSearch by Course NumberPrint this documentEmail this documentRegister for this course

Extending Microsoft CRM 3.0

Course 8531: Three Days; Instructor-led

Introduction

This three-day instructor-led course provides students with the knowledge and skills to develop extensions for Microsoft CRM 3.0.

The course focuses on extension methods documented in the Microsoft CRM 3.0 SDK. It includes content on Microsoft CRM Web Service programming, creating and configuring workflow .NET assemblies and business logic extensions (callouts), advanced client-side scripting, application integration capabilities and how to create a customer portal solution that connects Microsoft CRM 3.0 to the internet.

Audience

This course is intended for .NET developers who work with Microsoft CRM and understand the built-in customization capabilities of the application. Developers attending this course should also understand web development technologies including client-side programming using DHTML. This course is intended for developers creating extensions for a single Microsoft CRM implementation - it does not contain guidance for ISVs creating packaged Microsoft CRM 3.0 add-on products for re-sale

At Course Completion

After completing this course, students will be able to:
Create applications that use the Microsoft CRM 3.0 Web Services to perform actions on the Microsoft CRM platform.
Create, configure and debug .NET assemblies to use in workflow.
Create, configure and debug .NET assemblies to use in business logic extensions (Callouts).
Create and debug client-side code for Microsoft CRM form events.
Integrate other applications with Microsoft CRM 3.0 through the use of URL addressable forms, IFrames, and custom buttons, menus, and navigation areas added to Microsoft CRM.
Recognize licensing and security issues related to building extensions to Microsoft CRM that connect to the Internet.


Prerequisites

Before attending this course, students must have:
Completed Course 8525A, Microsoft CRM 3.0 Customization, or have equivalent knowledge of the customization capabilities of Microsoft CRM 3.0.
At least three months experience creating .NET applications using Microsoft Visual Studio.
A good understanding of Web development technologies including programming with DHTML.


Microsoft Certified Professional Exams

This course will help the student prepare for the following Microsoft Certified Professional exam:
Exam Extending Microsoft CRM 3.0:


Course Materials

The student kit includes a comprehensive workbook and other necessary materials for this class.

The following software is provided in the student kit:
Student CD contains Visual Studio projects used in the course.

Additional Reading

To help you prepare for this class, review the following resources:
The Microsoft CRM 3.0 SDK
Working with Microsoft Dynamics CRM 3.0, Microsoft Press


Course Outline

Chapter 1: Extensibility Overview

This brief chapter serves as an overview for the course. It introduces the features available to extend Microsoft CRM 3.0.

Lessons
Microsoft CRM Design Focus
Extensibility Features
Required Skills
Resources

After completing this module, students will be able to:
Understand how Microsoft CRM was designed to be extended.
Recognize the main extensibility features.
Recognize the skills they will need to use the extensibility features.
Recognize resources that will help them learn more.

Chapter 2: Microsoft CRM Architecture

This chapter describes the Microsoft CRM 3.0 architecture as it applies to practical decisions when planning extensions to Microsoft CRM. A strong understanding of the Microsoft CRM architecture provides insight that can be used when developing extensions.

Lessons
TOPIC: Architecture Overview
Extensibility Points
Outlook Clients
Layers
TOPIC: Application Layer
Application Layer Security
Data Validation
Business Logic
Meta-data driven UI
TOPIC: Platform Layer
Web Services
Entity Definitions
Platform Security
Platform Business Logic
Data Access Components
TOPIC: Database Layer
Databases

Demonstration: Using the Metadata Browser

After completing this module, students will be able to:
Recognize where the available extension features exist within Microsoft CRM 3.0.
Understand how the Microsoft CRM Clients for Microsoft Office Outlook interact with Microsoft CRM.
Understand the basic components of Microsoft CRM 3.0 and the functions they perform.
Understand how Microsoft CRM enforces security.
Understand how Microsoft CRM applies business logic.
Understand how Microsoft CRM uses meta-data.
Understand how Microsoft CRM exposes Web Service APIs.
Understand the functions of the Microsoft CRM Platform.
Understand how Microsoft CRM interacts with the SQL Server data store.

Chapter 3: Common Platform Operations

This chapter explains how to include the Microsoft CRM Web Service APIs into development projects and how to use common methods available for all Microsoft CRM entities. This module also explains how data types are implemented in Microsoft CRM as well as helper code that developers can use to manage Microsoft CRM data types. Finally, the process of handling SOAP exceptions from the Microsoft CRM Web Services is described.

Lessons
TOPIC: CrmService
Setting Up the CRM Services
TOPIC: Common Methods
About Entities
Microsoft 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 3.1: Importing Leads
Create a .NET console application that uses the Create Method to import Leads from a .csv file

Lab 3.2: Contact Management Application 1
Create a .NET Web application that will allow users to view, update and delete Microsoft CRM contact records

Lab 3.3: Contact Management Application 2
Modify the .NET Web application created in Lab 3.2 to implement SOAP Exception handlers

After completing this module, students will be able to:
Use the common CrmService methods for all Microsoft entities
Use Microsoft CRM data types and use the type helper provided in the Microsoft CRM SDK
Handle SOAP Exceptions generated by the CrmService

Chapter 4: Advanced Platform Operations

This chapter explains how to query data and perform actions on the Microsoft 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 CRM meta-data.

Lessons
TOPIC: Querying Data
QueryExpression
QueryByAttribute
Saving Queries
Filtered Views
TOPIC: Using Execute Methods
Using the Execute Method
Requests and Responses
TOPIC: Dynamic Entities
Binding Microsoft CRM Data to a .NET DataGrid
TOPIC: MetaData Service
Using the MetaData Web Service
Caching MetaData

Lab 4.1: Using QueryExpression
Create a .NET console application to query the Microsoft CRM platform using QueryExpression

Lab 4.2: Using Filtered Views
Create a .NET console application to query the Microsoft CRM platform using Filtered Views

Lab 4.3: Using Requests and Responses
Create a .NET console application that will use the Execute Method to re-assign accounts evenly amongst users.

Lab 4.4: Bind Microsoft CRM Data to a .NET DataGrid
Create a Web application that will use DynamicEntity to display Microsoft CRM accounts in a .NET DataGrid control.

Lab 4.5: Link UI features to Microsoft CRM Metadata
Extend the solution created in Lab 4.4 to query the Microsoft CRM meta-data so that the column labels in the DataGrid control display the current field label values

After completing this module, students will be able to:
Query Microsoft CRM using QueryExpression, QueryByAttribute and Filtered Views
Use the CrmService.Execute method
Use DynamicEntity
Accesss, use and cache meta-data

Chapter 5: Workflow .NET Assemblies

This chapter explains how to configure, create and debug .NET assemblies for use in workflow rules.

Lessons
TOPIC: Configuring .NET Assemblies
Overview of Workflow
Understanding the Workflow Service
Setting up Workflow .NET Assemblies
Workflow Configuration File Overview
Specifying Assembly Information
Defining Parameters
Specifying Return Information
TOPIC: Creating .NET Assemblies
Data Type Mapping
Support for Web Services
Running Code in User Context
Debugging Workflow Assemblies

Demonstration: Configuring a Workflow .NET Assembly

Lab 5.1: Creating a Workflow .NET Assembly
Create a Workflow .NET assembly that defines a RouteLead method. This method will assign a lead to the user with the fewest leads.
Configure the assembly so the method is available in the Workflow Manager application
Create a workflow rule that will automatically assign a lead when it is created

After completing this module, students will be able to:
Create .NET assemblies for use in workflow
Configure Microsoft CRM to display methods in the assembly
Specify parameters to pass data to an assembly
Handle values returned from the assembly
Debug Workflow assemblies

Chapter 6: Business Logic Extensions

This chapter explains how to configure Callouts and create assemblies for use in Callouts.

Lessons
TOPIC: Callouts
Callout Model
Callout Configuration
Callout Method Signatures
Working with Callout Parameters
Pre-Callout Summary
Post-Callout Summary
TOPIC: Developing Callout Components
Callout Component Development
Impersonation in Callouts
Error Handling in Callouts

Lab 6.1: Configuring and Deploying Callouts
Modify callout.config.xml to subscribe methods in a .dll file to Account event s in order to implement an auditing solution.

Lab 6.2: Creating Callout Components
Create a .NET assembly that contains methods to automatically number all leads as they are created.
Deploy and test the assembly

Demonstration: Create Auditing Solution using Callouts

After completing this module, students will be able to:
Understand how callouts work
Decide when and what kind of Callouts to use
Configure pre and post callouts
Develop and Deploy callouts
Handle errors in callouts
Debug callouts

Chapter 7: Application Event Programming

This chapter explains how to write client-side code for Microsoft CRM 3.0 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
TOPIC: Form and Field Events
Overview of Form and Field Events
Accessing Microsoft CRM Data Fields
Setting Event Dependencies
TOPIC: Writing Client-side code
Using Best Practices in Writing Client-side code
Debugging Client-side code
Using DHTML
Developing Code with External Files
Requesting External Data

Lab 7.1: Creating Hierarchical Picklists
Implement a hierarchical picklist on the phone call entity.
Values in the Call Description picklist will be dependant on the option chosen for the Call Type picklist.

Lab 7.2: Formatting Telephone Numbers
Define a function using an external file to apply consistent formatting to phone numbers on each phone number field on the Contact form.
Inject the external file into the Contact OnLoad event.
Call the function from each of the telephone number field OnChange events.
Test the function and make any necessary adjustments.
Copy the function definition to the Contact OnLoad event.
Test and confirm the function works properly in a supported configuration.

Lab 7.3: Using XML Request
Use AJAX to perform a request of data from the OnChange event on the Postal Code field in the account form
When the postal code value is set in Microsoft CRM, the Region and City values will be automatically populated based on the postal code.

After completing this module, students will be able to:
Use Form and Field events
Reference Microsoft CRM form values
Write and debug client-side code in Microsoft CRM
Develop code using external files for greater productivity
Request External Data from form and field events

Module 8: Application Integration

This module explains how to add custom buttons, menus, and navigation items in Microsoft CRM to integrate other applications. It also explains how to create applications that have the same appearance and behaviors as Microsoft CRM. Finally, it describes how IFrames and URL addressable form are used to integrate Microsoft CRM with other web applications.

Lessons
• Overview – Customizing the User Interface
• TOPIC: SiteMap
• SiteMap Structure
• Editing SiteMap.xml
• TOPIC: ISV.config
• isv.config.xml Structure
• Performing actions from the Grid
• TOPIC: Customizations and the Outlook Client
• Customizations and the Outlook Client
• Integration Points
• TOPIC: Microsoft CRM Appearance And Behavior
• Using Template.css
• TOPIC: IFrames

• IFrames Considerations
• Retrieving Data using Parameters
• Dynamic IFrame
• TOPIC: Using URL Addressable forms
• URL Addressable Forms

Lab 8.1: Creating Custom 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 8.2: Perform Actions on the Grid
Create a button on the Account grid
When clicked, any selected accounts on the grid will have their City and Region fields populated based on the postal Code entered.

Lab 8.3: Using IFrames to Display External Data
Add an IFrame to the Contact form to display integrated data with an external database.

Lab 8.4: Create a Task with Default Data
Add a button on the Case form.
This button will open a new Task form with a specific set of default data
Some of the data will come from the Case
Add a second button on the Case form to open a Task with different default data

After completing this module, students will be able to:
Add custom buttons, menus, and navigation items to the Microsoft CRM 3.0 user interface
Use IFrames to integrate other applications into Microsoft CRM
Perform actions on selected records in a Microsoft CRM view
Set default data in form fields
Create applications with the same appearance and behaviors as Microsoft CRM

Chapter 9: Connect Microsoft CRM to the Internet

This chapter explains licensing and security implications related to creating a Customer Portal site that allows external users to interact with Microsoft CRM through a web site connected to the Internet.

Lessons
TOPIC: Licensing and Security
Understanding Licensing
Best Practices in Security
TOPIC: Integration with External Sites
Setting up a site

Lab 9.1: Integration with External Sites
Create a Web site that includes a ‘Contact Me’ button.
When a user accesses this page from the Internet and clicks the ‘Contact Me’ button, they will be prompted to enter their personal information.
The Web site is configured to use a proxy account that will create a new Lead in Microsoft CRM when the users submits the form with their personal information

After completing this module, students will be able to:
Recognize licensing requirements and security practices to create a customer portal linked to Microsoft CRM
Understand how to set up a customer portal site
Understand how to create and configure with a proxy account so that a customer portal can interact with Microsoft CRM

For more information or to give feedback, send e-mail to info@OneApex.com or call 949-597-2100