Whether it’s developing CRM plug-ins, custom workflow activities, or writing stored procedures against the CRM database, the most useful tool I’ve used is the Microsoft Visual Studio Debugger. The debugger allows developers to step through the code for the above mentioned scenarios and has saved me hours!
Microsoft has phenomenal documentation on how to setup remote debugging:
The biggest issues I’ve had trying to setup the debugger has always been with permissions. I would recommend paying especially close attention to this section. The next biggest issue I had was trying to attach the debugger to a running process: http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx
Once you’ve setup Visual Studio debugger, you can attach the following processes for the following CRM components:
- For plug-ins, attach the debugger to the w3wp.exe process.
- For custom workflow activities, attach the debugger to MSCRMAsyncService.exe
- For stored procedures, attach the debugger to sqlserver.exe
Once the debugger has been attached, you must set a breakpoint in the code (either the .NET or T-SQL code). After the breakpoint is set, to test, do the following:
- For plug-ins, login to CRM and execute actions that will trigger the plug-in, such as create/update/assign a record.
- For custom workflow activities, login to CRM and perform actions that will trigger the workflow. With this, being that it’s an asynchronous service, you’ll have to wait until that service runs, and then Visual Studio will let you step through the code.
- For the stored procedure, just execute the stored procedure in Visual Studio and it will go right to the breakpoint.
I hope this post will help CRM developers save time and effort. I use the debugger every time I develop now to test and it’s saved me tremendous amount of maintenance time and effort after the code has been deployed. Happy debugging!