The CRM Grid – A Microsoft CRM Blog

Greg Owens’ rose-tinted MS-CRM mumblings

Archive for March, 2008

Microsoft CRM Development Environment (Part 2)

Part 2 of more than one post on the CRM Development environment.

I hope this post will prompt you to share your experiences of these tools and hopefully suggest others that may assist me and other readers with the CRM developments…


Useful Utilities

  • What is it?
    Joris Kalz’s Microsoft CRM Caching Tool
    What does it do?
    This simple utility runs as a Windows service on your (development) CRM server. Periodically it will ping a whole list of MS CRM URLs on your server and consequently keeps the web services “warm”. This is especially useful when the server has been rebooted and you’re accessing CRM for the first time.
    Where do I get it?
    Microsoft CRM Caching Tool (Joris’ blog)
  • What is it?
    Internet Explorer Developer Toolbar
    What does it do?
    This invaluable utility is simply a must-have if you are doing any clientside scripting for CRM. It’s a plug-in for Internet Explorer that provides a new toolbar that allows you to easily explore the DOM of any page you are looking at. After installing this utility, you can click on any object on the screen and see full details of its properties and CSS attributes. Furthermore you can even change some of these properties and see instant feedback on your screen.
    Where can I get it?
    The Internet Explorer Developer Toolbar (Microsoft Download Center)
  • What is it?
    Microsoft Script Debugger
    What does it do?
    It helps… debug scripts. Ok so that’s pretty self-evident. The point here is that IE does not come out of the box with a debugger for when clientside script. Although rudimentary, MSD gets the job done and is a lot more useful than deciphering a vague “Object Expected” error message!
    Where can I get it?
    The Microsoft Script Debugger (Microsoft Download Center)
    Further Reading
    Jonathan Boutelle has an excellent post on using the Script Debugger which is worth a quick read if you’ve not used it before.
  • What is it called?
    CrmDiagToolTurbo
    What does it do?
    This is a tremendously helpful tool that comes into its own when you encounter those infuriating “Contact your System Administrator” error messages. This tool turns all manner of logging and tracing on for your CRM Server and outputs reams of useful, readable plain text. All of the logs it creates can, I believe, be forced into being by changing the registry and a few other places, but this is all neatly handled in a simple winforms application. Perhaps the most useful element (in my experience) has been the ability to get full SOAP tracing from the MSCRM Services since you are then able to view the raw error message that lies behind bland end-user error messages (key violations for example).
    Where can I get it?
    CrmDiagToolTurbo and CrmDiagToolTurbo4 (Benjamin’s blog)
  • What is it called?
    JSLint
    What does it do?
    As far as I’m concerned, despite the fact that it is an insufferable pedant for syntax (probably a good thing, considering its purpose in life!), JSLint helps me to spot those simple but frustratingly impossible to spot syntax errors in your JavaScript code (missing or extra brackets are good examples!). Officially, it’s “a JavaScript program that looks for problems in JavaScript problems”. And it’s free (and nothing like as I,Robot as it may sound!)
    Where can I get it?
    You can’t “get” it, but can use it from Douglas Crockford’s site
  • What is it called?
    SQLInform
    What does it do?
    Hot on the heels of JSLint, how about something similar for your SQL code? It’s not quite a syntax checker, rather it “beautifies” your SQL code by applying regular formatting. I find this particularly useful when working with Reporting Services reports, where the IDE has a charming habit of reformatting all of your nicely structured SQL code into a contiguous ugly blob of words. Fine if you’re a computer but hard as heck to read and amend…SQLInform is Java based and can run in your web browser or there’s also a standalone version for while you’re on the train 😉
    Where can I get it?
    See Guido Thelen’s site for the hosted and downloadable versions
  • What is it called?
    TextPad
    What does it do?
    It is a plain old text editor. We all have our favourites and Textpad is mine. Some of the things I really like about it:

    • Regular expression based searches, within files and across directory trees
    • Macro support
    • Downloadable/customisable syntax files
    • Option of Microsoft-a-like shortcut keys

    Where can I get it?
    It’s not free, but it’s not pricey either (£16.50). See www.textpad.com

  • What is it called?
    HTML Match
    What does it do?
    It’s a visual differencing tool, designed for web pages but perfect for comparing all sorts of other (non-binary) files. I’ve found this useful when comparing lengthy program output during testing, muddled file versions when developing Javascripts and even for troubleshooting unexpected problems in Exported Customisation XML files.
    Where can I get it?
    Another really cheap tool at US$ 27.50. See http://www.htmlmatch.com/
  • What is it called?
    The Microsoft CRM forums
    What does it do?
    Often, all the things you can’t do yourself! There are three busy forums full of knowledgeable professionals and just as importantly, others with less knowledge but asking the questions you want the answers to! The forums are a trove of information and a brief search across the topics will often find an answer to the majority of CRM questions that occur.
    Where can I get it?
    Links to all three forums are available here

I’m sure there will be other things that occur to me for this list, but please comment to add your own to this discussion 🙂

Microsoft CRM Development Environment (Part 1)

Microsoft CRM development seems simple enough, but I thought I’d post on what my own development environment typically looks like and provoke a little feedback. Maybe there are some tips and tricks out there that we’re not sharing because we assume that everyone’s doing things the same way! And yes – I know some of this is probably REALLY basic stuff that everyone knows – but assumptions are bad (well, they can be) 😉

This is part 1 of…. more than 1.

Virtual PC Images

MS VPC is an obvious choice since it is free and more importantly it’s portable but there are of course alternatives (I’ve not heard a bad word about VMWare yet). You can’t really try the VPC route with any old piece of kit though. I run my dev environment on a 2GB dual-core 2Ghz HP laptop. It’s not the quickest, but is perfectly comfortable for most things I throw at it.

A Microsoft CRM environment needs Active Directory, Windows Server 2003, IIS, SQL Server, Exchange, Outlook client, Microsoft Office… According to Simon Hutson at Microsoft this is at least 3 VPCs’ worth of applications.

There are blog postings (see further reading, below) which explain how to condense all this into one tidy little image which is great. On my first deployment however, I opted to avoid all the awkward registry hacks and first try running two VPCs – Active Directory and Exchange 2003 on one image and CRM/SQL/client on the other.

I have to say I haven’t been disappointed. Since Exchange and AD often don’t need to do much, I knocked the RAM down to 256MB for that image and give about 1.5 GB to the CRM/SQL machine. I also have the luxury of this laptop being a dedicated test environment that I use alongside my desktop PC.

I do occasionally have a few frustrations with the speed of web-services warming up, but even this has been alleviated to some extent by using the CRM Caching tool…

Further reading: