Error of the Day: Could not load file or assembly Microsoft.Crm.Site.Services
So one of my SnapShot! customers in Switzerland was unable to connect to an instance for one of their customers.[...]
Should I bring back Free Webinar Friday?
Hi Everyone, For about three years I had a program called Free Webinar Friday, which was, well, a free webinar[...]
Learn Dynamics 365 Advanced JavaScript Development Today!
Hi Everyone,This afternoon I recorded a quick video where I descibe my Dynamics 365 Advanced JavaScript development course.Take a look[...]
Spring edition of my Dynamics 365 Advanced JavaScript Development course is now live
As of this morning, the doors of my Dynamics 365 Advanced JavaScript Development course are now open. They will close on[...]
Spring Edition of Advanced Dynamics 365 JavaScript Course Arrives Friday (3 May)
On Friday, 3 May, the doors to the Spring Edition of my Advanced Dynamics 365 JavaScript course will be open[...]
PowerApps Form Editor Preview First Look
Here is my first look at the new PowerApps Form Editor Preview for model-driven PowerApps.This will be the eventual replacement[...]
Beginning of the Year Sale on SnapShot! Happy New Year!
Hi Everyone, Well 2019 is finally in full swing and I hope everyone had a wonderful holiday season.  I have[...]
Quick-Tip: The Dangers of Dynamics 365 JavaScript and Clipboard Inheritance
Hi Everyone, I posted a quick video on my YouTube channel where I discuss the dangers of cutting and pasting[...]
Advanced Dynamics 365 JavaScript Development Course is now open
Hi Everyone, Advanced Dynamics 365 JavaScript Development course is now open. The shopping cart will close on Friday, 2 November[...]
Advanced Dynamcis 365 JavaScript Development: Giveaway ends today. Shopping cart opens tomorrow
Hi Everyone, The giveaway for free tuition for the Advanced Dynamics 365 JavaScript Development course ends at 7:00pm CDT tonight.  If[...]
5 myths about Dynamics 365 CE JavaScript development
Hi Everyone,   I thought that I would take a few minutes to discuss a few myths that I have[...]
Twelve Weeks of Commitment to Learning D365 JavaScript
On Saturday, 3 November I am re-launching my Advanced Dynamics 365  JavaScript Development course.  As I mentioned earlier, we’re going[...]
Walk-Through of the New Dynamics 365 Admin Portal (Preview)
Hi Everyone, I was performing some admin work and decided to take a first-look at the new Dynamics 365 CE[...]
Advanced Dynamics 365 JavaScript course arrives in May. Free Giveaway!
Hi Everyone, The Spring edition of my my Advanced Dynamics 365 JavaScript course will be available in early May. Training[...]
CRMUG Summit Training: Learning Dynamics 365 CE JavaScript for non-developers – Phoenix 2018
Hi Everyone, If you are going to be at the CRMUG Summit in Phoenix this month, consider attending my one-day[...]
So how about an update to the ultimate Dynamics CRM/D365 CE Documentation tool????
Hi Everyone, Today I present to you the latest version of SnapShot!, the ultimate documentation too for Dynamics CRM and[...]
Free Webinar Friday Recording: Managing the Dynamics 365 Online Environment
NOTE: There was an issue with the recording and the entire screen is not being captured. In this week's webinar we[...]
Free Webinar Friday: Preparing Your Company for Dynamics 365 V9
Hi Everyone, Dynamics 365 v9 will be appearing sooner rather than later and we need to discuss what impact it[...]
Free Webinar Friday Recording: Dynamics 365 Introduction to Security
This week’s webinar is: Dynamics 365- Introduction to Security Security is one of the major topics of interest for any[...]
PowerShell script to show all of the Dynamics 365 packages on Nuget
  Just leaving this here.  A PowerShell script to show all of the Dynamics 365 packages on Nuget:  find-package author:crmsdk[...]
