Developing solutions for CRM 3.0

With CRM 1.2 we used the SDK extensively to develop add-ons to either add functionality (e.g. linking multiple contacts to a case) or to reduce the number of clicks (generate quotes as a PDF email attachment). We also made extensive use of Post-Callouts. All this took lots of time, effort and cost. To a certain extent much of this effort went on filling in the gaps in CRM 1.2 which customers did not, I think, appreciate. Combined with other product issues (the Outlook client being a major one) we found much of our early effort focused on technical issues and not helping the customer make the most of CRM as much as we would have liked. I would like to think we overcame this and our later CRM 1.2 projects were very successful.
 
For CRM 1.2 we used Visual Studio .NET 2003 on our laptops with the  Microsoft.CRM.Platform.Proxy.dll and Microsoft.CRM.Platform.Types.dll copied into the bin directory and added to the project. This was simple and we could develop solutions for many different customers at the same time. We have a bank of servers with multiple environments loaded onto the hard disks and we switched between them as required.
 
CRM 3.0’s ability to create new entities and relationships will reduce the amount of SDK code we have to write in some areas significantly especially in add-on ASP.NET applications. The added functionality in Workflow around dates again reduces or eliminates code we had to write in 1.2 in posturl and post-callouts. However, we are finding more being done in OnLoad and OnSave events in Javascript and also the use of new entities reduces the level of code required. There are now many more points at which customisations can be made and it is key to decide the approach, or combination of techniques, to be applied to each problem. The outcome is that the skill requirements of a CRM developer have changed and it is much more complex now than under 1.2.
 
A major question when developing for CRM 3.0 is whether to use .NET 1.1 or .NET 2.0. To a certain extent CRM 3.0 forces our hand as both .NET Assemblies for Workflow and Pre/Post-Callouts must use .NET 1.1 but anything else can use .NET 2.0. We have standardised on .NET 1.1 and Visual Studio .NET 2003. The only exception is when deep Office integration is required and Visual Studio Tools for Office is needed in which case the added functionality of Visual Studio .NET 2005 will be used.
 

With CRM 3.0’s move to the use of web services we can now check code at compile time instead of run time. However, we must be connected to the CRM server to do this and thus this can be complicated when trying to work at home or in the office away from the customer’s system, so much so it becomes impractical.

 
We have therefore switched to using Virtual PC creating an image containing the CRM server and a development environment so we can work on different customers more easily both for demos and development. Using Virtual PC has come in very useful recently when developing Sharepoint integration – I was able to easily switch between Sharepoint Services and Sharepoint Portal Server on different images running alongside the CRM image on the same machine so I could fully test the solution.
 
To save time in the future I am building a standard image including:
  • Windows 2003 SP1
  • AD and DNS
  • SQL 2000 Standard
  • Sharepoint Services
  • Visual Studio .NET 2003
  • SQL Reporting Services
  • SQL Reporting Services Addin for Visual Studio
  • CRM 3.0 Server
  • CRM 3.0 SDK
I am also building a standard client PC image containing:
  • XP SP2
  • Outlook 2003
  • Word 2003
  • Excel 2003
  • CRM 3.0 Thin Client

I have gone for a separate Outlook client PC for development and testing rather than install Outlook on the server to reduce the server footprint when doing the main development. However for demos it can be useful to have everything on one image e.g:

  • Windows 2003 SP1
  • AD and DNS
  • SQL 2000 Standard
  • SQL Reporting Services
  • CRM 3.0 Server
  • Outlook 2003
  • Word 2003
  • Excel 2003
  • CRM 3.0 Thin Client

To install the Outlook client on the CRM server I am indebted to Simon Hutson who has described the steps required.

 

I have bought one of these to hold the many virtual images as they take up so much disk space!
 
Advertisements

About Julian Sharp

I have worked with Dynamics CRM since 2004 and have been involved in over 100 CRM projects. I am a Dynamics MCT and teach Dynamics 365 and Azure in the UK and across Europe
This entry was posted in Uncategorized and tagged . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.