Welcome to MSDN Blogs Sign in | Join | Help

Microsoft Dynamics CRM UK Blog

CRM news and views from Simon Hutson
What's New In CRM5 (Slight Return)

Naomi's Solar Pumpkin…

It has been a full year since we got our first glimpse of CRM5 (the catchy codename for the next version of Microsoft Dynamics CRM) at the Microsoft Professional Developer Conference (PDC) 2008, and a lot has changed since then. Last week at PDC 2009, Andrew Bybee, Nikhil Hasija, Barry Givens and others from the Microsoft Dynamics CRM product team, presented more cool CRM5 information, and many of the developer and platform features which were just prototypes last year are now fully baked features which seem pretty certain to make it into the final release.

If you would like to see what’s new in the world of CRM5 and xRM, then recordings of these sessions are available on the Microsoft PDC web site here:

Just one note of caution. These sessions don’t really have any details on CRM5 functional changes, and are targeted at developers – enter at your own risk..!!!

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

UK Dynamics CRM Customer Clinic

Desert Rose…

I was chatting with Tom Brookes (UK Partner Technology Specialist for Microsoft Dynamics CRM) about his Q&A slot at the upcoming UK CRM User Group meeting on Wednesday 2nd December. I suggested it might be a good idea to extend this by arranging 1:1 meetings where any Microsoft Dynamics CRM customer could come along and discuss anything at all to do with their current CRM system.

To my surprise he thought this was a good idea. So I went ahead and booked a couple of rooms (along with plenty of tea/coffee/biscuits) here at the Microsoft Campus in Thames Valley Park (click here for directions) from 1pm to 5pm on 2nd December (directly after the CRM User Group). We're now set up to hold a number of meetings with no formal agenda, just some face time with me, Tom and anyone else from the UK CRM team who happens to be around on the day.

So all we need are customers…

Are you a Microsoft Dynamics CRM customer here in the UK? Would you like to speak directly with someone from the CRM team about anything CRM-related? Then drop me a line via the Contact Form, with a brief outline of what you would like to discuss, and I will book meetings on a first-come, first-served basis. I’m not sure what to expect, but if I get a huge response then I think this might be a good reason for doing something like this on a regular basis around the country (Manchester, Edinburgh etc.). I’ll check my inbox every couple of days for any requests that come through (I still have a day-job), so don’t worry if you don’t hear back from me straight away.

If I don’t get much take-up, I’ll just pretend this never happened and slip quietly back into obscurity :-)

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

Why ISVs Should Build On Microsoft Dynamics

High Landrons…

Having just posted details about the Microsoft BizSpark programme for start-up ISVs, I received an email from John O’Donnell (US Dynamics ISV team) to tell me about a series of webinars running between Monday 7th and Friday 11th December. These sessions are designed to help ISVs understand how they can take advantage of Dynamics CRM and Dynamics AX to build compelling solutions.

Here’s the content of John’s email

Dear Partner

Are the costs and time to develop compelling business solutions holding your company back? Have you wondered if there is a better way to build business solutions? If your company could save up to 70 percent of their development time and therefore get to market faster, would that be of interest? If the answer to these questions is yes then consider attending a series of webinars focused on why you should consider building your next solution on a Microsoft Dynamics platform.

Over the course of a week our Microsoft Dynamics experts will take you through an overview of the Microsoft Dynamics message and will drill into two of our solutions, Dynamics AX and Dynamics CRM. During these sessions you will gain insight into the capabilities these platforms offer out of the box as well as how they can be extended to meet you customer’s unique business needs. In addition to Microsoft presenters, you will also see independent software vendors who have developed applications on the Dynamics platform. They will talk about their real world experiences with the platform.

Microsoft Dynamics offers a way to empower your organization with the ability to react quicker to your clients needs and offer solutions built on a proven development platform. You owe it to your existing and future clients to watch this webinar and to learn how you can take advantage of Microsoft Dynamics.

Sign up today at - Introduction to Microsoft Dynamics – Why ISVs are Partnering with Microsoft Dynamics

If increasing your developers productivity and time to market by building solutions on a Microsoft Dynamics development platform is something you would like to discuss now, please consider reaching out to the Microsoft ISV team now by emailing dynusisv@microsoft.com with your contact details and industry focus. We will have a Microsoft ISV specialist contact you to start you on the road to a faster and more streamlined time to market and above all work with you to become a successful Microsoft ISV Partner.

See you there.!!!

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

Have You Heard Of BizSpark?

All England’s Eyes…

…No? Me neither until this week.

BizSpark provides fast and easy access to Microsoft tools and technologies, for their immediate use in design, development, testing, demonstration, and hosted application production and deployment.”

What this means is that if you are a start-up or small business who meets certain criteria, then joining the BizSpark programme will enable you to obtain and use Microsoft software at pretty much zero cost. An eligible business must have the following characteristics at the time of joining:

  1. Actively engaged in development of a software-as-a-service that will form a core piece of its current or intended business
  2. Privately held
  3. In business for less than 3 years
  4. Less than US $1 million in annual revenue

So what do you get if you meet these criteria and sign up to the programme? Well firstly, you get Design, Development, Test and Demonstration licenses for up to 25 developers at NO CHARGE for pretty much all Microsoft development tools (Visual Studio Team System etc.), all server products (SQL Server, SharePoint Server etc.) and all Microsoft Dynamics products (including CRM).

This in itself is great value, however you also get Production licenses that you can use to host customer applications also at NO CHARGE..!!! That’s right, you can develop and host SaaS applications at NO CHARGE whilst you are a member of the programme, using any or all of the following products:

  • Windows Server 2008 Web, Standard and Enterprise editions
  • SQL Server 2008 Web, Standard, Enterprise and Workgroup Editions
  • BizTalk Server 2006 R2 Branch, Standard and Enterprise Editions
  • Office SharePoint Server 2007 for Internet Sites
  • *** Microsoft Dynamics CRM 4.0 (coming soon) ***

So why are we doing this? Well most software start-ups have limited working capital, and many choose to build solutions on free technology platforms simply because they cannot afford the upfront software costs of our software. BizSpark removes this barrier to entry, and will help start-ups by providing access to Microsoft software when they most need it and can least afford it.

You can find out more details (including terms & conditions) and sign up for the programme here – http://www.microsoft.com/bizspark

Sign up today and you will be joining a worldwide community of more than 25,000 other start-ups and small businesses, including over 1,500 here in the UK.

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

SharePoint 2010 Training Available

Don’t Wake The Lion…

As a follow-up to my previous post regarding SharePoint 2010, I just saw that we published more than 20 modules of free-to-access webcasts regarding SharePoint & Office development here:

Enjoy.

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

UK CRM User Group Meeting - 2nd December 2009

Steppin' Out (Concerto For A Rainy Day)...

I can't believe how time has flown these last few months. It seemed like just the other day that Rod Gordon (Gordon Associates) was holding the last UK CRM User Group, when in fact it was back in March. Well, an e-mail dropped into my Inbox this week to let me know about the next meeting being held on Wednesday 2nd December between 9.30am and 1pm, here at the Microsoft Campus, Thames Valley Park, Reading RG6 1WG.

Sessions Include:

  • Building Dashboard Style Reports in CRM, Rob Peledie, Chorus IT
  • CRM & Sharepoint, Tony Sloggett, Ascentium
  • Alternative Options for Document Management, Peter Bromley, Root3
  • Q&A/Discussion, Tom Brookes, Microsoft

The meeting is open to all Microsoft Dynamics CRM customers and partners and is free of charge. To make a booking or for further details contact Rod Gordon; e-mail: rod@gordonassociates.co.uk; phone: 01242 529820.

As an added bonus, I shall also be coming along (customer meetings permitting). See you there.!!!

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

SharePoint 2010 Information Now Public

Sláinte Mhath…

