This will be the first post in a series relating to application development. Over the course of this series the following topics will be covered:

  • Application which Connect to CRM
  • ASP.NET Applications on the CRM Server
  • ASP.NET Applications on the Offline Client
  • Plug-Ins
  • Workflow Activities
  • Scripting
  • Setup and Deployment
  • Application Configuration

Both Visual Studio 2005 and Visual Studio 2008 serve as excellent platforms for CRM application development. I recommend using a single Solution to house all the Projects you'll create during your development cycle. It's important to understand the four fundamental types of projects that you'll create:

  • .NET Apps which Connect to CRM: These applications maybe of any type as long as they can use SOAP web services. Example types include Windows Forms, WPF Forms, Console Apps, Windows Services etc. You'll use these application for alternative UIs, tools and application integration.
  • ASP.NET Apps which run 'inside' CRM: These web applications run in the 'context' of CRM itself. They must be coded, build and deployed within a set of specific boundaries. You'll typically 'frame' these apps within CRM as pop-ups, IFRAMEs and menu navigation.
  • Plug-In/Workflow Assemblies: These DLLs inherit from specific classes (CRM and WinWF respectively). The DLLs are then registered inside CRM to be executed at specific times. You'll use these to run your complex business logic and to orchestrate complex integrations.
  • Setup: You'll want to create some setup projects to taking the output from these Projects and get them on to the client and server.

Another item to consider her is Multi-Tenancy. Developers need to get their code out to the CRM Application Servers and onto the Offline Clients. However they won't necessary want to configure it yet. In a later post I'll discuss the differences between deployment and configuration of solutions.

Throughout this series of posts we will refer to this solution cycle: Code >>> Build >>> Deploy >>> Configure.

  • Coding: How to write the solution.
  • Build: Compilation techniques.
  • Deploy: Distribution of the solution.
  • Configure: How to get the solution 'running' on a per org basis.

In the next post we'll discuss how to set up your development environment. Stay tuned.