This series is focused on helping .Net developers get up and running to be able to build CRM customisations quickly!

  1. Lets get set up!

There are many developers who have been working with .Net for the last few years, that are now finding that their companies are either implementing CRM, or deciding to embrace the xRM phenomena and build applications on the xRM platform. This content is designed to help get you up and running as quickly as possible, using the tools that already exist to enhance your development turn around times.

This series will be focussing on the more advanced customisations that require you to use Visual Studio and similar development tools. I am not going to cover Javascript, or UI customisation in this series as there are many great resources available already on these topics. This includes both online content as well as the regularly scheduled Microsoft Instructor Led Course 8912: Customization and Configuration in Microsoft Dynamics CRM 4.0.

In this series, we will start by building a single development environment to walk through the training. Although I will briefly mention the available enterprise tools, this series is not sufficient to cover the recommended development, test and production server requirements for a larger environment. If you need to assess your team development environment options, David Yack's book, CRM as a Rapid Development Platform has an amazing chapter that takes you through several options and gives you some great suggestions based on his extensive experience. I strongly suggest you follow his recommendations for using Visual Studio Team System as a way to protect your customisations through Source Control from development to release. His chapter on Developer and Team Workspace is available as a book excerpt here: http://rc.crm.dynamics.com/rc/regcont/en_us/op/articles/ch3_xrm_dev_sbsbook.aspx

MSDN also has a great article that discusses options for setting up your development environment. http://msdn.microsoft.com/en-us/library/ee294457.aspx in addition to the description of the development environment, it suggests a few other source control options such as Microsoft Visual SourceSafe, CVS, ClearCase, Vault, or alternatively a free, open-source tool call Subversion (SVN).

I have also decided NOT to use the readily available CRM Demo VPC for 2 reasons:

  1. It is only available on Partner Source and I want this content to not be restricted by that.
  2. It is already loaded up with a lot of additional functionality and data as it is designed for demoing the potential of Dynamics CRM. I want this to be based on a clean, fresh installation of CRM.

To build my development platform I followed Matt Witteman's great blog Post: Building a Self Contained Virtual CRM Development Server: http://blogs.msdn.com/crm/archive/2009/05/04/building-a-self-contained-virtual-crm-development-server.aspx.

If you have trouble getting your internet access set up on your VPC, check out this great blog post by Menno te Koppele: http://www.tekoppele.com/Blog/post/2009/06/10/4-Ways-of-Connecting-a-VPC-to-the-Internet.aspx

Note that I have installed Roll Up 7 instead of Rollup 3 as mentioned by Matt and also added Adobe PDF reader.

More Development Tools:

There are a few nice little additional development Utilities/tools that will assist with the development process and you should consider installing.

 

Tool Description
FxCop A free code best practice analyzer. You can incorporate it into your automatic builds and it is highly customizable.
ILMerge A free tool to merge multiple assemblies into a single assembly. Perfect for deploying referenced assemblies with a plug-in or workflow assembly.
.NET Reflector An excellent tool for analyzing .NET assemblies.
Fiddler A free HTTP debugging proxy tool. Fiddler is essential for tracking and parsing the HTTP traffic between Microsoft Dynamics CRM both for development and debugging purposes.
DebugBar A licensed Web development tool that integrates directly within Internet Explorer. Allows you to quickly navigate the DOM of a Microsoft Dynamics CRM Web page.
IE Dev Toolbar A free Web development tool with functionality similar to the DebugBar tool.
NUnit A free, open-source unit-testing framework.
RhinoMocks Another free, open-source unit-testing framework.

If you aren't using these tools already, even for your .Net development, make sure you take a look at them as they are sure to help improve your development quality and experience.

I have installed the freely available Fiddler and the IE Dev Toolbar on our Development VPC. Instead of FxCop, I have installed StyleCop as it is required to support the Developer Toolkit.

Next up, I have installed the highly undervalued and under utilised CRM developer toolkit which can be downloaded from here. I think the CRM Solution Framework is particularly amazing and will greatly increase your ramp up time to develop solutions for CRM. This is especially the case if you are working in a team environment. However, as I don’t have Team Foundation Server installed on this VPC and wont be deploying to multiple servers, I have decided to only install the CRM explorer components as per the following steps (copied from the installer instructions provided on the site above):

Installing the CRM Explorer

To install the CRM Explorer, perform the following steps:

  1. At a command prompt, navigate to the folder C:\CRM Explorer, type setup.exe and then press ENTER.
  2. In the CRM Explorer Package Setup wizard, on the Welcome page, click Next.
  3. On the Select Installation Folder page, accept the default installation path or specify an alternate, select Everyone if necessary, and then click Next.
  4. On the Confirm Installation page, click Next. The Installing CRM Explorer Package page displays installation progress.
  5. When the CRM Explorer package is successfully installed, on the Installation Complete page, click Close.

Once the Explorer has been installed, within Visual Studio, navigate to the Tools, Connect to CRM Server option, enter your server details and credentials.

clip_image001

Go to View -> Other Windows -> CRM Explorer to show the CRM Explorer Window.

clip_image002

The downfall of not installing the additional solution framework is that we wont have access to some of the nifty project structure, built in deployment tools or ability to quickly create plugin classes.  That said, the ease of navigating, viewing & editing the CRM entities with Visual Studio means that there is still more than enough handy features in the Explorer to justify installing it.

Before you start!

Before we start to build anything - always check to see what tools and functionality are already available on the http://crmaccelerators.codeplex.com site. The Product teams have built some great nuggets of functionality that may be very close to what you need to build. For example there are ones for Event Management, Sharepoint integration, Portal Integration, social Networking plus more! Each of the accelerators is provided free & open source, so take a look at the Codeplex site before you start building anything.

Coming Next: Build a Hello World!