We took the NDA off SharePoint Server 2010 at the SharePoint Conference 2009 this week. There are some great new capabilities, but my personal favourites are:

  1. SQL Server PowerPivot for Excel and SharePoint – Formerly codenamed “Gemini”, this is a powerful new in memory database technology that lets Excel users navigate massive amounts of information without having to create or edit an OLAP cube. Imagine an Excel spreadsheet with 100 million rows of business data, that lets you sort, slice and pivot in real-time, then publish to SharePoint as a browser-rendered dashboard.
  2. Visio Services – In SharePoint Server 2007 we introduced the concept of Excel Services which allowed you publish Excel workbooks, complete with data connections and complex formulas, and render them as web-based applications. Well, now we have done the same with Visio. With Visio you have been able to design rich representations of different kinds of business processes (e.g. supply chain, sales or customer service processes), linked to real time business data sitting in ERP, CRM and other Line of Business applications. Now, with Visio Services, we can publish these to SharePoint and render real-time process information in the browser.
  3. Install on Windows 7 – This is really important for those of you who do a lot of SharePoint development. Now you can install SharePoint 2010 on your desktop PC without the need for a Server.

Here are some good webcast resources I recommend you take the time to watch:

For more information, why not head over to the SharePoint Team Blog to find a detailed breakdown of all the new functionality. Enjoy the collaborative goodness..!!

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

UKCRM Is Now Tweeting

Not Just For The Dead…

Now that Menno has let the cat out of the bag regarding the new Microsoft Dynamics CRM Accelerator for Social Media, I thought I would create my very own twitter account as an extension of my blog for those times when I just don’t have the time or inclination to post at length. It may be that this experiment ends up in the same way as Philip’s experience, but let’s see what happens.

You can find me at http://twitter.com/ukcrm.

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

Gartner & Forrester Analyst Reports

Strange Magic....

As part of my pre-sales work, I inevitably assemble a collection of customer-ready presentations and whitepapers that I can use to help support the business case for Microsoft Dynamics CRM. Analyst reports from the likes of Gartner and Forrester can be very useful when positioning our solution for different functional requirements (e.g. sales force automation or customer service) or market segments (e.g. mid-market or enterprise), but they generally come with a price tag if you wish to purhase them for redistribution.

A couple of weeks ago I discovered that Microsoft has secured all copyright and publishing privileges with firms such as Gartner and Forrester, to include their reports on our website here - http://www.microsoft.com/presspass/itanalyst/default.mspx.

At the time of writing there are more than 70 reports available, covering all manor of Microsoft product areas from Mobile to Data Warehousing, but of particular interest to me are the CRM-related reports:

Now you have no excuse not to use these reports when putting together your business case for Microsoft Dynamics CRM.

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

Closing An Incident (Case) That Has Open Activities

In The Lap Of The Gods…

Every so often I come across a feature in CRM that makes me wonder “why was it designed like that?”. The one that catches me out almost every time I demo is the inability to close or cancel a incident when there are associated open activities. This wouldn’t be so bad except that many of these activities are generated automatically by workflow, so when you cancel these activities manually, workflow processes continue to run and create still more activities.

Solving this problem requires a a plug-in that will first cancel any running workflows (to prevent new activities from being created) and then cancel any open or scheduled activities before closing or cancelling an incident,

On the incident entity, Microsoft Dynamics CRM 4.0 fires a CloseIncident message when a case is resolved and a SetStateDynamicEntity message when a case is cancelled or reactivated. So to start with we need to implement the IPlugin.Execute method and check for the “SetStateDynamicEntity” or “Close” messages.

It is good practice to check straight away that the plug-in is running in the correct context to avoid unnecessary code from executing and minimise performance bottlenecks. Here we are checking that we are running synchronously against the incident entity in the pre-processing stage of a parent pipeline.

