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 |