Olaf Feldkamp Development Platform Advisor Microsoft Schweiz
GmbH
Slide 2
IntroductionAPIsExtensibilitySamples
Slide 3
CRM Core CRM investments in Sales Force Automation, Marketing
automation and Customer Service XRM XRM capabilities forged from
customization, configuration and business process automation
investments Platform capabilities Instantiation of the core
Microsoft Technology Foundation with an eye towards accelerated
& scaled business solution development Platform capabilities
Instantiation of the core Microsoft Technology Foundation with an
eye towards accelerated & scaled business solution development
Microsoft technology foundation Windows Server, SQL Server, and.NET
Framework establish the foundation for enterprise success Microsoft
technology foundation Windows Server, SQL Server, and.NET Framework
establish the foundation for enterprise success 1 3 2
Slide 4
Custom application development Custom application based on
Dynamics CRM 4.0 Custom business logic Base functionality Custom
business logic Base functionality Development time Develop your
custom web based and Office- integrated business application in
less time
Slide 5
Leverage Visual Studio and.NET to easily extend and integrate
Dynamics CRM IE6 SP1 SSRS.NET FW 3.0
Slide 6
IntroductionAPIsExtensibilitySamples
Slide 7
Architecture Integrated to Microsoft Office Schema extension
Custom UI Custom workflow Multi-lingual/ -currency/-tenant Offline
support Extensible/support for Integration Active directory for SSO
Enterprise capabilities with SQL Server Deployment Web, mobile and
Outlook client On-premise/ partner hosted Packaging solutions
Management Data import/export Security Analytics and reporting
Operations Scaling out
Slide 8
Web services CrmService Supports CRUD operations
http://[crmserver]/[orgname]/mscrmservices/2007/ crmservice.asmx
MetadataService Query and manipulate the data structure
CrmDiscoveryService Query for information about the CRM
installation Filtered views SQL Server database views,
read-only
Slide 9
// Create an account entity and assign // data to some
attributes account newAccount = new account(); newAccount.name =
"Greg Bike Store"; newAccount.address1_postalcode = "98052";
newAccount.address1_city = "Redmond"; // Call the Create method to
create an // account Guid accountId =
service.Create(newAccount);
Slide 10
Guid id = new Guid("2B951FBC-1C56-4430-B23B- 20A1349068F3"); //
Call the Retrieve method to retrieve an // existing contact
ColumnSet cols = new ColumnSet(); cols.Attributes = new string[] {
"firstname" }; contact myContact =
(contact)service.Retrieve(EntityName.contact. ToString(), id,
cols);
Slide 11
Assemblies Microsoft.Crm.SDK.dll Microsoft.Crm.SdkTypeProxy.dll
Microsoft.Crm.Outlook.Sdk.dll Wrap Web service functionality and
provide most of the Web services functionality Recommended for
plugins and WF activities Microsoft.Crm.Outlook.Sdk.dll = Offline
API Web services Dynamic, strongly typed objects for custom
entities
Slide 12
Olaf Feldkamp Development Platform Advisor Development &
Platform Group
Slide 13
IntroductionAPIsExtensibilitySamples
Slide 14
Users, Organizations Business Units Security roles Settings
Templates, KB articles Integration Custom UI Custom BL Business
Intelligence Data model Views, Forms Workflow Mailmerge templates
for documents and e-mails
Slide 15
Extensible UI, XML Config File Extensible UI, XML Config File
Form events (JavaScript) Form events (JavaScript) Integrated Apps
(OBA,..) Reporting (Excel/MOSS) Reporting (Excel/MOSS) Data access
platform Business entity components Data access components
Synchronous/asynchronous business logic Plugins (pre) (assemblies)
Plugins (pre) (assemblies) Plugins (post) (assemblies) Plugins
(post) (assemblies) Web services Security Workflow Custom
activities (assemblies) Custom activities (assemblies) Filtered SQL
Views Metadata Data 2 1 3 4
Slide 16
Extensive schema customization Create/rename entities,
attributes Customize forms and views Create relationships Parental,
Referential, Referential but restricted Configurable Cascading
Offline entity data Schema management Web-based schema tool Publish
customizations without reset Schema portability Import/export
support Basic validation Entity 1 Entity 2 Entity 1 Entity 2 1
Slide 17
Allows coding against entities that were not available at
design time Execute() works on a request/response model Example:
CreateRequest and CreateResponse Used especially in plugins and
workflow activities Properties are still strongly typed even though
the entity is not New helper DLLs provide string-based
indexers
Slide 18
// Create the request object AddItemCampaignRequest addReq =
new AddItemCampaignRequest(); // Set the properties of the request
object addReq.CampaignId = campaignId; addReq.EntityId = productId;
addReq.EntityName = EntityName.product; // Execute the request
AddItemCampaignResponse addRes = (AddItemCampaignResponse)
service.Execute(addReq); // Get the ID of the new Campaign Item
Guid id = addRes.CampaignItemId;
Slide 19
Olaf Feldkamp Development Platform Advisor Development &
Platform Group Position Application Contact
Slide 20
Organization specific Pre and post events Run synchronously or
asynchronously Offline support Registration through a tool, Web
service API, or command line Deployment options: database or
server(s) Must be signed CRM Application CRM Platform Method CRM
Tools Custom Application Platform Core Operation Pre-Plugin
Post-Plugin 2
Slide 21
using Microsoft.Crm.Sdk; using Microsoft.Crm.SdkTypeProxy;
namespace CrmPlugin { public class HelloWorld : IPlugin { public
void Execute( IPluginExecutionContext context) { DynamicEntity
entity = (DynamicEntity) context.InputParameters
[ParameterName.Target]; if
(entity.Properties.Contains("accountname")) entity[accountname] =
TechDays 2009; } } }
Slide 22
Olaf Feldkamp Development Platform Advisor Development &
Platform Group
Slide 23
Web-based designer Easy enough for a business analyst Rich
activities Create, Update, Assign, Share, etc Event support for all
entities Workflow based on.NET 3.0 WF Can run on separate server
Asynchronous Scalable 3
Slide 24
Extend workflow with custom activities Workflow designer
support Deployment works like deployment of plugins Workflow
Activity 1 Workflow Activity 3 Custom Assembly Activity 2 Custom
Assembly Activity 2 Input parameters Return parameters
Slide 25
Olaf Feldkamp Development Platform Advisor Development &
Platform Group
Slide 26
Form editor Add IFRAMES to a form CRM passes the Object Type
Code and GUID to the external URL SiteMap Controls the
left-navigation area of home page Embed your own web pages within
the CRM UI ISV.Config Add new menus and toolbar buttons to forms,
grids and the application URL Addressable Forms Used by external
apps to load specific CRM forms 4
Slide 27
Enables real-time feedback for users Reduces load on the server
Supported/upgradable Only access documented client-side methods and
properties Scripts are shared across all form types
Slide 28
Fieldaccess and methods crmForm.firstname.DataValue,.SetFocus()
crmForm.Save(), crmForm.SaveAndClose()
Slide 29
Olaf Feldkamp Development Platform Advisor Development &
Platform Group
Slide 30
IntroductionAPIsExtensibilitySamples
Slide 31
CRM 4.0 Accelerators Event Management Enterprise Search
Analytics Foundation eService Business Process Pack CRM
Notifications Extended Sales Forecasting Sales Methodology Support
Available for free
Slide 32
Office development is part of Visual Studio 2008 SharePoint
development: Download VSeWSS version 1.3 Feb 2009 CTP (64 bit
support)
Slide 33
Olaf Feldkamp Development Platform Advisor Development &
Platform Group
Slide 34
Slide 35
Slide 36
Development time Extensible platform and easy to integrate SOA
based Web service APIs Schema extensions Server-side plugins and
workflow activities UI integration and programming Custom business
logic Base functionality Custom business logic Base functionality
Development time
Slide 37
Presentations TechDays: www.techdays.ch MSDN Events:
http://www.microsoft.com/switzerland/msdn/de/presentationfinder.mspx
MSDN Webcasts:
http://www.microsoft.com/switzerland/msdn/de/finder/default.mspxwww.techdays.chhttp://www.microsoft.com/switzerland/msdn/de/presentationfinder.mspxhttp://www.microsoft.com/switzerland/msdn/de/finder/default.mspx
MSDN Events MSDN Events:
http://www.microsoft.com/switzerland/msdn/de/events/default.mspx
Save the date: TechEd 2009 Europe, 9-13 November 2009,
Berlinhttp://www.microsoft.com/switzerland/msdn/de/events/default.mspx
MSDN Flash (our by weekly newsletter) Subscribe:
http://www.microsoft.com/switzerland/msdn/de/flash.mspxhttp://www.microsoft.com/switzerland/msdn/de/flash.mspx
MSDN Team Blog RSS:
http://blogs.msdn.com/swiss_dpe_team/Default.aspxhttp://blogs.msdn.com/swiss_dpe_team/Default.aspx
Developer User Groups & Communities Mobile Devices:
http://www.pocketpc.ch/ Microsoft Solutions User Group Switzerland:
www.msugs.ch.NET Managed User Group of Switzerland: www.dotmugs.ch
FoxPro User Group Switzerland:
www.fugs.chhttp://www.pocketpc.ch/www.msugs.chwww.dotmugs.chwww.fugs.ch
Slide 38
Presentations TechDays: www.techdays.chwww.techdays.ch TechNet
Events TechNet Events:
http://technet.microsoft.com/de-ch/bb291010.aspx Save the date:
TechEd 2009 Europe, 9-13 November 2009,
Berlinhttp://technet.microsoft.com/de-ch/bb291010.aspx TechNet
Flash (our by weekly newsletter) Subscribe:
http://technet.microsoft.com/de-ch/bb898852.aspxhttp://technet.microsoft.com/de-ch/bb898852.aspx
Schweizer IT Professional und TechNet Blog RSS:
http://blogs.technet.com/chitpro-de/http://blogs.technet.com/chitpro-de/
IT Professional User Groups & Communities SwissITPro User
Group: www.swissitpro.ch NT Anwendergruppe Schweiz: www.nt-ag.ch
PASS (Professional Association for SQL Server):
www.sqlpass.chwww.swissitpro.chwww.nt-ag.chwww.sqlpass.ch
Slide 39
7. 8. April 2010 Congress Center Basel
Slide 40
Classic Sponsoring Partners Media Partner Premium Sponsoring
Partners