Tag Archives: upgrade

Upgrading Microsoft CRM 3.0 to CRM 2011

I am currently working on a CRM 3.0 to CRM 2011 upgrade.  Here are some thoughts on the process that have surfaced as we enter the planning phase…


image
  • An upgrade to CRM 2011 requires, in addition to the CRM software upgrade, a platform upgrade.  You should expect to be procuring new hardware to run the 64 bit Windows and SQL 2008 platforms.
  • The upgrade process requires you to upgrade ‘through’ CRM 4.0.  You don’t have to use CRM 4.0 but you will need to run the CRM 3.0 to CRM 4.0 upgrade and then upgrade to CRM 2011.
  • You will need to install CRM 4.0 over your CRM 3.0 instance to upgrade it, that is the only upgrade approach available between those versions.  If ‘losing’ your 3.0 environments is unacceptable then you will need additional environments.
  • Your upgrade platform needs to support both 3.0 and 4.0.  Windows 2003 SP2 and SQL 2005 SP3 is the level you need to be at.
  • CRM 2011 will be installed fresh on the new hardware platform.  The CRM database, once upgrade to 4.0, can be imported into the CRM 2011 instance to upgrade it to 2011.
  • Because of the ‘in-place upgrade’ approach required to upgrade from 3.0 to 4.0 it is worth considering whether you can image or snapshot the server prior to the upgrade so that the process is more easily repeatable.
  • You must utilise at least 1 (preferably 2 or more) non-production environments to work through the upgrade process.
  • You are upgrading both the data and the customisations to the system.  The upgrade ‘wizard’ provided by Microsoft takes care of the data but the customisations require refactoring and a bunch of testing.
  • Once you have completed the upgrade process a couple of times you should be confident with the process for upgrading the data.  You can now focus on the customisations.
  • Customisation changes back in the production 3.0 system must be put on strict hold for the duration of the project.  You don’t want to be upgrading in parallel with on going production changes.  And once you start doing an in-place upgrade in your dev and test environments you lose access to those environments for testing on going production changes.
  • Customisations should be re-factored and re-tested in your dev/test/uat environments.

The CRM 2011 production environment can be built in advance.  Once your refactored customisations are production ready and you are confident in the upgrade process you can execute the production deployment process:

      • Refresh the production database to a test environment (you will need a clean CRM 3.0 environment ready for this)
      • Run the in-place upgrade over that database on the test environment (we are deliberately avoiding changes to the production server so we can roll back to it if things go pear shaped)
      • Take the upgraded 4.0 version of your production database and import it into the new CRM 2011 production platform.
      • Deploy your re-factored customisations
      • Test
      • Resume production access

      Note: I’m avoiding steps here regarding the Outlook Client and Email Router etc. as they are not relevant on my project.

    That’s my plan at this stage.  I will come back and edit this blog as the project progresses.  If you have any experiences to share please post comments.

Advertisements

CRM 2011 Upgrade–Outlook Client Considerations

Here’s an excellent post that spells out everything you need to know:

http://blogs.msdn.com/b/crminthefield/archive/2011/03/16/ten-helpful-crm-outlook-2011-tips.aspx

Bottom line is: get your CRM 4 clients onto at least rollup 10 and then you are ok to upgrade the server to CRM 2011.  Your CRM 4 clients will continue to function – even with offline data – and you can upgrade the clients at your leisure (with some constraints around going offline). 

CRM 4.0 to CRM 2011 – An upgrade experience

I had my first crack at a CRM 4.0 to CRM 2011 upgrade, testing with a recent customer database that included examples of most CRM 4.0 customisation scenarios.  

The end result?  In a word:  Good!

Here’s the process I went through:

  1. Built a CRM 2011 environment.
  2. Restored a SQL backup of my CRM 4.0 database onto my SQL Server.
  3. Ran the Import Organisation function in CRM 2011’s deployment manager.
  4. Went downstairs and had a cookie and a cola.
  5. Came back upstairs and found I had a wee problem, the import had issue with a field length I had changed on the Account entity.  A quick post to the CRM 2011 beta forum and a little while later I had the answer (I was hitting a known bug that had been fixed but not yet released and a workaround was given).
  6. I restored my SQL database again,  ran a quick SQL update to fix my issue, and then ran the import again.
  7. Thought about getting another cookie but multi-tasked for a bit instead.
  8. Import complete.

So what did I end up with?

I had a working 2011 system.  My plugins fired, my workflows ran, my existing waiting workflows continued to wait, my jscript worked, even my associated views in my iframes still worked (kind of).   Most surprising our interface still works.  That, I thought would require at least a little bit of adjustment.

Jscript is managed in web resource libraries in 2011 so the upgrade process creates one library per entity and places your OnLoad, OnSave and OnChange code into functions and replaces those event handlers on the form with calls to these functions.  Similarly your custom entity icons are uploaded as web resources and reference from there.

The bits that needed a bit of tweaking were:

  • My custom button ISV entry has been migrated forward and still displays but could be presented much better, so a little tweaking of the ribbon xml will be required.
  • I was hiding tabs using Jscript and that no longer worked.  That was an unsupported customisation though so Microsoft were in their rights to break that.  In 2011 I can simply tick an option to hide the tabs now so I can do that and remove my jscript.
  • My associated views rendered in iframes appear ok but the ribbon control does not pick up the context of those entities when I click in them so I can’t add new records into those grids or work with the data that displays.   Again, I was in unsupported waters and again this sort of layout is now supported out of the box with point and click.

Overall, if I was a user of the system I could have started using the system immediately without any post upgrade correction and I imagine that was the objective Microsoft set themselves, and were obliged to deliver especially for their CRM Online customer base.

My preference though would be to do a fair bit of tidy up (especially within the jscript libraries) and also run a review of the screen designs with my customer to make sure we leverage all the cool new features of 2011 and deliver the optimal user experience to our users.   I think the process I would follow would be along these lines:

  • Import CRM 4 Organisation
  • Adjust any ISV config customisations
  • Tidy up Jscript library structure
  • Remove obsolete / broken jscript functions
  • Run jscript functions through converter
  • Remove any associated view iframes and replace with Sub Grids
  • Tidy up forms (hide unwanted tabs, set default tab expand/collapse option)
  • Adjust the sitemap to bring in new 2011 menu items
  • Edit custom security roles (add permissions to new entities)
  • Configure charts, dashboards, field level security, multi-forms, audit, filtered lookups, etc

I would need to give some consideration to how I complete these tasks in a test environment and then apply the changes to the database when I run the live upgrade.  The export/import solution functions will be of use here.

I would also prefer to have the customisations loaded as a managed solution, and actually would probably prefer the customisations broken down into a number of managed solutions.  I believe there is a means of doing this but I haven’t tried yet.

And, I would also like my web resources extracted from CRM and placed in a folder structure locally where I can place them under source control, make changes, and then upload updated files back into CRM.   The SDK has a tool that helps here.