Public Sub Execute(ByVal context As IPluginExecutionContext) Implements IPlugin.Execute
 
    ' Exit if any of the following conditions are true:
    '  1. plug-in is not running on the 'incident' entity
    '  2. plug-in is not running synchronously (context.Mode = Synchronous)
    '  3. plug-in is not running in the 'pre-processing' stage of the pipeline (context.Stage = BeforeMainOperationOutsideTransaction)
    '  4. plug-in is not running in a 'parent' pipeline (context.InvocationSource = Parent)
    '  5. plug-in is not running on the 'Close', or 'SetStateDynamicEntity' messages
    If (context.PrimaryEntityName = "incident") Then
        If (context.Mode = MessageProcessingMode.Synchronous) Then
            If (context.Stage = MessageProcessingStage.BeforeMainOperationOutsideTransaction) Then
                If (context.InvocationSource = MessageInvocationSource.Parent) Then
                    If context.MessageName = "SetStateDynamicEntity" Then
                        HandleSetStateDynamicEntity(context)
                    ElseIf context.MessageName = "Close" Then
                        HandleClose(context)
                    End If
                End If
            End If
        End If
    End If
 
End Sub

The “SetStateDynamicEntity” event generates a context with an InputParameters property collection that contains a State property. Before continuing, we should check that this property equals “Cancelled”. We can then check for the EntityMoniker property for the id field which contains the ID of the case.

Private Sub HandleSetStateDynamicEntity(ByVal context As IPluginExecutionContext)
 
    If context.InputParameters.Properties.Contains("State") And context.InputParameters.Properties.Contains("EntityMoniker") Then
        If TypeOf context.InputParameters.Properties("State") Is String And TypeOf context.InputParameters.Properties("EntityMoniker") Is Moniker Then
            If CStr(context.InputParameters.Properties("State")) = "Canceled" Then
                Dim moniker = CType(context.InputParameters.Properties("EntityMoniker"), Moniker)
                If Not moniker Is Nothing Then
                    Dim incidentid = CType(context.InputParameters.Properties("EntityMoniker"), Moniker).Id
                    CancelChildWorkflows(incidentid, context)
                    CancelChildActivities(incidentid, context)
                End If
            End If
        End If
    End If
 
End Sub

Similarly, the “Close” event generates a context with an InputParameters property collection that contains an IncidentResolution property. Before continuing, we should check that this property is a DynamicEntity and then check for the incidentid field which contains the ID of the case.

Private Sub HandleClose(ByVal context As IPluginExecutionContext)
 
    If context.InputParameters.Properties.Contains("IncidentResolution") Then
        If TypeOf context.InputParameters.Properties("IncidentResolution") Is DynamicEntity Then
            Dim incidentresolution = CType(context.InputParameters.Properties("IncidentResolution"), DynamicEntity)
            If incidentresolution.Properties.Contains("incidentid") Then
                If TypeOf incidentresolution.Properties.Item("incidentid") Is Lookup Then
                    Dim incidentid = CType(incidentresolution.Properties.Item("incidentid"), Lookup).Value
                    CancelChildWorkflows(incidentid, context)
                    CancelChildActivities(incidentid, context)
                End If
            End If
        End If
    End If
 
End Sub

Notice I have included quite a bit of error checking to make sure that we don’t hit any errors such as ArgumentNullException.

Now that we have the ID of the case record, we need to loop through all the active child workflows and open child activities, and cancel them. Since the process is almost identical for activities as it is for workflows, I’ll just cover off the process for cancelling workflows.

First up, we need to define a QueryExpression that queries the asyncoperation entity and requests all records where the operationtype = 10 (i.e. workflow), the regardingobjectid equals the case id, and the statecode is either “Suspended” or “Ready”. Unfortunately, if a workflow is being processed by CRM, it will be in a “Locked” state, which means that no other process can access it. It might not therefore be possible to cancel all active workflows if the plug-in executes at the same time a workflow is locked.