Visual Studio Error Solved:The property could not be read/written because the language service returned an unknown error
One of my products has been acting “funny” for a while and I have not been able to figure out[...]
Free Webinar Friday: Preparing Your Company for Dynamics 365 V9
Hi Everyone, Dynamics 365 v9 will be appearing sooner rather than later and we need to discuss what impact it[...]
Free Webinar Friday Recording: Dynamics 365 v9-Introduction to Virtual Entities
Dynamics 365 v9 added a new Virtual Entity feature. In this webinar we will explore how you can add external[...]
Free Webinar Friday Recording: Dynamics 365-Starting from Scratch
This week I thought I would try something that is a little bit different than what you may be used to[...]
Free Webinar Friday Recording: Dynamics 365 v9: Working with Multi-Select OptionSets
Additional Resources:​Multi-Select Picklist attributesDynamics 365 v9.0 – Set Multi-Select Option Set values using JScriptDynamics 365 v9.0 – Set Multi-Select Option[...]
Free Webinar Friday Recording: Dynamics 365 v9 JavaScript Object Model Changes
If you are just beginning your journey in to Dynamics 365 JavaScript development, then visit my learning portal for JavaScript[...]
Free Webinar Friday Recording: Introduction to Dynamics 365 Field Service
Additional InformationField Service Demo DataBlog Post: Lessons Learned: Installing Dynamics 365 Field Service Mobile App
Lessons Learned: Installing Dynamics 365 Field Service Mobile App
This information is valid as of September, 2nd, 2017 and is subject to change without notice.   So I have[...]
Dynamics 365 JavaScript Development Workshop (online) is now live
Hi Everyone, Well I have finally finished and published by first on-demand workshop: Dynamics 365 JavaScript Development. This is an[...]
Free Webinar Friday Recording: Voice of the Customer
Notes: Here are some articles that will help you get started with Voice of the Customer Create a Voice of[...]
SnapShot! v4.5 for Dynamics CRM/365 is now available
Hi Everyone, It is said that a journey of 1000 miles starts with a single step. On this, I wholeheartedly[...]
Free Webinar Friday: Looking for topic suggestions
Hi Everyone, As we enter the second-half of 2017 I want to make sure I've covering the topics that interest[...]
Current list of Dynamics 365 Online regions
As of 15 May 2017, here is a list of the current Dynamics 365 Online regions: North America ( South[...]
Free Webinar Friday Recording: Working with SLAs and Entitlements
Last week's webinar on SLAs and Entitlements is now available on YouTube. You may also wish to review the previous[...]
Free Webinar Friday Recording: Dynamics 365 Customer Service Automation Features
<h3>Related Webinars</h3><p><a draggable="false" href="">Introduction to Dynamics 365 Customer Service Features</a></p>
Vote for CRM Idea: CRM portals sandbox license
If you didn’t know, Microsoft moved from Connect to the new Ideas portal last year in hopes of soliciting additional[...]
Demo dataset for Microsoft Dynamics 365 for Field Service
If you are interested in the Dynamics 365 Field Service module, and quite honestly, who is not, you may find[...]
Decoding Data Import Errors: The file specifies a list value that does not exist in Microsoft Dynamics CRM
Data import is equal parts science and magic, but leaning heavily towards the magic side. Sometimes the errors you receive[...]
Registration for the Dynamics 365/CRM JavaScript Development Workshop Ends Soon
Hi Everyone, I wanted to remind you that registration for next week’s Dynamics 365/CRM JavaScript Development workshop will end at[...]
Error of the Day: You need a Microsoft Dynamics CRM Online license to continue
I ran into a situation yesterday where a customer was seeing this very scary error message:     This is[...]
Dynamics 365 Learning Path Authoring. Part 1: Getting Started
Yesterday the Microsoft Dynamics 365 Team announced that Learning Path Authoring was now available.  In this article, I’ll walk through[...]
Dynamics CRM/365 SDK Locations
Many of my training classes mention this list of the various Dynamics CRM SDKs so I thought I would post[...]
Free Webinar Friday Recording: Becoming a Dynamics 365 Developer
<p>I get asked quite often what it takes or how someone should begin a career that leads them to be[...]
Free Webinar Friday’s are Back!
Hi Everyone,   Free Webinar Friday’s are back and here is the schedule for the next few weeks:   Becoming[...]
ALWAYS maintain control of your Dynamics CRM/365 assets
One of my customers learned (hopefully) a very important lesson this week regarding the protection of their Dynamics CRM/365 assets. [...]
Dynamics CRM Deep Dive: Administration is available in the UK and Europe
Hi Everyone, It looks like the replication to the other Amazon markets is complete. Amazon UK Amazon Germany Amazon France[...]
My Dynamics CRM Deep Dive: Administration book is finally published
Hi Everyone, After multiple revisions and proofs, my Dynamics CRM Deep Dive: Administration book is now available for purchase at[...]
Dynamics CRM Error of the Day: Internal error: Server stack limit has been reached
Hi Everyone, Here is a new error condition I thought I’d let you know about. One of my customers purchased[...]
My new favorite SnagIt feature: Removing Cursors
In the haste to get your screens captured, I’m sure we have all grabbed an image only to find that[...]
Dynamics CRM Security: Crossing your I’s and Dotting your T’s
I learned an important lesson, again, for making sure you have all of your facts. This is often referred to,[...]
Two Steps to Becoming a better Dynamics CRM JavaScript Developer
Happy Friday everyone. I get asked all of the time about becoming a Dynamics CRM Developer or becoming a better[...]
Dynamics CRM SDK Version 8.1.0 Release Notes
The Dynamics CRM SDK was updated on 6 May and here is a list of the changes. Apply SLAs to[...]
What’s new for administrators and customizers in Microsoft Dynamics CRM 2016 and CRM Online
I accidentally stumbled across this article today.  Really worth the time and effort to read and a really great summary[...]
First look at the Dynamics CRM Organization Insights Dashboard Preview Feature
Dynamics CRM Online 2016 Update 1 has included a preview feature to allow you to view some collected statistics on[...]
Developing Dynamics CRM Plugins? I could use some feedback
Hey Everyone, I’m finishing up my Deep Dive Plugins book and I am curious about the types of examples you[...]
Bad Design: A tale of De-Architecture and De-Engineering
Every one of us has been guilty, or will be guilty, of creating a bad solution to a problem at[...]
Office 365 Support and Recovery Assistant (SaRA) adds Dynamics CRM diagnostics
  Just in case you missed the announcement, the Office 365 team has adding the Dynamics CRM Outlook Client to[...]
Setting a Dynamics CRM field’s value to Title Case using JavaScript
In a thread on one of the community forms, Debra asked how to properly add some JavaScript she had found[...]
Dynamics CRM Webinars for May from xRM Coaches
  Hi Everyone, This month I will be holding the following webinars: Defining and creating your Sales Process within Dynamics[...]
Repurposing Dynamics CRM Fields. Just Say No!
I was preforming a pre-upgrade cleanup for a customer when I ran into this: As you can see, they took[...]
Is it time for you to hire a Dynamics CRM Coach?
Hi Everyone, Have you ever seen a sports team without a coach? Probably not. Coaches can help guide both the[...]
Update a closed Dynamics CRM Opportunity? Impossible! Yet you can.
Everyone knows that you can’t update a closed record within Dynamics CRM, right?  I mean, everyone knows that. But what[...]
5 Ways that SnapShot! for Dynamics CRM will save your …
SnapShot! for Dynamics CRM is the ultimate documentation tool for your Microsoft Dynamics CRM organization. It produces reports that can[...]
Dynamics CRM JavaScript Learning Plan now available
Happy Friday Everyone, I’ve released a free learning plan for those of you interested in Dynamics CRM JavaScript. It shows[...]
Trainer/Presenter Tip of the Day: Cough Drops
One of the little tricks I learned while conducting webinars, training, or presenting, is to always have cough drops (throat[...]
Now Available: Introduction to JavaScript Training Guide
Happy Friday Everyone, I just released a free Introduction to JavaScript Training Guide for those of you who are looking[...]
Enhancing the GoToWebinar Connection from Thrive Themes
I am in the process of moving all of my websites over to Thrive Themes (which I really love, by[...]
Now Available: Fun with fields, a Dynamics CRM Customization Training Guide
Happy Friday Everyone, I have just released a new training guide for those of you interested in growing your Microsoft[...]
Dynamics CRM SDK 8.0.2 is available
The SDK for Dynamics CRM 2016 has been updated. You may download it here. Release history for SDK Version 8.0.2,[...]
SnagIt Cut Out Options
I use Techsmith’s SnagIt utility every day for just about everything: blog posts, documentation, troubleshooting, etc. One of the features[...]
Unexpected interaction between a Plugin and the Dynamics CRM Social Pane
One of my customers has customized the Appointment and added Appointment Type and a Competitor fields to allow them to[...]
V4.3 of SnapShot! for Dynamics CRM is available
  Version 4.3 of SnapShot! for Dynamics CRM is available and you may read more about it here: Most[...]
A trip down .NET Application upgrade lane
All of my Dynamics CRM-related utilities have, until this point, been built and maintained with Visual Studio 2010, which is[...]
v4.1 of SnapShot! for Dynamics CRM Released
Hi Everyone, I’ve released a new version (4.1) of SnapShot!, my documentation tool for Dynamics CRM.  Here are some of[...]
v4.0 of SnapShot! for Dynamics CRM is available
Hi Everyone, Version 4.0 of SnapShot! is now live.  This is the most major update I’ve made in quite a[...]
A journey of a thousand miles starts with a single step–and a Blog Post
Hi Everyone, I started this blog in December of 2005. Ten years and 1,069 blog posts later, I thought it[...]
CRM 2016 – Online vs on-premises features FAQ
More greatness from our Dynamics CRM documentation team.  Thanks Amy!
Security Reports: The coolest feature of SnapShot! for Dynamics CRM
Ok, maybe I am biased, but I am really proud of the security reports that SnapShot! generates. Here is what[...]
What exactly is a minimum viable product (MVP)?
Earlier this month I gave a talk to several groups of 8th graders at a middle school where a friend[...]
Why do you not blog: A Challenge
Everyone should have a blog, as I have stated many times in webinars or in conference presentations.  Everyone has unique[...]
Readonly Fields and The Dynamics CRM Workflow Editor
I ran across an issue this week creating a workflow for an entity that had fields set to read-only. If[...]
MVP Renewed
I got MVP renewal package today: Now just waiting on my 10 year disk! Still one of the greatest honors[...]
Transformer! 3.0 is available. Convert your CRM 4.0 JavaScript to 2011+ in minutes
Version 3.0 of Transformer! for Dynamics CRM is now available. The main addition to this version is the ability to[...]
Transformer! 3.0 for Dynamics CRM Released
Version 3.0 of Transformer! for Dynamics CRM is now available. The main addition to this version is the ability to[...]
More Azure ADAL error handling
Back in October I published a post titled: How to capture moble login errors with Azure ADAL. Here is an[...]
Dynamics CRM Code Snippet: Get Maximum Attachment Size Limit
If you are ever working with any code that needs to upload attachments to Dynamics CRM, you may run into[...]
Dynamics CRM 2015: Invalid Argument error encountered while merging records
This morning one of my customers ran into this error while merging two Accounts: Not very descriptive and since the[...]
Dynamics CRM Developer Tip O’ the Day: Does the user have a security role?
Occasionally, when working with .NET and the Dynamics CRM SDK, you’ll find a need to see if the current user[...]
v4.0 of SnapShot! for Dynamics CRM is available
Hi Everyone, Version 4.0 of SnapShot! is now live.  This is the most major update I’ve made in quite a[...]
Notes from the Field: Working with Dynamics CRM Dialogs
Here are a few notes I’ve collected while working with a Dynamics CRM project involving dialog processes: Required Fields There[...]
How to capture moble login errors with Azure ADAL
If you are creating a mobile application that uses the Azure Active Directory Access Library (ADAL) component, you will need[...]
Elements of Great Design:
Every now and then, I run into someone who is really thinking out of the box so this week’s “Hats[...]
Dynamics CRM JavaScript: Ensure the current record is Saved before opening a new record
In yesterday’s post, Tracing the Dynamics CRM Form Data save Operation, I discussed identifying data that would be sent to[...]
Tracing the Dynamics CRM Form Data save Operation
I ran into an interesting issue this week where I was opening up a new Opportunity Entity form from the[...]
How about an upgrading Dynamics CRM webinar?
Hi Everyone, I have added a new poll to my site to gauge interest in a webinar that walks you[...]
Dynamics CRM JavaScript: Working with Tabs and Sections-The right way
Back in March I wrote the following article: Dynamics CRM Developer Tip O’ the Day: Working with Tabs. Today I[...]
Help! I can’t create quotes!
[Dynamics CRM 2013] One of my customers emailed in a panic (rightfully so), because they could not create a Quote[...]
Source code recovery tip: Was this written in c# or VB.NET?
Every now and again I run into the unfortunate circumstance where someone has lost the source code to a Dynamics[...]
Xamarin Dev Days: Dallas
We had a huge turnout today in Dallas for Xamarin Dev Days. Here we have @JamesMontemagno and @shawnweisfeld performing an[...]
Dynamics CRM Upgrade Blocker: Orphan Plugin Step Image records
Last week I was working with another Microsoft partner who was upgrading a customer’s Dynamics CRM from 2011 to 2015[...]
I just can’t brainstorm without a whiteboard
I’m at the office today working on some new business initiatives mainly because I have two huge whiteboards in my[...]
Manually Repairing a Sitemap. Part 1
As I mentioned a couple of week ago, my upgrade from CRM 2013 to CRM 2015 did not go well.[...]
SnapShot! 3.7 for Dynamics CRM is Available
My Dynamics CRM documentation tool, SnapShot!, version 3.7 is now available. This version includes the following enhancements and corrections: Compatibility[...]
SnapShot! 3.7 for Dynamics CRM is Available
My Dynamics CRM documentation tool, SnapShot!, version 3.7 is now available. This version includes the following enhancements and corrections: Compatibility[...]
Final eminder: Turn your .NET Developer into a Dynamics CRM Developer Class
Just a reminder but registration ends on Thursday at Noon (CDT) so be sure to register before then. Turn your[...]
Working on your personal brand
This Spring I was teaching a Dynamics CRM course at Minnesota State University Moorhead and we got into a discussion[...]
Announcing my Mentoring Program
Hi Everyone, I decided to formalize my mentoring program to hopefully open the door to more organizations. This is a[...]
Solution: Cannot load shared project in Windows Universal app after upgrading to Azure SDK 2.6
If you had any Visual Studio projects using the Shared Project model, you probably noticed that the installation of the[...]
Discovering Great Moments in UX Design
Every now and then, you run across something that is truly amazing. This happened to me today as I was[...]
Using the Xamarin Forms InputTransparent Property
The Xamarin.Forms.VisualElement class has a property called InputTransparent, that: Gets or sets a value indicating whether this element should be[...]
Webinar Campaigns with Click Dimensions
I have been doing a lot of webinars lately through my Teaching Tuesdays program and in doing so, I am[...]
New Xamarin.Forms Control: WaitingPage
Last week I got into a conversation with Christine Blanda on the Xamarin Forms forum about creating a page that[...]
Dynamics CRM 2015 Spring: Delete Plug-in Trace Log Records
So I am digging around the Dynamics CRM 2015 Spring Update, as I am apt to do, when I ran[...]
Query an NTP server for the current internet time using Xamarin Forms
There were a couple of threads (here, and here) this week regarding querying an Internet-based time server using Xamarin forms.[...]
working with the ListView.GroupHeaderTemplate
One of my current projects makes used of ListView Grouping and for quite some period of time, I could not[...]
Dynamics CRM 2015 Spring: Older than ‘X’ Query Conditions
Yay Team!  Here is a bright and shiny bit of newness that has been added to the Date field condition[...]
Beacon Idea #7: Where did they go?
Xamarin is holding contest to get ideas of how beacons (iBeacons) can be used to context-aware mobile applications. I have[...]
Beacon Idea #6: Your bag has arrived
Xamarin is holding contest to get ideas of how beacons (iBeacons) can be used to context-aware mobile applications. I have[...]
Beacon Idea #5: Retail, Analysis, and Dynamics CRM
So if you have been reading my blog frequently over the past few months you will notice that I have[...]
Taking screen shots of a mobile application
There was a really great thread on the Xamarin Forms forum yesterday regarding taking screen shots of your mobile application.[...]
Beacon Idea #4: Restaurant Check-in and Loyalty Program
Xamarin is holding contest to get ideas of how beacons (iBeacons) can be used to context-aware mobile applications. I have[...]
Beacon Idea #3: Find my friends
Xamarin is holding contest to get ideas of how beacons (iBeacons) can be used to context-aware mobile applications. I have[...]
Beacon idea #2: Don’t touch my beer
Xamarin is holding contest to get ideas of how beacons (iBeacons) can be used to context-aware mobile applications. I have[...]
Beacon Idea #1: Did I take out the trash
Xamarin is holding contest to get ideas of how beacons (iBeacons) can be used to context-aware mobile applications. I have[...]
Dynamics CRM Developer Tip O’ the Day: Working with Tabs
I learned an important lesson yesterday, again, on working with tabs with Dynamics CRM forms. There are several ways to[...]
Dynamics CRM 2015 Spring: Plugin Trace Log
Yay! Finally, the good folks on the Dynamics CRM team have added the ability to log errors that occur in[...]
Dynamics CRM 2015 Spring: New Forms Engine
The Spring Release of Dynamics CRM 2015 includes a new forms engine. You may have seen reference to this feature[...]
Convergence Wrap-Up
This year’s Convergence conference in Atlanta was a blast.  Lots of new announcements for both the Dynamics product line as[...]
Azure March Announcement
Microsoft just keeps releasing new stuff: Join the virtual event to watch as Scott Guthrie announces an exciting new Microsoft[...]
Xamarin.Forms: Solving the mystery of Grid.Children.Add(left,right,top,bottom)
The Xamarin.Forms Grid layout has three methods for adding Child views to the grid. Two of them allow you to[...]
Bulk-Editing Marketing List Members
Like many people, I used marketing lists extensively to track different groups of people that I work with. Today I[...]
Click Dimensions Email Sends: Don’t Panic
Just a reminder, but when you are using the Email Send functionality of Click Dimensions, the sending is not always[...]
Remove Old Click Dimensions System Jobs
Click Dimensions uses a variety of workflows to accomplish tasks behind the scenes and depending on your usage, you can[...]
Correcting Filtered Views and an Inaccurate “First ten” list
I ran into a situation at one of my customers while performing an upgrade from Dynamics CRM 2011 to 2015.[...]
System-Wide Alerts in Dynamics CRM 2015
Dynamics CRM 2015 implemented a new system-wide alerts to inform you of issues with things like the Server-side Sync process.[...]
Dynamics CRM Environment Diagnostics.
When you install Dynamics CRM (on-premise) or import an existing organization database, it performs a series of environmental checks to[...]
21 Squared: CRM Administration (On-Premise) is now live
After 123 pages and 19,073 words (according to Microsoft Word, anyway), the 21 Squared: CRM Administration (On-Premise) self-paced course is[...]
Click Dimensions QwikTip: Posted Forms-How many of what?
I use Marketing Lists as my primary driver for my communications efforts and most of my marketing efforts, whether it[...]
Visual Studio: Where did my macros go
  So I have this open-source project that I created a couple of years ago that helps the Dynamics CRM[...]
CRM JavaScript Conversion Strategies Summary
Over on my main company site, CRM Accelerators, I have concluded a series on strategies related to converting your JavaScript[...]
JavaScript Upgrade Strategies: The Results
So this is the conclusion to my JavaScript Upgrade Strategies series. So now that I have told you how to[...]
JavaScript Upgrade Strategy #16: Testing, Testing, Testing
Nothing beats real testing to shake out the bugs on a newly migrated system. These should include: Real users Real[...]
Dynamics CRM 2015 Implementation Guide 7.0.1 (January 2015)
There is an update to the Implementation Guide available on Technet: At this point, this information is not available[...]
The often overlooked Xamarin.forms scale property
Sometimes it is the simplest things that make me happy.  I was digging through some Xamarin.Forms code on Github when[...]
JavaScript Upgrade Strategy #15: Consider disabling your plugins during testing
As you are migrating and testing your code, it may be a good idea to disable any plugins that fire[...]
JavaScript Upgrade Strategy #14: Minification
Minification is the process of reducing the amount of space a JavaScript file occupies by removing things like formatting and[...]
Click Dimensions QwikTip: Create a standard blank email template
I have found it very convenient to have a standard email template to use as a basis for sending out[...]
JavaScript Upgrade Strategy #13: Remove Unused Web Resources
Speaking of feature creep, web resources are one of the few system-level data items that can sort of build-up over[...]
Dynamics CRM: The error is not always what you see
One of my customers has had an issue with their CRM system since I upgraded them from Dynamics CRM 4.0[...]
JavaScript Upgrade Strategy #12: Refactor, Refactor, Refactor
I really cannot emphasize this enough, but this is your chance to fix all of your code and architecture issues.[...]
Finding all activities for a particular entity type
I am in the process of migrating one of my customers from Dynamics CRM 2011 to Dynamics CRM 2015. While[...]
SnapShot! 3.6 for Dynamics CRM released
SnapShot! 3.6 is now available. You can read more about it by visiting the SnapShot! product page. You may also[...]
Recommendation: Aspose Words and Cells
Several of my tools generate Microsoft Excel and Word documents as part of their output and for the longest time,[...]
Developing applications for multiple versions of Dynamics CRM
As most of you know, I have a several add-on products for Dynamics CRM developers, administrators, and consultants. They all[...]
Dynamics CRM 2013 and 2015 Installation Notes: SSRS
I ran into a couple of things while performing a fresh on-premise installations of Dynamics CRM 2013 and 2015 that[...]
Extended Color Palette for Xamarin.Forms
Way back in 2006 I write an article, Cascading Style Sheet Color chart, with a link to a site that[...]
Microsoft Windows Tip of the Day: Copy a Dialog Box Text
I find it very helpful to have a textual copy of error reports found in dialogs such as the one[...]
Dynamics CRM files do not open in Excel 2013 as expected
[via Susan Bradley] The Excel team blog has an interesting article regarding Excel files generated by Dynamics CRM.   Example[...]
Transformer! 2.10 for Dynamics CRM Released
A new version of Transformer! is now available. This version updates the underlying SDK assemblies that are used to communicate[...]
JavaScript Upgrade Gotcha #5: = does not equal ==
I run into this occasionally when converting Dynamics CRM 4.0 JavaScript into the 2011 object model. Consider this piece of[...]
The value of using Visual Studio to edit your Dynamics CRM JavaScript
As I have stated previously, if you are not using Visual Studio to edit your Dynamics CRM JavaScript, you are[...]
JavaScript Upgrade Strategy #11a: Code Not Configuration
As with many things in Dynamics CRM Development, there are more than one way to do the same task.  Take[...]
JavaScript Upgrade Strategy #11: Configuration vs. Code
Starting with Dynamics CRM 2011, we have the ability to hide form elements (fields, sections, tabs) by using either JavaScript[...]
Reviewing the Dynamics CRM 2013 LegacyFeatureCheck Logs
Here is the detail of that error: Some plug-ins or custom workflow activities in your system appear to be using[...]
Reviewing the Dynamics CRM 2013 LegacyFeatureCheck Logs
Here is the detail of that error: Some plug-ins or custom workflow activities in your system appear to be using[...]
Microsoft Dynamics CRM is becoming more social
The Dynamics CRM team has added YouTube and a Facebook app to their growing list of social and community sites.[...]
Announcing Twenty-One Squared: Self-Study Training for Dynamics CRM
  Twenty-One Lessons in Twenty-One Days I have conducted a lot of training over the past two years but found[...]
Announcing Twenty-One Squared: Self-Study Training for Dynamics CRM
  Twenty-One Lessons in Twenty-One Days   I have conducted a lot of training over the past two years but[...]
New License Available for SnapShot! for Dynamics CRM
I have been working on several upgrade scenarios lately and have decided to offer a new license for my documentation[...]
Using the Xamarin.Forms 1.3.0 ListView.ScrollTo Method
Xamarin.Forms v1.3.0 has a really great addition which allows us to scroll to a specific location within a ListView. ScrollTo[...]
JavaScript Upgrade Strategy #10: Convert Unsupported Code
Again, since we are in refactor mode, now is the time to fix all of your previous decisions.  Some, or[...]
JavaScript Upgrade Strategy #9: Replace SOAP Calls
When developing in Dynamics CRM, sooner or later you will find a requirement to perform some type of database operation.[...]
iFrames and Relative Paths
I ran into this issue again and although I am sure I write about it before, I can’t find a[...]
JavaScript Upgrade Strategy #8: Eliminate Single-call Methods
When your Dynamics CRM 4.0 JavaScript is converted to the Dynamics CRM 2011 object model, all of the events are[...]
JavaScript Upgrade Strategy #7: Code Consolidation
Continuing on our refactor process, we enter the code consolidation phase. This includes the following processes:   Remove duplicate functions[...]
JavaScript Upgrade Strategy #6: Code Removal
One of my absolute joys when upgrading a Dynamics CRM organization from 4.0 to 2011 is the chance you get[...]
JavaScript Upgrade Strategy #5: Web Resource Organization
When designing or re-designing JavaScript Web Resources, there are a few practices that I like to follow:   One web[...]
JavaScript Upgrade Strategy #4: Reorganize your functions
Here is a fairly typical view of the function tree of a Dynamics CRM 4.0 organization for the Account entity:[...]
Troubleshooting Dynamics CRM: The Mother of all call stacks
So one of my customers ran into this issue while opening an Opportunity.  As you can see, a custom plugin[...]
JavaScript Upgrade Strategy #3: Use Visual Studio (with add-ins)
One of the best practices a Dynamics CRM developer can follow is to use Visual Studio to edit your JavaScript. [...]
XRM Toolbox Updates
The XRM Toolbox for Dynamics CRM is a collection of utilities for Dynamics CRM developers and administrators, written by fellow[...]
Creating a semi-transparent background with Xamarin.Forms
I picked up a really cool tip from Rui Marinho and @DhirendraKumar in answer to a forum post last month.[...]
Upgraded Dynamics CRM 4.0 Anomaly
One of my SnapShot! customers ran into what could be one of the strangest anomaly’s this week that I thought[...]
SnapShot! 3.4 for Dynamics CRM released
Version 3.4 of SnapShot! for Dynamics CRM is now available. This release corrects two issues that were found when running[...]
GotoMyPC as a Mobile Developer Productivity Tool
Like most Xamarin developers I have a Mac setting on my desk.  Unfortunately I do not find myself to be[...]
JavaScript Upgrade Strategy #2: Upgrade your object model
After you get your development up and running, one of the first things you need to do is to convert[...]
New tool for Dynamics CRM Developers: CRM REST Builder
Fellow MVP Jason Lattimer (@JLattimer) has released a really cool tool for us Dynamics CRM JavaScript developers: CRM Rest Builder[...]
“Object reference not set to an instance of an object” error occurs when configuring the Microsoft Dynamics CRM for Outlook client
Here is an interesting issue related to Dynamics CRM 2013 and the Outlook client.
JavaScript Upgrade Strategy #1: Create a test environment
Upgrading your Dynamics CRM organization from version 4.0 to anything newer can be a lot of work. The amount of[...]
The importance of correct time when working with Dynamics CRM
Time is a funny thing.  Invented by scientists to keep everything from happening at once, and the thing that drives[...]
Updating Xamarin.Forms using Nuget when Resharper is installed
Nuget is the direction that may developers, including Xamarin, are moving as far as pushing components into solutions written using[...]
Setting a Section Label based on a Field Value
I was adding some “fancy” to a Contact form today that I thought I would share with you: [wpgist id="38d9fb0f91118186f96e"][...]
Event Follow-up using Click Dimensions Event Registration Data
In our previous article, Click Dimensions: Use webinar data to create marketing lists, we discussed how to create marketing lists[...]
Transformer! 2.8 Released
Hi Everyone, I have an update to Transformer!, my JavaScript conversion utility for Dynamics CRM.   You may download the[...]
Click Dimensions Survey Tip of the Day: Email Field
Surveys are a great feature of Click Dimensions because it allows you to collect information directly from a person, then[...]
Monitor Queue Routing Rule Workflows
We ran into a fascinating issue when creating Routing Rule recently. Here is the rule: This is fairly straightforward, but[...]
Microsoft System Center Management Pack for Dynamics CRM 2013
SCOM Pack for Dynamics CRM 2013 is out. The views, monitors, rules, and knowledge specific to Microsoft Dynamics CRM 2013[...]
JavaScript Upgrade Gotcha #4: The .title property
The .title property in JavaScript is used by Dynamics CRM 4.0 to display a tool tip when you hover a[...]
JavaScript Upgrade Gotcha #3: The .style property
There are certain cases where it is necessary to customize the CRM user interface to perform a specific action or[...]
JavaScript Upgrade Gotcha #2: Using the JavaScript eval method
The use of the JavaScript method eval is considered to be bad coding practice by most of the JavaScript Technorati.[...]
Click Dimensions: Use webinar data to create marketing lists
One of the things that I really love about the integration between GoTo Webinar and Click Dimensions is the ability[...]
JavaScript Upgrade Gotcha #1: The .id property
Consider this code segment: var oField = executionObj.getEventSource(); if ( == "new_field1" || == "new_field2") { // do something[...]
Do not allow bulk email. Good or Bad?
If you have any of the marketing solutions that integrate with Dynamics CRM, like Click Dimensions, Silverpop, or PowerMailChimp,(to name[...]
Enable the Contact Field: Do Not Allow Bulk Email to be used in Advanced Find
It turns out that the Searchable proper on the Contact field Do not allow bulk emails defaults to No, as[...]
Transformer! How to Utilize the Conversion Report
Besides the JavaScript conversion itself, Transformer! produces a Conversion Report that contains a wealth of information to help you migrate[...]
CRM Code Snippet of the Day: IsTeamMember
Here is a small method to help you determine if a User is a member of a specified Team: [wpgist[...]
New SnapShot! for Dynamics CRM pricing
I have decided to drop the prices on the top two tiers of the SnapShot! pricing model.  Here is the[...]
SnapShot! for Dynamics CRM. A brief history
I was updating my web site last weekend and realized that I am coming up on the two year anniversary[...]
Email Router configuration error – “Incoming Status Failure: No results were found”
This turned out to be a very valuable article. Error:  Email Router configuration error "Incoming Status Failure: No results were[...]
Integer-Based Extended Slider for Xamarin.Forms
I was trolling the Xamarin.Forms forum when I saw this question: Can you limit a Slider to only allow integer[...]
My Non-Entry for this year’s Xamarin Xammy Awards
So I am coming out of stealth-mode to announce what I think we all can agree is a “game changing[...]
Enhancing the ClickDimensions Forms CAPTCHA Control
I accidentally figured out a great way to enhance the CAPTCHA control used on ClickDimensions forms to prevent auto-bots from[...]
Monitoring Prospects and their Email Preferences
Microsoft Dynamics CRM has two settings that determine how email is delivered to a Lead, Contact, or Account: Do Not[...]
Searching for Contacts with the Do Not Bulk Email Flag Set
Ok, this is actually a trick, because you can’t.  The attribute on this field that allows it to be searched[...]
SnapShot! v3.3 Released
A new version of SnapShot! for Dynamics CRM is available so if you are needing to produce the ultimate set[...]
Refreshing your development or QA environment with production data
In a multi-server environment (Development, QA/Staging/Testing, Production), you occasionally run into an issue where you need to have the latest[...]
Adding the Addresses navigation link back to the Contact form
I ran into a facinating issue last week. It turns out that the new form for Contact doesn’t have a[...]
Migrating .NET code from Dynamics CRM 4.0 to 201x
Hi Everyone, Since I think a lot of people never get around to searching the archives, I thought I’d mention[...]
Dynamics CRM SDK Nugget: TopCount
I still occasionally run into hidden greatness inside of the Dynamics CRM SDK.  Last week I found a great addition[...]
Creating a drawing app using Xamarin.Forms
So Xamarin released an update (v3) last week and it is truly a huge step forward for mobile developers.  So[...]
Updating the Android SDK with Visual Studio 2013 and Xamarin 3
I had a few minutes this morning before one of my classes and thought I’d start working with the new[...]
Important information about supported configurations in the next release for CRM
The CRM team just released the new supported configuration information for the next release of CRM:
Workflow ownership and disabled users
I and into a situation this week that I have never encountered.  Some of my workflows were in a waiting[...]
Have you signed up for KnowledgeBit delivery yet?
Hi Everyone, KnowledgeBits, my new free information-delivery service, is almost fully populated and will finish going live this week.  The[...]
Correcting Email Router issues after transitioning CRM Online to Office 365
I had one of my CRM Online organizations transition to the O365 platform a couple of weekends ago.  Not exactly[...]
Dynamics CRM, PowerShell, and Async Operations
Have you used the Dynamics CRM PowerShell commandlets to automate any of your deployment tasks?  If not, then you should. [...]
The quickest way to get the ID of the current CRM User with .NET
In case you have ever wondered or needed to know, here is how you get the ID of the current[...]
How to find what does not exist
Using a static Marketing List to identify records where a specific criteria does not exist Today we have a guest[...]
Correcting iOS Deployment Failures with Xamarin Visual Studio Plugin
So picture this: I am trying to get my very own C# t-shirt by compiling the Xamarin Store App using[...]
Plug-ins and Entity Reference fields. Things You Should Know.
Every now and then I run into an issue that I should have already known about.  Either that, or I[...]
PowerShell and Dynamics CRM Administration
If you are doing any work at all with Dynamics CRM 2011 or 2013 you need to become a friend[...]
Random SSRS Troubleshooting Notes
Notes to myself on troubleshooting issues with SSRS. Error: Report render failure. Error: An error has occurred during report processing.[...]
Announcing KnowledgeBits
Hi Everyone, I am created a new information-delivery service on all of my web sites called KnowledgeBits.  These are tips[...]
SnapShot! What is the Processing Log used for?
SnapShot! v3.0 added an additional user-interface element called the Processing Log. Since many of the data extraction and reporting processes[...]
Transformer!, the ultimate JavaScript conversion tool has been updated
Hi Everyone, I have just released version 2.6 of my JavaScript conversion tool: Transformer! for Dynamics CRM. You may read[...]
Transformer! 2.6 Released
Version 2.6 of Transformer!, the ultimate Dynamics CRM JavaScript conversion tool is now available. New in this release: New Transformations:[...]
SnapShot! 3.0 Released
SnapShot! 3.0 for Dynamics CRM is now available.  Here is a quick overview of what is included in this release:[...]
SnapShot! 3.0 JavaScript Function Reference
Occasionally I found myself needing a comprehensive list of JavaScript functions found within the various Dynamics CRM Web Resources found[...]
SnapShot! 3.0 Auditing Summary
SnapShow! 3.0 includes an auditing summary feature that produces a single Microsoft Excel worksheet that contains a list of all[...]
SnapShot! 3.0 JavaScript Events
The Dynamics CRM 2011/2013 object model allows you to define events using configuration, through the user-interface, or via code, using[...]
Searching for Emails to a specific person
I ran across something yesterday that I can honestly say I have never had to do within Dynamics CRM: Show[...]
Interesting Dynamics CRM 2011 Bug: Attachments do not get deleted
I verified a strange bug related to attachments and the deleting of the parent record chain. If you delete an[...]
The Email Router and Microsoft.Crm.Tools.EmailAgent.SystemState.xml file
Occasionally, and for reasons that are unclear, the CRM Email Router file  Microsoft.Crm.Tools.EmailAgent.SystemState.xml gets corrupted which causes the Email Router[...]
Online2 is available for Microsoft Dynamics CRM Online
It seems Microsoft has started rolling out an update to CRM 2013 Online called, “Online2.’ Here is a link to[...]
Handy Help Links for Dynamics CRM 2013
I just received a great link to a information page from one of the Microsoft folks: Check Out These Handy[...]
How much space are my Attachments using, part deux
In the first article we discussed using SQL to determine the size of the Attachments in the database. My friend[...]
CRM SDK Nugget: Metadata Browser
Way back when, like in version 3.0 and 4.0, Dynamics CRM had a hidden page that would display a list[...]
CRM 2013: Modifying Administration Navigation
While we’ve already discussed using the Quick View Menu to help with Dynamics CRM 2013 navigation, I thought I’d take[...]
Easing Dynamics CRM 2013 Navigation Troubles
If you have upgraded to Dynamics CRM 2013 you have probably noticed that the navigation has changed quite substantially. This[...]
Updated: How much space are my Attachments using? (OnPremise)
I was digging through a customer’s CRM database today to determine where all of the space had gone and thought[...]
Renewing a Contract Error: The state of end date is not valid
One of my customers occasionally runs into the following error when attempting to renew a contract: This is a very[...]
CRM Rocks Podcast Interview
Markus Erlandsson of the CRM Rocks podcast interviewed me recently to discuss JavaScript development with Dynamics CRM.  The show is[...]
Fascinating Solution to Dynamics CRM 2013 Navigation Issues
My friend Rhett has created an excellent menu alternative should the current Dynamics CRM 2013 navigation. Check it out.
Dynamics CRM Deep Dive: Security, Second Edition is Coming Soon
Hi Everyone, I am working on the second edition of my Dynamics CRM Deep Dive: Security book to add more[...]
SnapShot! v2.0 for Dynamics CRM Released
Version 2.0 of SnapShot! is now available. Visit the SnapShot! product page to download the sample reports and get more[...]
Explorer! v3.3 for Dynamics CRM Released
Version 3.3 of Explorer! for Dynamics CRM has been released. This release fixes several bugs when extracting information from Dynamics[...]
SnapShot! 1.9 for Dynamics CRM Released
SnapShot! v1.9 is now available. The following changes have been made in this release: 1. An Active? column has been[...]
New Upgrade Tool Released: Kill Plugin
There are occasions which some of us may experience during or shortly after the upgrade of a Dynamics CRM 4.0[...]
New Upgrade Tool Released: Kill Plugin
There are occasions which some of us may experience during or shortly after the upgrade of a Dynamics CRM 4.0[...]
Error: Proxy type with the name account has been defined by another assembly
I am a big fan of the Simplified Connection technology added by the Xrm.Client assembly and use it almost exclusively.[...]
Date.js and Dynamics CRM 2011
In a word: NO. I recently added the JavaScript date library Date.js to an installation to get some date calculation[...]
Upgrades: Contracts and Contract Detail Records
Contracts within Dynamics CRM can sometimes be a little peculiar to work with.  Case in point: You must have at[...]
Upgrades: Contracts and Contract Detail Records
Contracts within Dynamics CRM can sometimes be a little peculiar to work with.  Case in point: You must have at[...]
CRM Upgrade Tip o’ the Day: Start Fresh
This may not be possible in all organizations or situations but if you can, do the following: 1. Restart the[...]
CRM Upgrade Tip o’ the Day: Check your resources
Before you begin the actual upgrade process to upgrade a CRM 4.0 instance to CRM 2011, make sure you have[...]
SnapShot! 1.8 for Dynamics CRM Released
I made a change to how the Entities are extracted from Dynamics CRM.  Previously, the Entity had to have the[...]
Retrieving the OptionSet Label using JavaScript
I was adding some custom JavaScript to a customer's Opportunity Entity when I, again, learned the importance of not over-thinking[...]
Contracts, Renewals, and Plugins
I ran into an interesting issue today during a CRM 4.0 upgrade to 2011. We have a plugin that automatically[...]
Working with Queues
I was working on some queues at a customer last week when I discovered a design issue that I needed[...]
Associating Marketing Lists and Campaigns
I ran across an unusual SDK topic last week that I thought I would share. I need to associate a[...]
.NET Upgrade: Interesting Workflow Activity Upgrade Issue
I ran into an interesting issue today upgrading a custom workflow activity.  I received this error: <OrganizationServiceFault xmlns="" xmlns:i="">  [...]
.NET Upgrade: Interesting Workflow Activity Upgrade Issue
I ran into an interesting issue today upgrading a custom workflow activity.  I received this error: <OrganizationServiceFault xmlns="" xmlns:i="">  [...]
iFrame URLs: Another unexpected UR12 modification
I was moving some custom code into a customer's development environment when I noticed what I consider a breaking change[...]
New Open-Source Project: .NET Code Migrator for Dynamics CRM
I have been doing a lot of CRM upgrades lately and one of the side-effects of this process is a[...]
JavaScript Upgrade Strategies webinar follow-up
The recording today's webinar is now up: Here are the main talking points from today's meeting: Strategies: Here are[...]
JavaScript Upgrade Strategies webinar follow-up
The recording today's webinar is now up: Here are the main talking points from today's meeting: Strategies: Here are[...]
Don’t throw away your CRM 4.0 SDK just yet
So we're two and a half years into the realm of CRM 2011 with the next version, code-named Orion, just[...]
Tip o’ the Day: Working with Queues
At times, it can be difficult to manage queues, if you have a large number of users because the normal[...]
ALM for Microsoft Dynamics CRM 2011: CRM Solution Lifecycle Management
As Microsoft Dynamics CRM continues pushing towards the enterprise space, it becomes increasingly important to support the requirements of the[...]
Transformer! 2.5 for Dynamics CRM Released
Hi Everyone, Well I've yet again changed the name of my JavaScript conversion tool for Dynamics CRM, added a bunch[...]
CRM Developer Tip o’ the Day: Working with PartyLists
I ran into an issue in a plugin this week where I needed to decode the To and From fields[...]
SnapShot! 1.7 for Dynamics CRM Released
Version 1.7 of the Dynamics CRM documentation tool, SnapShot! has been released. Visit the product information page for details and[...]
CRM Upgrade Note: Check your URL References
I ran into an unexpected situation during an upgrade that quite honestly, left me a bit baffled. It seems a[...]
Contacting Your Customer: The Good and The Bad
I wanted to show you two examples of contact with a customer. In my opinion, one is good, and one[...]
Dynamics CRM development and the new auto-save feature
The Dynamics CRM 2011 December 2012 service update (otherwise code-named Polaris) gave us the new Flow-UI forms. These forms include[...]
Changes to IFRAME Properties
In Dynamics CRM 4.0, the Label property of an IFRAME was not required:   With Dynamics CRM 2011, the Label[...]
Worst-Ever Mobile Login Design Experience
This has to be the worst design of any mobile application that I use:   Do you see the big[...]
Upgrade Your URL Parameter References
There are times when working in either JavaScript or .NET where you need to either display a CRM record or[...]
CRM SDK Nugget: Entity.ToEntityReference Method
Here is another cool Entity extension method that I keep forgetting to use: Entity.ToEntityReference. Normally, when creating a reference to[...]
Heads up: Get ready to upgrade your CRM 4.0 .Net code
There has been a some coverage of the upcoming version of the next version of Dynamics CRM, currently code-named Orion,[...]
Visual Studio Tip O’ the Day: Delete your test results
You may not realize it, but Visual Studio keeps the runs of your unit tests for a long time, if[...]
Dynamics CRM Topics of Interest (April 19th)
I thought I'd share a few things of interest in the Dynamics CRM world that I've seen in the past[...]
CRM SDK Nugget: Entity.FormattedValues Property
When working with the Dynamics CRM SDK, I think we may all overlook a very handy property that can save[...]
SnapShot! 1.6 for Dynamics CRM Released
I've made a few enhancements to SnapShot! over the past week or so: 1. I've added an optional Pack and[...]
JavaScript Conversion: Creating a supported LookupControlItem method
In Dynamics CRM 4.0, you could use an unsupported internal function to create the value to be inserted into a[...]
Here’s a Shout-Out to the Dynamics CRM SDK Team
I don't think enough Dynamics CRM developers understand the amount of time and effort that the SDK team has put[...]
SnapShot! 1.5 for Dynamics CRM Released
This release adds a new set of reports I am calling View Detail which documents the detail found within each[...]
SnapShot! 1.4 for Dynamics CRM Released
I modified the Security Role and User Privilege reports and added a Table of Contents as well as a footer[...]
SnapShot! 1.3 for Dynamics CRM Released
SnapShot! version 1.3 has been released. The update includes a new report as well as some corrections to the Security[...]
Using Multi-tenancy in Microsoft Dynamics CRM 2011 to Address Challenges in Enterprise Business Environments
The CRM Engineering for the Enterprise has released a new white paper.   You may download it here:  [...]
SnapShot! v1.1 for Dynamics CRM Released
I've just released a new version of my SnapShot! CRM documentation tool. I created some additional documentation to help you[...]
Extracting Localized Yes/No Values from Dynamics CRM
As I am working on an update of my SnapShot! documentation tool, I realized that most people understand the values[...]
CRM Data Explorer 3.1 released
Hi Everyone, Version 3.1 of the CRM Data Explorer has been released. You can download the new version here:[...]
SnapShot! Ultimate for Dynamics CRM Released
I had several request for a version of SnapShot! that did not require a license for each organization which it[...]
Dynamics CRM Security is not always about Roles
Occasionally, I find myself wasting time because I didn't check all of my facts. I ran into an issue today[...]
CRM Online and a Locked Windows Live ID Account
Symptom Your Windows Live ID becomes locked or disabled by the system because the account has 100,000+ failed login attempts.[...]
More Resources for Dynamics CRM Developers
Marc Schweigert of Microsoft has released more goodness for Dynamics CRM Developers. His latest is this: Unit testing CRM 2011[...]
CRM Online and the Organization Unique Name
Each CRM organization has two names associated with it: The Friendly Name This is the name that is displayed in[...]
SnapShot! for Dynamics CRM Released
The ultimate documentation tool for Dynamics CRM 2011 extracts and consolidates the following components: System Settings Entities Fields Relationships Views[...]
SnapShot! for Dynamics CRM Released
The ultimate documentation tool for Dynamics CRM 2011 extracts and consolidates the following components: System Settings Entities Fields Relationships Views[...]
SnapShot! for Dynamics CRM Released
The ultimate documentation tool for Dynamics CRM 2011 extracts and consolidates the following components: System Settings Entities Fields Relationships Views[...]
New CRM documentation tool to be released this week
Hi Everyone, Sometime this week I'll be releasing SnapShot! for Dynamics CRM 2011. Overview I work with organizations all of[...]
CRM Development Troubleshooting Quick Tip
There may be times when developing custom Dynamics CRM components that errors occur which may or may not involve your[...]
CRM Metadata, upgrades, and strangeness
Occasionally you run into very strange issues retrieving metadata from a Dynamics CRM organization that has been through an upgrade[...]
Reading PDF form fields using iTextSharp
Here's a quick bit of code to help you extract data from a PDF with form fields: Open the PDF:[...]
Present from the Book Fairy: The CRM Field Guide
I got my author's copies of The CRM Field Guide today:     Find out more at
CRM Data Explorer Released
Version 3 of my CRM Data Explorer, formerly called the CRM Data Validation tool, is now live. Have you ever[...]
The CRM Field Guide Released
If you have not heard by now, a group of CRM MVPs collaborated on a book we're calling the CRM[...]
JavaScripting with Dynamics CRM 2011 Deep Dive workshop registration is open
I am holding the first-ever JavaScripting with Dynamics CRM 2011 Deep Dive workshop. This workshop is going to be a[...]
JavaScript Conversion: Removing unnecessary code #1. Adding mailto to an email-enable text field
Occasionally I will run into JavaScript that was added to a form to provide functionality desirable by the business. I[...]
Book Review: Bootstrapping Design
And now for something a little different. If you are working with any type of media that presents information to[...]
JavaScript Conversion: Handling Automatic Semicolon Insertion
One of the most difficult parts of converting JavaScript from CRM 4.0 to 2011 is handling situations where the developer[...]
JavaScript Conversion Keywords
During my recent JavaScript Conversion discussions webinar I showed a list of Supported and Unsupported keywords. I've created a page[...]
JavaScript Conversion Discussions Webinar Follow-up
I've uploaded the recording and supporting materials from last week's webinar to my CRM Accelerators site: JavaScript Conversion Discussions Webinar[...]
JavaScript Conversion Discussions Webinar Recording and Materials
JavaScript Conversion Discussions Webinar (September, 2012) We'll discussed the technical aspects of converting your JavaScript from CRM 4.0 to CRM[...]
Dynamics Deep Dive: Security now available directly from Kindle Store
You can now purchase the Kindle edition of Dynamics Deep Dive: Security directly from or the Kindle Store.
CRM JavaScript Conversion Assistant 2.0 Released. New name, new features, new price
I am very proud, and a little relieved, to announce that general availability of the CRM JavaScript Conversion Assistant 2.0.[...]
Marketing List Manager 2011 price reduction
I've decided to drop the price of my Marketing List Manager for Dynamics CRM 2011 to $98 ( from $249[...]
Exception handling in Custom workflow activities
Handling exceptions is an important part of any development effort. In the past few months, I've run across several instances[...]
Adding People to Marketing Lists
I was verifying some data in one of my CRM Online instances when I noticed something about Marketing Lists that[...]
Dynamics CRM Deep Dive: Security available in Apple iBookstore
My Dynamics CRM Deep Dive: Security book is now in available in the Apple iBookstore. Here is the link. You[...]
OpenXML: Deleting a worksheet from a workbook
Working with OpenXML can be quite challenging a times. While working on an update to my CRM Migration Assistant, I[...]
Formatting JSON Responses
I was debugging a CRM 2011 LINQ query today and needed to view the debug information, which is in JavaScript[...]
CRM SDK Nugget: Create Solutions That Support Multiple Languages
I my class last week we were discussing customizing CRM and the need to translate custom text and option set[...]
Dynamics CRM Deep Dive: Security book now available directly from Europe
Hi Everyone, has expanded their distribution channels in Europe so you may now purchase my book from the following[...]
Upgraded JavaScript and OptionSet values
In CRM 4.0 the values returned from a Picklist were integers represented as strings. If you were referring to a[...]
JavaScript Libraries and Form Events
[note to myself] Removing a JavaScript library from a form will cause all events that reference that library to be[...]
Defaulting Advanced Find to always show details
I was teaching a webinar on Thursday and I told the students about a personal options setting that will save[...]
Microsoft Dynamics Most Influential People Top 100
The 2012Microsoft Dynamics Most Influential People Top 100 list is out. And wow!  I made the list this year and[...]
Converting to CRM 2011 JavaScript: Unsupported Internal Functions and Properties
I've seen a lot of CRM 4.0 JavaScript over the past year and a half as I work on my[...]
Converting to CRM 2011 JavaScript: Setting Requirement Levels
In addition to showing and hiding fields in CRM 4.0, an additional technique many of us used was to change[...]
Converting to CRM 2011 JavaScript: Showing and Hiding form elements
Let's face it: we all did unsupported customizations with our CRM 4.0 JavaScript in order to present to the user[...]
Creating an E-mail-Enabled Entity
One of the new features Microsoft included in Dynamics CRM 2011 is the ability to create entities which are e-mail[...]
Issues Exporting View Data to Microsoft Excel
Occasionally I see issues when I am trying to export data from a Dynamics CRM 2011 view to Microsoft Excel.[...]
Great Article: 14 Lessons From Benjamin Franklin About Getting What You Want In Life
This is a great article regarding Ben Franklin's thoughts and practices on how to get things done.
Book Excerpt: Auditing Metadata Changes
I thought I'd pull out a small section of my Dynamics CRM Deep Dive: Security book and discuss metadata changes.[...]
4.0-2011 Upgrades and Security Roles
I ran into a very interesting issue last week involving a CRM 4.0 organization that was upgraded to CRM 2011.[...]
Manually hiding the CRM 2011 Ribbon
Some may call me Captain Obvious, but sometimes it is the obvious that passes us by. As is today's Dynamics[...]
Manually hiding the CRM 2011 Ribbon
Some may call me Captain Obvious, but sometimes it is the obvious that passes us by. As is today's Dynamics[...]
Free Utility Updated: Export Web Resources
This week, while working on a migration from CRM 4.0 to 2011, I discovered a need to back up my[...]
CRM 2011 SDK Nugget: Images
If you've ever explored the CRM SDK folder system, then you have probably noticed it includes various unexpected goodies, which[...]
Recalculate Opportunity and the Page Life Cycle
If you have ever worked with the Dynamics CRM Opportunity, you know that it contains a function to recalculate the[...]
REVISED: Retrieve all of the field names in a Tab
Revised 4/16/2012: Added checks for control type to prevent exceptions.   I ran into a need to build a list[...]
Worse CRM-Related JavaScript Ever
I see a lot of 'interesting' JavaScript working with CRM installations that have been in operation for more than a[...]
Upcoming Webinar: JavaScripting with Dynamics CRM 2011
JavaScript allows an administrator to enhance the functionality of Dynamics CRM 2011 in order to better fit your business processes.[...]
CRM Migration Assistant 1.4 Released
We are releasing version 1.4 or our CRM JavaScript conversion tool, CRM Migration Assistant, today.   The trial version can[...]
Looking for CRM 4.0 JavaScript samples
I have an update to my JavaScript conversion tool, CRM Migration Assistant, coming out this week and I am looking[...]
Dynamics CRM Deep Dive: Security eBooks available
I just finished the conversion of my Dynamics CRM Deep Dive: Security book to eBook format. In 2-3 weeks, they[...]
Dynamics CRM 2011 Quick-Tip: Double-clicking e-mail addresses
I didn't actually realize it until this week, but if you double-click on an email address field within Dynamics CRM[...]
Users with no assigned security roles
If you open Dynamics CRM 2011 as an administrator you may one day find the following notification: As the message[...]
Dynamics CRM Deep Dive: Security book now available in paper format
The paper version of my new book is now available at my Amazon store. Visit the book page for more[...]
Book Release: Dynamics Deep Dive Security
Today I am releasing the first in a series of Deep Dive books related to all things Dynamics CRM: The[...]
Set the field’s default date and time using JavaScript
Sometimes I get a requirement to set the initial value for a DateTime field, such as the Due Date of[...]
Free Plugin Configuration Solution Released
I updated my Plugin Configuration solution to work as a real solution within Dynamics CRM 2011. You will find it[...]
CRM Export JavaScript Updated
I updated the utility exports to disk the JavaScript found in a solution in Dynamics CRM 2011. To read more[...]
CRM Find Privilege Utility Updated
I've corrected some issues I found with the utility that allows you to look up User and Privilege information by[...]
Dynamics CRM News: CRM Anywhere
Dennis Michalis, Microsoft Dynamics General Manager, released the roadmap for the upcoming Q2 2012 release of Dynamics CRM 2011, which[...]
CRM Migration Assistant 1.3.3 Released
We have released a small update to the CRM Migration Assistant which includes the following updates: Added 0 and 1[...]
Virtual Machine Tip ‘o the Day: Removing Integration Services
If you ever need to move a virtual machine from Virtual PC to Virtual Server, you need to uninstall the[...]
Training, Training, Training
Earlier in the month I participated in an MVP Roundtable with the xRMVirtual Users Group where I discussed the importance[...]
CRM 2011 Cross-Browser Support Poll
HI Everyone, If you have not heard, Dynamics CRM 2011 will very shortly support browsers other than Internet Explorer. I[...]
Sandboxed Plugin Development: HtmlDecode Tidbit
When working with things like Email, it is sometimes necessary to decode a string of text that has been HTML-encoded.[...]
Converting to CRM 2011 JavaScript: Form Elements
One of the most fascinating things I found during the creation of the CRM Migration Assistant is the different methods[...]
Converting to CRM 2011 JavaScript: Form Elements
One of the most fascinating things I found during the creation of the CRM Migration Assistant is the different methods[...]
Debugging Sandboxed Plugins
I learned some interesting things about working with Sandboxed plugins last week that I thought I'd share. Attaching to Processes[...]
CRM 4.0: Moving customizations between organizations
One of the things that gets CRM 4.0 developers into trouble is moving customizations between organizations. Here is a tip[...]
Converting to CRM 2011 JavaScript: The basics
I thought that I would outline some of the conversion techniques that we use in the CRM Migration Assistant to[...]
CRM SDK Deep Dive: Error Codes
As I was reviewing notes from the recently released CRM SDK 5.0.9, I noticed a section on Error Codes.  "This[...]
CRM SDK Deep Dive: Plugin Messages Support
If you are developing a plugin, sooner or later you will need to do something in a plugin that requires[...]
CRM Online Organization Unique Name
A CRM Organization's unique name is the name of the organization as it referred to internally. For example, it's the[...]
Update Rollup 6 for Microsoft Dynamics CRM 2011 Released
You can download it here. For more information about this release, see Microsoft Knowledge Base article 2600640: Update Rollup 6[...]
Changing the Lead Qualification Status Values
The Lead Entity within Microsoft Dynamics CRM 2011 is used to track your relationship with prospective customers. At some point[...]
Monotouch Day 3: To Universal App or not to Universal App?
That is the question. A Universal App is one that will work on both the iPhone/iTouch and the iPad. One[...]
Getting Started with CRM Mobile Express
In case you didn't know, Dynamics CRM 2011 has a basic mobile web site built into the product. You access[...]
Monotouch Day 2: Images and Icons
As I'm working through the tutorials and other documentation I realize that you're going to need quite a few icons[...]
Microsoft Security Bulletin MS11-100 and Dynamics CRM
Vulnerabilities in .NET Framework Could Allow Elevation of Privilege (2638420) Microsoft has release a fix for a security vulnerability identified[...]
Monotouch Day 1: Getting Started
Boy oh boy, talk about a learning curve. It is not rocket science by any means, but learning how the[...]
Multi-Column Sorting Views in Dynamics CRM 2011
Views within Microsoft Dynamics CRM 2011, by default, support up to two pre-defined sortable columns, which are selected when the[...]
21 Days of Monotouch
I have been attempting to carve out time in my schedule to work with Xamarin's Monotouch framework for developing applications[...]
Ribbons and Entities
When customizing the ribbon of an Entity, it is important to note that the ribbon is part of the Entity[...]
Developer Tip ‘o the Day: Solutions and the SiteMap
This week I learned, again, the importance of including the SiteMap in a custom solution. If you do not add[...]
Developer Tip ‘o the Day: Ribbons and Web Resources
You can customize the CRM 2011 Ribbon to add additional functionality via buttons, for example. When you add such a[...]
Refreshing a CRM View
In case you didn't know, there is a refresh button built into the display of each and every View within[...]
Default Minimum Value for Currency Fields
I just realized that unlike other number fields, the default minimum value for the currency field type is 0: While[...]
Help get your Dynamics CRM Case Solved Faster using Diagnostics
Dana Martens of Microsoft posted an article on the CRM Team Blog about some tools and techniques that will help[...]
Two Options (bit) Fields and the OnChange Event
I noticed something rather interesting regarding the way CRM 2011 handles the OnChange event for a Two Option ( or[...]
What is inside a CRM 2011 Solution file anyway?
Dynamics CRM 2011 introduced us to Solutions, which are self-contained packages of components, customize CRM 2011 to add specific features[...]
Dynamics CRM 4.0-2011 Upgrade Tips
Here is a list of my tips CRM 4.0 to CRM 2011 upgrade tips, as published on my CRM Accelerators[...]
Be careful changing the full name format within Dynamics CRM
One of the settings that is available to a Dynamics CRM administrator is the ability to change the format of[...]
Dynamics CRM: There is a whole lot of clicking going on
People new to Dynamics CRM are sometimes a little confused, and sometimes baffled, by the user interface. The most important[...]
CRM 2011: Changes to the way things are deleted
It is worth nothing that there was a major change in the way that Dynamics CRM handles the deletion of[...]
Be careful changing the full name format within Dynamics CRM
One of the settings that is available to a Dynamics CRM administrator is the ability to change the format of[...]
Dynamics CRM 4.0-2011 Upgrade Tip #6: Clean up deleted records
Full disclosure: I am blatantly stealing this idea from Joel Lindstrom at Customer Effective, as outlined in this article: Preparing[...]
Dynamics CRM 4.0-2011 Upgrade Tip #5: Remove unsupported database changes
As you used your Dynamics CRM 4.0 database you may have had occasion to add "unsupported" objects to the database. [...]
Dynamics CRM 4.0-2011 Upgrade Tip #4: Clean up old Synch table entries
If you are using the CRM Outlook client you will find two sets of tables in the CRM database beginning[...]
Dynamics CRM 4.0-2011 Upgrade Tip #3: Clean up the System Job and Workflow Job Tables
In CRM 4.0 the system jobs table, otherwise known as the AsyncOperationsBase table, could expand to the point that normal[...]
CRM 2011 SDK Development and Microsoft.IdentityModel Assembly
This is actually a repost from this article, but it seems a lot of people are running into the error[...]
CRM 2011: Using Sample Data
As you may know, Microsoft Dynamics CRM has a log of parts and pieces and sometimes it is difficult to[...]
CRM 2011: Unexpected dependencies when deleting fields
When you attempt to delete a field with in Dynamics CRM, a check will be performed to see if the[...]
Developer Tip o’the day: Form Editor Keyboard Shortcuts
Here are some keyboard shortcuts that you may not have been aware of when working in the CRM 2011 form[...]
ILMerge and StackOverflowException
I was working away this afternoon upgrading one of my products to CRM 2011 when I encountered a very odd[...]
CRM 2011 Quick Start Guides Releases
The Dynamics CRM User Assistance team has released two new pieces of user documentation: Quick Start guide for Microsoft Dynamics[...]
Free Utility Released: Count CRM Users
If you have multiple organizations and you found a need to get a count of the number of users across[...]
CRM Migration Assistant 1.3.1 Released
We've made a couple of changes to the CRM Migration Assistant this week. You may download the trial version here.[...]
CRM Migration Assistant 1.3 Released
Version 1.3 of our JavaScript conversion tool, CRM Migration Assistant has been released. More information is available here.   Release[...]
CRM Migration Assistant 1.2 Released
I'm proud to announce the release of version 1.2 of our CRM JavaScript conversion utility, the CRM Migration Assistant. New[...]
CRM 4.0 Developers: Unsupported JavaScript usage question
Hi Everyone, I'm adding some new conversion points to my JavaScript conversion tool, CRM Migration Assistant, and I am curious[...]
CRM 2011 Tip o’the Day: Hide the Getting Started Pane
CRM 2011, by default, displays a feature at the top of every data view called the Getting Started Pane.  Here's[...]
CRM 2011 Reporting: Showing Date-Only in a datetime field
Let's say I have a report of my CRM leads that looks like this: Very simple, just name, created on[...]
WorkflowLog Entity Status Values
The workflowlog.status values are not clearly documented in the SDK so you may use the following table to correlate the[...]
CRM 2011 Debug Information Page
An excellent post today from EMEA Dynamics CRM Support that is worth sharing: CRM Debug Information Page Each CRM installation[...]
What is CRM doing with my Email?
If you have ever wondered if Dynamics CRM is holding on to your email and not sending it, there is[...]
CRM 2011 JavaScript and namespaces
The CRM 2011 SDK makes use of the JavaScript namespace feature. I am curious if anyone currently developing for CRM[...]
Displaying Properties for a CRM record
There is an often overlooked feature within the CRM web client that allows you to view the properties of a[...]
CRM 2011: Programmatically creating a bulk delete job
This weekend while working on new product I realized it would be of tremendous use to have a bulk-delete job[...]
Web Resource Naming
I found something quite interesting while working on my CRM Migration Assistant JavaScript conversion tool. We you create a web[...]
CRM 2011 Development Skeleton
Back in 2009 I released a small Visual Studio solution that contained all you needed to get started connecting and[...]
Another Cool Windows Live Writer Feature: Post draft to blog
Have you ever noticed that button: Like many of you, I have too; but wasn't really sure why I would[...]
Export JavaScript utility updated (revised)
I've updated my Export JavaScript utility to work with CRM 2011. You may download it here. The operation is pretty[...]
Dynamics CRM 4.0-2011 Upgrade Tip #2 Know your plugins
One of the most important aspects of the CRM 4.0 upgrade is what will happen to your plugins. The first[...]
Changing the CRM startup experience
In case you didn't know, each CRM user can change their initial web client startup experience by modifying several different[...]
So just how fast is your JavaScript conversion tool?
People have asked that question and I don't know why, but it's been a very long time since I've actually[...]
So just how fast is your JavaScript conversion tool?
People have asked that question and I don't know why, but it's been a very long time since I've actually[...]
Using Advanced Find to quickly navigate to a specific entity
As you may know, when you create an entity within CRM you specify which areas the entity is display in,[...]
CRM Migration Assistant is Microsoft Platform Ready for Microsoft Dynamics CRM 2011
We've pass the Platform Ready test for CRM 2011: Microsoft Platform Ready is proud to recognize CRM Accelerators for their[...]
CRM 2011: Exploring the Developer Resources Page
CRM 2011 includes a Developer Resources page which provides additional information and tools for the CRM developer. You find the[...]
Free Utility Released: Export CRM 4.0 Plugins
Updated: 9/30/2011. Version 1.1 Occasionally I find the need to extract a plugin from the CRM database. This could be[...]
CRM 2011 Tip o’the day: Disabling the Install Outlook Notification
When the CRM 2011 web client is opened, it performs a check to see if you have the Outlook client[...]
Categorize your CRM Contacts using Relationship Type
One of the most powerful fields on the Dynamics CRM Contact entity is something called the Relationship Type. This field[...]
CRM 2011 Tip o’the Day: Keyboard Shortcuts
It’s amazing what you can find browsing through the help file or manual sometimes. Case in point: Did you know[...]
Dynamics CRM 4.0-2011 Upgrade Tip #1 Export your customizations
I absolutely cannot emphasize this point enough: Before you begin the process of upgrading your CRM 4.0 organization to CRM[...]
Connecting Windows Live Writer and Outlook
I use Windows Live Writer (WLW) to compose my blog posts and quite frankly, it is the main reason I[...]
CRM 2011 Tip o’the Day: Moving to the next and previous records
By any odd chance have you ever noticed this new piece of chrome in the upper right corner of the[...]
Using CRM workflow to detect company email addresses within contacts
Introduction In case you didn’t know, it is a very bad practice to allow users to create contacts for employees[...]
CRM Migration Assistant 1.1 Released
I am proud to announce version 1.1 of the CRM Migration Assistant, our JavaScript conversion tool. In this release, we've[...]
CRM SDK Nugget: SolutionId Value for the Active Solution
I’ve been working with solutions and web resources a lot lately so this next series of articles will focus on[...]
Adding form labels using HTML web resources
Occasionally, I have a requirement where a user must complete one of two fields on the form. This presents some[...]
CRM Bit fields: Creating a consistent user experience
When customizing Dynamics CRM you should always keep the end-user experience in mind. One item that sometimes escapes configuration is[...]
Rock, Paper, Azure
Well I entered the Rock, Paper, Azure contest and for the most part, got my butt kicked.  Mostly because I[...]
Interesting issue encountered while deleting a lookup
I was deleting an unused lookup from a custom entity when I received and error stating that I could not[...]
CRM Tip o’the Day: Working with CRM Security Role Privileges
This tip has existed since at least CRM 4.0, but I’ve been creating a lot of security roles on my[...]
Locating the Process ID for the CRM Web Site
If you have ever had to connect to IIS to perform remote debugging you have probably encountered an situation where[...]
Dynamics CRM: Canceling the Save operation
There are occasions where you need to abort the saving of a record within CRM. This is accomplished by using[...]
CRM 2011 Developer Tip o’the Day: Customization Navigation
I am going to admit up front I may be the only person using CRM 2011 to have this problem,[...]
CRM 2011: Managing Deletion Jobs
In our last article, we discussed the creation of bulk deletion jobs. In this article we are going to discuss[...]
CRM 2011: Exploring bulk delete operations
I was entering some sample data when I happened to notice the Delete button on the ribbon contained an arrow. [...]
CRM Tip o’ the Day: Workflow Naming Conventions
Over the years I have found it very helpful to categorize the workflows for my own projects or customer’s by[...]
Grouping Navigation Items using the SiteMap ShowGroups Setting
When working with the CRM SiteMap, it is sometimes very useful to categorize the navigation elements into logical or functional[...]
CRM 2011: Tracing Sitemap Errors
While working on yesterday’s article, I ran into several issues attempting to import my Sitemap.  Since I wasn’t exactly sure[...]
CRM 2011: Adding a view to the sitemap
Occasionally I have requirements to add links to the CRM Sitemap that are pointers to specific system views that we’ve[...]
CRM 2011 Factoid: Deleting Records
When you deleted a record in CRM 4.0, it didn’t physically delete the record at that point in time, it[...]
CRM Migration Assistant Update and News
Hi Everyone, I am really enjoying Convergence 2011 this week so I thought I would pass along some great news[...]
CRM 2011: Tracing Errors during SDK Development
I am working hard to put one of the last major features into my CRM Migration Manager and ran across[...]
CRM 2011: Renaming an Organization
Occasionally, you will find a need to change the display name of an organization, which is an operation performed through[...]
Podcasts anyone?
I was thinking about adding to the list of podcasts that I listen to and was curious if anyone has[...]
Question regarding CRM Trace Logs
I am looking for people who review CRM Trace Logs on a regular basis. I am working on a couple[...]
CRM 2011: Editing the SIteMap
I thought I’d make not of this topic ( which is found in the CRM 2011 SDK ) because when[...]
CRM 2011 SDK Development and Microsoft.IdentityModel Assembly
If you plan on writing anything that uses the CRM 2011 SDK, you may at some point run into the[...]
Visual Studio 2010 Error Message of the Day
I guess I was low on memory or some such thing this morning and VS2010 got all kinds of “wonky�[...]
Visual Studio 2010: JScript Editor Extensions Released
Via ScottGu: An extension has been added to Visual Studio 2010 to enhance the JavaScript coding experience. JScript Editor Extensions[...]
CRM 2011: Accessing the parent form from a child form
In CRM 4.0 developers sometimes needed to extract data from the parent form of a record opened from one of[...]
Batch Duplication Detection Discussion and Possible Solution
I was visiting a local customer this week and learned they are about the begin a de-duplication process for their[...]
CRM Migration Assistant Documentation
Hi everyone, This morning I uploaded some additional documentation for the CRM Migration Assistant application which gets into a little[...]
Retreiving User Roles in CRM 2011
As I was producing the associated documentation for my CRM Migration Assistant application, I decided to explore a comparison between[...]
CRM Migration Assistant has released
As I mentioned a couple of weeks ago, I've been working on a tool to help developers convert their JavaScript[...]
OpenXML Worksheet: Adding AutoFilter
I wasted more time than I want to think about on this, so here is a solution I hope will[...]
Creating a query to find all users with a specified security role
I ran into an interesting requirement this morning that let’s me show off one of my favorite CRM add-on utilities:[...]
Book Recommendation: Professional iPhone Programming with MonoTouch
I have been dabbling a bit with iPhone development as a way to stretch my development skills.  Unfortunately,Apple’s language of[...]
Verifying CRM 4.0 Installation File Dates the Easy Way
This morning I was verifying the version of a CRM 4.0 installation when I realized that instead of opening individual[...]
The Visual Studio 2010 Build Configuration Dropdown Missing
I have been noticing lately that the Build Configuration dropdown list that is normally found the the Standard Toolbar is[...]
Sales Centric is back in action
Well, it looks like Sales Centric and their Relationship Charts product is back on the market after having taken quite[...]
Learning how to query for Marketing List Members
This morning I was adding some functionality to my Dynamics Tutorials site and needed to determine if a user was[...]
CRM Add-Ons Updated
Last year I created an add-on for Dynamics CRM 4.0 that I called Data Validation.  It had two functions: User[...]
Issue found while upgrading reports from SQL 2005 to SQL 2008
One of my local customers recently moved from Small Business Server 2003 to Small Business Server 2008.  Among other things,[...]
New CRM case study released: Access MediQuip
One of my customers is the subject of a new Microsoft case study which describes how the implementation of Microsoft[...]
Automating Task Notification
If you have ever assigned a task to someone and wondered when or if they completed it, this workflow process[...]
Viewing How Users Have Configured CRM
We ran into an issue last week where a user was creating an Order directly, instead of from the Opportunity,[...]
Finding the value of the state and status codes
If you’ve ever wondered how to find the values for the statecode and statuscode, you can use the following SQL[...]
Testing Customizations as a Normal User
This will probably be old news to most of you, but for those who are just starting with CRM, you[...]
CRM Customization File Best Practices
Today I thought I’d share what I think are some best practices when working with CRM’'s customization files. Procedure When[...]
CRM 4.0’s Built-in SQL Functions (Part 5 of 5)
The final installment in this series contains miscellaneous SQL functions. You may wish to review the following articles before proceeding:[...]
CRM 4.0’s Built-in SQL Functions (Part 4 of 5)
In this section, we’ll cover year-related functions. You may wish to review the following articles before proceeding: CRM 4.0’s Built-in[...]
CRM 4.0’s Built-in SQL Functions (Part 3 of 5)
Today we are continuing on with part three of our series on using CRM 4.0’s built-in SQL functions. You may[...]
CRM 4.0’s Built-in SQL Functions (Part 2 of 5)
As we continue onto the second article in our set, you may wish to review the previous article:  CRM 4.0’s[...]
CRM 4.0’s Built-in SQL Functions (Part 1 of 5)
As I mentioned in a previous article, CRM 4.0 includes a group of user-defined functions that are commonly used within[...]
Applying Visualization to Software Development
Over the past several years, I have read and seen multiple references to a practice called Visualization, which is when[...]
Cascading Style Sheet Color chart
While digging around the Net today, I ran across an extremely valuable color chart for cascading style sheets. They actually[...]
Running NetScreen and Cisco VPN clients on the same workstation
I ran into an issue a couple of months ago where the CPA of one of my customers was having[...]
Hiding a tab on a data entry form in CRM 3.0
I ran into an issue recently where I need to remove certain fields from a CRM data entry form. The[...]