For those not paying much attention, here are a few recent updates in the Microsoft Dynamics CRM world that you may have missed over the last week:
- As Ross has pointed out… Microsoft has released Rollup Update #1 for Microsoft Dynamics CRM 4.0. This is very exciting as there have long been a number of hot fixes available that the majority of our customers have required. This little package puts them all in one place. The build number of this update is 4.0.7333.1113 which appears to be the same build number of a Rollup beta that was released a little over a month ago. (Meaning the beta was solid and that they went “RTM” with it) I plan on rolling this out into our production environment next week and will provide a full write-up shortly thereafter. Links:
Download it here:
http://www.microsoft.com/downloads/details.aspx?familyid=57c6267b-3b13-49dd-bfed-3cc83633aea7&displaylang=en&tm
Read about it here:
http://support.microsoft.com/default.aspx?kbid=952858
- Microsoft has re-re-released Rollup Update #3 for Microsoft Dynamics CRM 3.0. This may actually be the 3rd re-release and I have lost track. Anyway, it would seem that there are no plans for a Rollup Update #4 for CRM 3.0 and instead, the latest hot fixes are simply being re-rolled up into #3. The build number of this rollup is 3.0.5300.1754 – for those keeping track the table below might be of interest. We no longer have a production 3.0 environment to try this on, but I will be installing it on our virtual 3.0 development environment and will post any notes or problems if I run into them. For those of you running the CRM 3.0 server and client on the same machine, I am sure the usual HACK will be required.
CRM 3.0 Build Numbers:
Build Number | Released | Details |
| 3.0.5300.0 | October 2005 | This is the RTM release |
| 3.0.5300.1185 - 3.0.5300.1189 | July 2006 | Rollup Update #1 Fork This actually started in July of 2006 and was released in November 2006 |
| 3.0.5300.1200 | Summer 2006 (?) | Appears to be a fork used for hot fixes that were not going to make it into Rollup Update #1 |
| 3.0.5300.1255 | August 2006 | Spotted in a hot fix |
| 3.0.5300.1283 | September 2006 | Spotted in a hot fix |
| 3.0.5300.1344 | November 2006 | Web Application Performance Hot Fix |
| 3.0.5300.1361 | December 2006 | Outlook Client Compatibility Re-Release (v3c) Final |
| 3.0.5300.1500 | December 2006 (?) | Seems to be the current hot fix tree for all fixes post the v3c release. |
| 3.0.5300.1525 | January 2007 | Spotted in recent hot fixes |
| 3.0.5300.1528 | February 2007 | Spotted in recent hot fixes |
| 3.0.5300.1558 3.0.5300.1561 | June 2007 | Rollup Update #2 |
| 3.0.5300.1754 | November 2008 | Rollup Update #3 (Re-Release) |
Download it here:
http://www.microsoft.com/downloads/details.aspx?FamilyID=d5b1fbbe-dfc2-4a33-b5fd-cae99e8e9dab&DisplayLang=en
Read about it here:
http://support.microsoft.com/Kb/935364
- For all those that write CRM 4.0 Plug-ins, I would consider this blog post to be a must read. This article basically discusses how CRM 4.0 internally caches instances of plug-ins and as such does not call your constructor or the Dispose method after each call. This means that you need to be very aware of using variables and other resources that are instance (Row) specific as it is possible under load (since these will run under multiple threads) for two simultaneously running plug-ins to stomp on each others internal variables. This is different to CRM 3.0, where callouts were instantiated on each request. Here is a quote:
| ”CRM instantiates the Plug-in class on the first activation of the plug-in. CRM will call plug-in's constructor. Once the object is instantiated, CRM calls the Execute method on the object. For performance reasons, CRM DOES NOT dispose of the object after it completes execution. So CRM caches the object and calls Execute on the same object instance on the next activation of the plug-in. CRM will flush its cache when any properties are changed on the pluginassembly, plugintype, sdkmessageprocessingstep, sdkmessageprocessingstepimage entities for registration. This means that you need to be very careful when defining class-level variables in the plug-in class as multiple threads can execute the code at one time.” |
Read the rest here:
http://blogs.msdn.com/crm/archive/2008/11/18/member-static-variable-and-thread-safety-in-plug-in-for-crm-4-0.aspx
Cheers,