Private Function RetrieveChildWorkflows(ByVal parententityid As Guid, ByVal context As IPluginExecutionContext) As List(Of BusinessEntity)
 
    Dim filterStateCode As New FilterExpression
    filterStateCode.FilterOperator = LogicalOperator.Or
    filterStateCode.AddCondition("statecode", ConditionOperator.Equal, "Suspended")
    filterStateCode.AddCondition("statecode", ConditionOperator.Equal, "Ready")
 
    Dim filter As New FilterExpression
    filter.FilterOperator = LogicalOperator.And
    filter.AddCondition("regardingobjectid", ConditionOperator.Equal, parententityid)
    filter.AddCondition("operationtype", ConditionOperator.Equal, 10)
    filter.AddFilter(filterStateCode)
 
    Dim qe As New QueryExpression
    qe.ColumnSet = New ColumnSet(New String() {"asyncoperationid", "statecode", "statuscode"})
    qe.EntityName = "asyncoperation"
    qe.Criteria = filter
 
    Dim request As New RetrieveMultipleRequest
    request.ReturnDynamicEntities = True
    request.Query = qe
 
    service = context.CreateCrmService(False)
    Dim response = CType(service.Execute(request), RetrieveMultipleResponse)
 
    Return response.BusinessEntityCollection.BusinessEntities
 
End Function

Finally we need to loop through each asyncoperation in turn, and cancel by updating statecode = “Completed” and statuscode = 32 (i.e. Cancelled).

Private Sub CancelChildWorkflows(ByVal parententityid As Guid, ByVal context As IPluginExecutionContext)
 
    For Each asyncoperation In RetrieveChildWorkflows(parententityid, context)
        If TypeOf asyncoperation Is DynamicEntity Then
            If Not CType(asyncoperation, DynamicEntity) Is Nothing Then
                CancelWorkflow(CType(asyncoperation, DynamicEntity), context)
            End If
        End If
    Next
 
End Sub
 
Private Sub CancelWorkflow(ByVal entity As DynamicEntity, ByVal context As IPluginExecutionContext)
 
    If entity.Name = "asyncoperation" Then
        If entity.Properties.Contains("statecode") And entity.Properties.Contains("statuscode") Then
            If TypeOf entity.Properties("statecode") Is String And TypeOf entity.Properties("statuscode") Is Status Then
 
                entity.Properties("statecode") = "Completed"
                entity.Properties("statuscode") = New Status(32)
 
                Dim target As New TargetUpdateDynamic
                target.Entity = entity
                Dim request As New UpdateRequest
                request.Target = target
 
                service = context.CreateCrmService(False)
                Dim response = CType(service.Execute(request), UpdateResponse)
 
            End If
        End If
    End If
 
End Sub

Great, so now we’re done cancelling active child workflows we can do something very similar with open child activities. I’ve uploaded the Visual Studio 2008 project here for you to get the full source code.

Also, to make life easier for those of you who just want to install the plug-in “AS-IS”, I’ve used the SDK plug-in installer sample code, and created two batch files, install.cmd and uninstall.cmd, which you can use. All you need to do is edit these files and modify the orgname, url, domain, username and password parameters to match your own crm environment.

So is that it? Well, not quite! This plug-in works as expected when you select Cancel Case from the Actions menu, but when you select Resolve Case things don’t go according to plan.

image

The main problem is the that the Resolve Case form checks for any open activities during the OnLoad event, and if it finds any, a dialog box is opened with a warning message. When you click OK to acknowledge the warning, the Resolve Case form is helpfully closed as well – The upshot is that no “Close” event is ever fired.

image

!!!…WARNING: UNSUPPORTED CUSTOMISATION ALERT…!!!

So you probably guessed from the warning that you can fix this issue, but only by modifying one of the files on each CRM server in your environment. I would strongly urge you only try this in NON-PRODUCTION environments. For more details about the bad things that occur when you step outside the supportability rules, please read the following SDK article: Unsupported Customizations.

OK, so now you understand the ramifications of going unsupported, here’s how to fix the problem.

  1. In the CRMWeb\CS\cases\ folder on your CRM server, locate the file dlg_closecase.aspx
  2. Using Visual Studio, Notepad, or any text editor of your choice, edit this file.
  3. Find the statement if (typeof(LOCID_CONFIRM_ACTIVITIES)!="undefined") statement
  4. Directly below this statement, comment out the lines alert(LOCID_CONFIRM_ACTIVITIES); and window.close();
  5. Save the file.

Your modifications should look something like this.

if (typeof(LOCID_CONFIRM_ACTIVITIES)!="undefined")
{
//alert(LOCID_CONFIRM_ACTIVITIES);
//window.close();
}

Now, when when you select Resolve Case from the Actions menu, you get to fill out the Case Resolution form without the warning. When you click OK to save your information, the “Close” event is fired, and the plug-in works as expected.

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

Removing/Hiding CRM Folders In Outlook

Ministry of Lost Souls…

A question came up recently from a customer who wanted to use the “Address Book”, “Task/Contact/Calendar Synchronisation” and “Track In CRM” functionality from the CRM Outlook Client, but avoid using the CRM navigation folder and so forcing their staff to use web client. They wanted to know if there was a supported way to hide or remove the whole Outlook Client Navigation.

Unfortunately you can’t simply delete the Microsoft Dynamics CRM folder (a Custom MAPI Message Store) from Outlook as this will disable all CRM client functionality.

However, you can customise the SiteMap XML configuration file by specifying Client='Web' for each SubArea element. That way, you will only see the top level "Microsoft Dynamics CRM" folder in Outlook, with no subfolder. I just tested this in my demo environment, and you can see the results below. The best part is that this is a fully supported solution.

image

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

Testing Both IFD & Windows Authentication

Deep In The Motherlode…

As part of my development work I sometimes need to test applications using both IFD and Windows authentication on my Virtual PC demo environment. However, looking through the various blog posts here and here, it seemed that no-one had come up with a solution to be able to run both authentication models side-by-side when the CRM client and CRM server are on the same virtual machine. After a couple of days playing around with various network settings, DNS entries and the IFD Configuration Tool, I stumbled upon the magic configuration that enables this to work.

I tend to build my own Virtual PC images (my current environment is 32-bit Windows Server 2008 SP2, SQL Server 2008 SP1, SharePoint Server 2007 SP2, Visual Studio 2008 SP1 and CRM 4.0 Update Rollup 4), and I use a variation on the two network adapter configuration that Menno described recently in his blog – You can get details of this configuration from my May 2006 blog post here.

STEP 1 – Set up a second static IP address on the same subnet as your primary IP address. You can do this by opening the network adapter properties, navigating to the Advanced TCP/IP Settings page and adding a second IP address. In this example, my primary IP address is 192.168.0.1 with subnet mask 255.255.255.0, and my second IP address is 192.168.0.2 with the same subnet mask.

Network Adapter Configuration

STEP 2 – Add a couple of additional DNS Server entries. In this example my server name is “server” and my domain name is “demo.com”, and I access CRM through the URL http://server:5555/orgname. When using IFD authentication, I decided I wanted to use the URL format http://orgname.crm.demo.com so I needed to create three new entries in the DNS Manager console.

  1. In the “demo.com” domain, create a new child domain called “crm”
  2. In the “crm.demo.com” domain, create a new host (A) record with a blank hostname and IP address 192.168.0.2 – this allows you resolve the address “crm.demo.com”, and you can test this works by opening a command prompt and running the command “Ping crm.demo.com”.
  3. In the “crm.demo.com” domain, create a new host (A) record with a hostname of “*” and IP address 192.168.0.2 – This allows you to resolve any address in the “crm.demo.com” domain. You can test this works by opening a command prompt and running the command “Ping orgname.crm.demo.com”.

DNS Manager Configuration

STEP 3 – Install and run the IFD Configuration Tool

  1. Selecting “IFD+On Premise” as the authentication strategy.
  2. Add the IFD internal network address 192.168.0.1 and subnet mask 255.255.255.255 – It is really important the you use 255.255.255.255 subnet mask, since this means that IFD will work from our second IP address.
  3. Select “crm.demo.com:5555” as the IFD App and SDK root domains.
  4. Select “localhost:5555” as the AD App and SDK root domains. Unfortunately I haven’t been able to get this to work when using “server:5555” as the root domain.

IFD Configuration Tool

That’s it, and you should be good to go – obviously you need to use your own IP address ranges and DNS domain names, but the principle is the same. As you can see below, I can access my CRM org “Microsoft CRM” using either method, simply by typing in a different URL.

URL http://localhost:5555/microsoftcrm for Windows Authentication

CRM 4.0 With Windows Auth

URL http://microsoftcrm.crm.demo.com:5555 for IFD authentication:

CRM 4.0 With IFD Auth

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

Update Rollup 4 for Microsoft Dynamics CRM 4.0

The Glass Prison…

I just did a quick scan of the latest downloads from http://www.microsoft.com/downloads and noticed that the CRM team have just released Update Rollup 4 for CRM 4.0 which you can download from here.

It’s good to see that we are sticking to the predictable, 8-week, update rollup schedule outlined earlier this year on the CRM product team blog.

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

Windows 7 & Virtual PC

It’s The End Of The World As We Know It…

There’s been a lot of noise this week around the broad availability of Windows 7 Release Candidate (RC) (available for download here), but the thing that caught my attention was the beta availability of a new version of Virtual PC, specifically designed for Windows 7.

Now, you have probably noticed the increased focus here at Microsoft on 64-bit computing, with the Exchange Server team no longer shipping a 32-bit version and many other server products likely to follow suit (yes SharePoint Server 2010, I’m looking at you). In the not-too-distant future I can see a time when I will need to run 64-bit virtual machines just to be able to deliver my standard demos.

Since Virtual PC 2007 doesn’t support 64-bit guests, I was hoping that the new Windows 7 version would add this much-requested feature. Alas, it would appear that my hopes have been cruelly dashed if the following TechNet forum thread is to be believed - VPC and 64-bit Guest Support. It looks as though my only 100% Microsoft option is to use Windows Server 2008 with Hyper-v as my notebook PC host OS. Alternatively, I could always purchase a copy of VMWare Workstation which supports both 32-bit and 64-bit guest OS, but as a loyal Microsoft employee (and mostly because I don’t want to spend my own money), I probably won’t….or then again…:-).

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

Virtual PC 2007 Performance Tweaks

Going For The One…

I’ve been head-down working on closing out Q4 CRM deals here in the UK, but wanted to share a couple of tweaks that have made a small improvement to the speed of my demos running on Virtual PC 2007.

1. Prevent your PC from entering a low power state

Some laptops will slow down performance of their CPUs and putting them into low power modes resulting in poor Virtual PC performance. Here are instructions on how to maximise CPU utilization to ensure that the laptop doesn't go into low power mode.

  • Stop Virtual PC
  • Using notepad, edit the file %appdata%\Microsoft\Virtual PC\options.xml
  • Locate the <virtual_machines> section of the file and add the key <enable_idle_thread type="boolean">true</enable_idle_thread>
  • Save the file and re-start Virtual PC

Virtual PC will now prevent the CPU from entering low power mode, however the downside is that it will drain you battery far quicker.

2. Apply the Virtual PC 2007 SP1 Hotfix Rollup.

Like most people I have been running what I thought was the most up to date version of Virtual PC (v6.0.192.0) - Microsoft Virtual PC 2007 SP1. However, I recently discovered a hotfix rollup was released in February 2009 which provides additional performance and stability fixes - Virtual PC 2007 Service Pack 1 Hotfix Rollup.

Because this hotfix rollup changes the Virtual PC version (v6.0.210.0), you have to make sure that you fully shut down your virtual machines instead of just saving state, otherwise you won’t be able to re-start them.

This posting is provided "AS IS" with no warranties, and confers no rights.

Laughing Boy Chestnuts Pre-School

More Posts Next page »
Page view tracker