• Girish Raja's Blog

    How to print a PDF file in Windows 8



    I’ve seen many people that are wondering where the print menu went in Windows 8 especially when trying to print a PDF file they’re viewing in the Reader app.

    With Keyboard

    If you have a keyboard attached to your Windows 8 machine, it is as simple as pressing Ctrl+P in the Reader app which will bring up the list of printers that you have installed and you’re two clicks away from printing your document.

    Without Keyboard

    If you don’t have a keyboard, don’t worry as you can do this easily with touch. Swipe from the right to bring up the charms.


    Tap on Devices which should show you the list of printers you have installed.

    image  image


    Select the appropriate printer and choose other options (like page size, etc) and print away! BTW be responsible and print only if you must absolutely do so. Vast majority of things you can do on paper (such as reading, highlighting or adding an annotation) can be done directly within the Reader app in Windows 8.


  • Girish Raja's Blog

    Connecting to CRM Online 2011 Web Services using SOAP Requests Only


    Updated 29th August 2012: The sample has been modified to support both the Microsoft online services environment (Office 365 style) authentication and the Microsoft account (formerly Windows Live ID) authentication. Once again many thanks to Ryan Lo from Marketo for providing the updated sample.

    Recently I have had a number of developers asking me about using CRM Online web services from within non.NET applications such as PHP or Flash web apps. Given my heads down approach on .NET these days I ended up putting together a pretty basic sample in C# that shows how to access CRM Online web services using SOAP messages only. This code sample retrieves data from CRM Online using pure SOAP calls only and no additional assemblies to illustrate the underlying SOAP interactions. Couple of ISV partners were able to successfully use this sample and port it over to PHP & Adobe ActionScript, so this stuff apparently works!

    The soap messages were based on Fiddler ( traffic capture of sample code from the CRM 2011 SDK (

    You can download the sample code here:

    At a high-level below is what the code does:

    1. Pass in the device credentials and get a PUID. The device credentials is a randomly generated string that satisfies Live ID schema. You can generate one from this tool: Create CRM 2011 Beta Device
      1. POST
      2. Get the PUID from response
    2. Pass the device credentials
      1. POST****STS.srf (dynamically obtained) 
      2. Get the device CiperData (BinaryDAToken)
    3. Pass the WLID username, password and device BinaryDAToken
      1. POST***STS.srf (dynamically obtained)
      2. Get the security tokens (2 CipherValues) & X509SubjectKeyIdentifier
    4. Do CRUD with the web service by passing X509SubjectKeyIdentifier, 2 CipherValues and the SOAP request (with data payload)
      1. POST
      2. Get the result from the CRUD response and parse XML to get the data you need


    BTW the new MSDN code gallery (beta) is pretty awesome with the ability to browse through the source code without downloading and extracting the zip file.
    Pretty nice, huh!


  • Girish Raja's Blog

    Building a CRM 2011 Virtual Machine–Video Walkthrough


    In this video, David Yack walks through the process of setting up a all-in-one CRM 2011 Virtual Machine from the ground up. Of course CRMOnline is a great way to build your demos and prototypes however there are scenarios where  you’ll need a virtual machine. This is especially true for pro developers who’d find a VM very useful for developing, debugging & testing their code.

    Since C9 now uses Smooth Streaming for the default player, it is recommended to watch this video in full screen on a broadband internet connection with good bandwidth. If you’re having trouble viewing this in the embedded player, please download & play the high quality WMV. For web purists (no offense), C9 now offers the video in a HTML5 player (video tag) if you choose so in your C9 user profile!

    I shared the video with someone smart who also had the patience to write down the steps in a detailed fashion. I’ve posted the notes here as-is with minimal edits and I hope you will find it useful.

    Step Outline

    1. Minimally have 4GB memory on the host machine while building this VM
    2. Install Windows Server 2008 or Windows Server 2008 R2. This has to be a x64 bit Edition & make sure the hosting computer is 64 bit. 32 bit does not work. Side.
    3. Once installed we will go ahead & set this as the domain controller
    4. Install SQL Server 2008 R2
    5. Install Office 2010 if you need the outlook client
    6. Install MS SharePoint Foundation 2010 (a free edition) - this is not a requirement to run CRM2011 but CRM has some deeper integration with SharePoint.
    7. Install Dynamics CRM 2011 bits - at the minimum you will need the CRM2011 server & CRM2011 client software (CRM2011 client software 64 bit version is available for integration with Office 64 bit). If you are using SP, then software for CRM2011 SharePointList component is available. Software for CRM2011 Router & CRM2011 Multilanguage support are also available which are optional. You also have BIDSExtensions which is required if you want to author reports using the Fetch Model (allows reports to be developed for both on-premise & online & be deployed to both environments).
    8. Last but not least is installing VS 2010
    9. Have fun!


    Detailed Steps

    1. Windows Server 2008 R2 VHD when downloaded comes in a self-extracting archive - Part 1,2 &3. Run the extract on these. The extracted folder will have a ReadMe, License Agreement & a folder structure (WS2008R2Fullx64Ent)which looks like a VM that you can go ahead & readily import. Now copy this folder structure to your local hard drive. Rename this to CRM2011DevVM or some meaningful name.
    2. On the host, launch Server Manager (right next to the Start Button) - expand Roles & make sure you have a role named Hyper-V listed there.
    3. When you further expand the Hyper-V (under the Role section), you would see the machine name listed. Right click the machine name & select Import Virtual Machine & specify the location of the CRM2011DevVM folder. Also, under the Import settings, you can either choose Move/restore option, copy or duplicate. You can now rename the VM (listed under the machine name) to something useful from WS2008R2Fullx64Ent to CRM2011DevVM. Right click this VM & choose Settings. Increase the Memory to at least 2750 MB.
    4. Right click CRM2011DevVM & start the VM. This boots up the OS. Right click again & you will see Connect using which you can remotely connect to the VM.
    5. Then go through the set up steps mostly with default values (like the country, language,..). When it starts up the first time, it will show a password expired notification. Go ahead & change the password.
    6. Once VM desktop shows up, change the computer name to something meaningful. On the Start menu - choose Computer - right click Properties - Change Settings - System Properties dialogue - then click Change - enter the new name (eg. CRM). You will need to restart the machine once you change the name of the machine.
    7. Go back to settings on the VM (Server Manager -> Roles -> Hyper-V -> CRM 2011 Beta -> right click Settings - network Adapter - select Local Area Connection - Virtual Network - click Apply & then OK. This enables the internet connection on the VM.
    8. Then navigate to Command Prompt in the VM - type dcpromo to promote this particular machine to a domain controller. Follow through the set up (ignore the warnings), you need to give a fully qualified domain name ( & continue. Then choose Windows Server 2008 R2 for Forest functional level & continue. Then enable DNS server. You can leave the default locations for the database & log files. Then assign a password for Directory Services Restore Mode & complete the setup. Reboot the machine again.
    9. Log in & copy the SQL Server Install to the local machine. Extract it & start setup. Click New Installation and continue. In the meantime, click Start button & type dsa.msc - this launches the domain users environment so we can add a user under which SQL Server can run. Navigate to the domain name (> Users->New->User. Create a user named Sql Server & assign a password. Check the options where the user cannot change the password & the option password never expires. You can get back to SqlServer Install Setup & continue with feature installation. Under Instance Configuration, you can leave the default instance selected. Use the same account for each of the services - the one you just created (contoso\sqlsever) and you can choose Windows Authentication Mode. Install Reporting Services under the Native default mode. Continue & complete the installation. If needed, you can then delete the install files from the local hard drive. Note: Ensure that the user you create for the CRM services to run under are added to the 'Performance Log User' otherwise you'll run into performance counter permissions issue as mentioned here:
    10. Now is a good point to take snapshot of the VM. Go back to the host machine - Server Manager->Roles->Hyper-V->CRM2011DevVM -> right click Snapshot. Once the snapshot is created, you could rename it to something meaningful - "After SQL Server and Domain Setup". If you ever want to start using from this checkpoint, right click & select Apply & that will reset the machine to this check point.
    11. Next step is the installation of SharePoint Foundation 2010 on the VM. Copy the SharePoint installation file to the VM & run it. Install the Prerequisites which will install a few patches & hot fixes. Once it completes, reboot the machine. After reboot, navigate back to the SharePoint Installation file & install SharePoint Foundation. This installs the software & when it completes, it will prompt if you want to run the configuration wizard which will set up the basic configuration. Choose to run the configuration wizard & go through the various steps. Create a new server farm. Then type crm as the Database Server & SharePoint_Config as the Database Name & reuse the account we had set up for SqlServer - contoso\sqlserver & set up a passphrase to secure the Farm. Then check the option to set a specific port number for SharePoint Central Administration Web Application & type in 7777 & make sure it doesn't conflict with anything else you are using. Choose the default value NTLM as the authentication provider for this web application. Finish the configuration & exit. It will launch the administration for the first time. Make sure it comes up fine & then once it is complete, you might want to take another snapshot at this point.
    12. At this point, it will prompt you to configure the SharePoint Farm. Choose the option to configure by yourself. Choose Manage web applications. Create a new web application & this will be the site we use to host our site collection for the data that we store from CRM. Select Classic Mode Authentication & type in 7778 for the Port. Leave everything else as it defaults to & click OK.
    13. Navigate back to Central Administration & click Create Site Collection. Select the web application that we just created (http://crm:7778/) & specify a title CRM Data. Choose Document Workspace as the template & specify SqlServer as the administrator for this site collection & click OK to create. Then navigate to http://crm:7778/ to verify if you can view the default content for that site collection.
    14. Next step is to install the CRM Server. Copy the CRM2011-server installation file to the local hard drive & run it. Once it is done extracting, navigate to the serverfolder & run setupserver. Choose the option to get updates for Microsoft Dynamics CRM. It will then prompt you for the Product Key which can be retrieved from the ReadMe file for the Server installation & continue. It will install a few prerequisites. Reboot & then again restart the installation by running the setupserver & repeat steps to complete installing the prerequisites. Then continue installing Dynamics CRM - choose the default location & select Full Server for Roles. Create a new deployment & type in the name of our SqlServer (crm) & choose Contoso as the Organizational Unit. Then select Network service account for the Security Account & let it use the Default Web Site. Then do not set the E-mail router service name. Then specify the Organization Settings. Type in the display name as Contoso1 & leave the remaining fields to default values & continue. The default reporting server url will be http://crm/reportserver. Then check the option to use Microsoft Update to check for updates when available & complete installation. Once it completes, make sure to check "Launch Reporting Extensions for SSRS Setup" & the option to get any updates for Dynamics CRM. Select crm as the SQL Server, MSSQLSERVER as the SSRS Instance, check the option "Install SQL Extension" & complete the installation of Microsoft Dynamics CRM Reporting Extensions.
    15. Navigate to http://crm/ & verify the new instance comes up which completes the basic installation.
    16. Next step would be to install VS2010 & create some other organizations through Deployment Manager.
    17. Give yourself a round of applause for reading this till the end!


    BTW, below are the links to software downloads referred in the video

    Windows Server 2008 R2

    SQL Server 2008 R2

    Office 2010 Trial

    SharePoint 2010 Foundation

    CRM 2011 Download

    Visual Studio 2010

    P.S: I know this video was recorded several months ago while Beta build was around but it is still very relevant for everyone. I apologize for not posting this earlier.

  • Girish Raja's Blog

    Connecting SharePoint Online and CRM Online using BCS - 2013 Edition


    Update 2nd February 2015: For using this article with CRM 2015, please follow steps mentioned by Andrew Robinson in the comments section.

    This blog post is a simple step-by-step walkthrough on connecting SharePoint Online (SPO) to CRM Online using the Business Connectivity Services (BCS). This can be useful in a number of situations including self service portals, executive dashboards, etc. The end goal for this post is to have CRM account information displayed within SharePoint as illustrated below (nothing fancy) but you can easily extend this sample to include additional scenarios such as pulling additional entities/tables, create/update CRM data, charts/dashboard, mashups with ERP and much more.


    Note: SharePoint Online in this example uses SharePoint 2013 and CRM Online is the December 2012 release. Steps are subject to change for future releases. This walkthrough uses the App model for SharePoint instead of the classical BCS settings managed in the admin center.

    Architecture of the solution

    Below is a quick diagram showing the architecture of the solution we’re going to walkthrough. As you can see from the diagram below, we do have a shim sitting between CRMOnline & SPO. The reason for us to have a shim/proxy web service is because, external authentication is not enabled on CRM Online’s REST endpoint today.  CRMOnline’s REST endpoint today is only available for use by JScript and web resources within the CRM application however you can expect that limitation to change in the future.


    Enough with the talk, let’s get to the code.

    Building the Proxy OData Service

      1. Download and extract the latest CRM 2011 SDK if you don’t have it already. If you're using CRM 2013, please ensure that you're following this article with CRM 2013 SDK. While you could build the proxy web service in several ways, we’re going to use an approach that creates a REST/OData service that involves very minimal custom code!
      2. Once you have extracted the SDK, goto the folder “\sdk\walkthroughs\portal\webappwalkthrough\” and open the webappwalkthrough.csproj project using Visual Studio (2012 in this case)
      3. Open the web.config file and change the connection string to your CRMOnline credentials as shown below. In this post, we’re using the same identity for all CRMOnline calls and we are not impersonating the SharePoint user.
      4. Open the CrmData.svc.cs file and modify it as shown in the snippet below. Essentially we’re modifying the code to make the OData endpoint just pull accounts and contacts from CRM instead of pulling everything.
      1. Right-click on the project and “Add Reference” to the Microsoft.IdentityModel.dll (v3.5). Make sure you set it’s copy local property to true.
      2. Set CrmData.svc as the start page and hit F5 to verify that the OData endpoint is working locally. You can browse to http://localhost:<devport#>/CrmData.svc/ContactSet to verify that the proxy OData is indeed pulling data from CRM Online.
        Note: For the purposes of quick illustration, the code in this blog post doesn’t apply any security on the proxy OData service. Please refer to Marc Schweigert’s blog post and Steve Fox’s BCS security post for details on implementing security for proxy services.


      1. The service now needs to be deployed publically in order for SharePoint Online to consume it. Here, we’re going to deploy the OData service to the *free* Windows Azure websites. Once you have signed up for Windows Azure, login to your Azure account and hit the “New” button followed by the steps illustrated below to quick create a website. Hint: Use the region closest to your CRMOnline datacenter. The unofficial way of finding this out is documented here.


    1. Once the site has been created, download its publishing profile from the portal.
    2. Back to Visual Studio, right-click on the project and click “Publish”. In the publish dialog, choose Import –> “Import from a publish profile file” –> browse to the publishing profile you downloaded earlier –> OK. You can run through the next few steps or hit publish button directly.
    3. Once the site has been published, browse to the public URL for the service (say and ensure that the endpoint is able to pull data from CRM Online.

    Creating the SharePoint Online App

    Now that we have the proxy OData service up and running, it is time to create the SharePoint App.

      1. In your Office365 admin center, click the Admin dropdown followed by SharePoint. Create a new private site collection with the “Developer Site” template.
      3. Open Visual Studio as admin or better yet follow this hack to always run Visual Studio 2012 as admin. If you’re going to spend a lot of time building SharePoint apps, the hack will save you a lot of time and pain.
      4. Create a new “App for SharePoint 2013” project.
      5. Enter a name for the app, the URL of the site collection you created earlier and choose “SharePoint-hosted” followed by clicking the Finish button.
      6. If Visual Studio prompts you for Office365 credentials, enter them so that the project is connected to your SPO site.
      7. Right-click on the project –> Add –> “Content Types for an External Data Source”.
      8. Enter the URL for the custom OData proxy running in Azure website and specify a name. Click Next.
      9. Choose both AccountSet & ContactSet and hit the Finish button. Visual Studio automatically generates the ECTs (External Content Types) for both accounts and contacts.
      10. Within Default.aspx (under Pages), change the code within the head and body sections as listed in the below snippet. Essentially we’re creating the links for account and contact ECTs along with a placeholder for some custom javascript. Make sure that the version of jQuery referenced in the code matches the one within the Scripts folder of your app.
      1. Next up, let’s write some jQuery to select the AccountNumber & Name and display it in a simple HTML table (sorry web designers)! Open the App.js file (under Scripts folder) and replace it with the code below. If you’re familiar with javascript and jQuery, the code should be pretty easy to follow.
    1. Right-click on the project or solution and click Deploy. Visual Studio automagically installs the app to your SPO developer site.
    2. Open the SPO site and you should see your app under “Apps in Testing”. Click on the app and make sure it works as expected.
      image image

    Now that you have the base connectivity between CRMOnline and SPO through BCS, the possibilities are endless. You can bring data from other CRM entities, apply security trimming, have users update CRM data directly from SharePoint, use for pretty charts and dashboards, mashup CRM data with other OData data sources and much more depending upon your needs. If you end up building interesting SharePoint-CRM apps, please do tell us through comments below.



  • Girish Raja's Blog

    MSDN Webcast: Integrating SharePoint 2010 and CRM 2011 Online


    Updated: 23rd February 2011 - This webcast was recorded and can be viewed on-demand here: You can view the slides used in this webcast using the PPT Web App at the bottom of this post. Also please note that the BCS connector shown in the webcast is not supported by the CRM support team.

    On February 22nd , I’ll be presenting an MSDN webcast titled Integrating SharePoint 2010 and CRM 2011 Online. It is a 300-level webcast for  programmers, developers & architects , so I’ll delve deeper into code and architecture. The topic of integrating SharePoint & CRM is something I’ve been presenting for more than an year but every time I deliver this, there is definitely new content available for me to present. This time is no exception as you’ll get a preview of the BCS connector we’re working on and also I’m excited to show a couple more interesting demos.

    You can signup for the webcast here:
    Date & Time: Tuesday, February 22nd, 2011 9:00 AM Pacific Time (US & Canada)

    Below is the abstract for the webcast. Let me know (by leaving a comment below) if you’d like me to cover anything specific that might be of interest to you.

    Microsoft SharePoint and Microsoft Dynamics CRM is a match made in heaven. With Microsoft Dynamics CRM 2011, Microsoft provides out-of-box document integration with Microsoft SharePoint 2010, but customers are increasingly looking for ways to integrate these two technologies further. In this developer-focused webcast, we look at how you can bring Microsoft Dynamics CRM data to SharePoint using web parts, Microsoft Business Connectivity Services (BCS), web services, and more. We also demonstrate the BCS adapter for Microsoft Dynamics CRM and an end-to-end online application connecting Microsoft SharePoint Online, Microsoft Dynamics CRM Online, Microsoft Silverlight, and Windows Azure. If you want to understand how to integrate SharePoint and Microsoft Dynamics CRM, then you don't want to miss this webcast.

    You can view the slides used in this webcast using the PPT Web App below:

  • Girish Raja's Blog

    Microsoft Dynamics CRM 2011 UR9 (a.k.a “R8”) Beta is here!


    Today I’m proud to announce the availability of beta version of Microsoft Dynamics CRM 2011 UR9 or Q2 2012 Service Update or “R8”. Call it what you want but it is here! The beta release only includes on-premises version of the next release of CRM. This release includes support for multiple browser types and many other great features that you can find in the Release Preview Guide.

    This beta release is primarily targeted at developers and partners. We want you to make sure your solution and custom code works as you expect with the upcoming release. Please be sure to ready yourself, your peers and solutions for the release coming up in just a few short weeks.

    What does the beta include?

    • A test only on-premises build
    • Pre-recorded feature overview sessions and power point presentation files
    • Pre-release implementation guide
    • SDK and readme.

    Again we’d like to emphasize that the beta release is for test purposes only, and not for production usage. There is no migration path from the beta to the final release, so please plan accordingly and use appropriate test environments. There are elements of upcoming release that are not included in the beta, for example Mobility or CRMOnline specific features are not offered as part of the beta but will be available in the final release.

    Where can you get the beta release?

    The bits are available on Microsoft Connect site. Please follow the steps below to get access.

    1. Please provision an account on the R8 Beta Connect site by clicking on this link.
    2. Please complete the R8 Beta Access Survey using this link. (this link will not work until you complete step 1 above)
    3. Please access the R8 Beta Package using this link. (this link will not work until you complete steps 1&2 above)
    4. Please pose any questions about the R8 Beta using this R8 Beta Discussion Group here. (this link will not work until you complete steps 1&2 above)


    Post all questions on the Connect discussion group linked above in step #4. If you are having trouble accessing the connect links above, please send an email to

  • Girish Raja's Blog

    Virtual Machine for Dynamics CRM 2011


    Microsoft has released a Virtual Machine (VM) for CRM 2011 for field and partner consumption.  This virtual machine is for demonstration purposes and is pre-loaded with a number of high value scenario demos. It includes CRM 2011, SharePoint, Exchange, Outlook client, SQL Server, and includes xRM scenarios such as portals, facility management, employee management, vendor management scenarios.  With the host of tools available within the VM, it can also be used to kick start your CRM 2011 development if you’d like to build apps for CRM 2011.


    You can download the virtual machine from PartnerSource here:


    If the standard one doesn’t fit your needs, you can always build your own custom CRM 2011 VM.

  • Girish Raja's Blog

    What’s new with SharePoint 2013 and Dynamics CRM


    Recently an analyst asked us what is new in SharePoint & Dynamics CRM with the December 2012 service update. I wrote the below note as a quick summary of what’s revolutionary and evolutionary with SharePoint (specifically SP 2013) & Dynamics CRM.

    1. Self-Service BI with PowerView

    Excel 2013 introduces the ability to create PowerView charts for advanced data analysis by combining a variety of data sources. With the new December 2012 Service Update, data from Dynamics CRM Online can be included as one of the data sources for PowerView. SharePoint 2013 and SharePoint Online’s new release provides the ability for customers to render PowerView charts (including bubble animations) from Excel workbooks through Excel Web App. This allows professionals to analyze their CRM Online data in a self-service manner with just a browser (no need for everyone to be running Excel 2013). For example, in the below figure you can see that the customer service data from CRM combined with call metrics from IVR systems to produce a report rendered right within the browser.


    2. Self-service Portals with BCS

    Business Connectivity Services (BCS) in SharePoint 2013 has been enhanced to natively consume OData endpoint making it easy for customers to integrate Dynamics CRM data within SharePoint. For example, customers can now easily build an internal SharePoint portal for casual CRM users. This is very useful in many enterprise scenarios such as help desk ticketing, vendor portal and many more. SharePoint 2013 also introduces the new notion of SharePoint ‘Apps’ that can bundle such customizations and provide developers with the ability to sell them through the Office marketplace. You can find a simple step-by-step walkthrough on Connecting SharePoint Online and CRM Online using BCS here.

    3. Document library integration enhancements

    With the December 2012 service update, the document library integration with SharePoint has now been enhanced to support SharePoint 2013 along with rendering on multiple browsers including Chrome, Safari, Firefox and IE. SharePoint 2013 also has improved eDiscovery for legal compliance and built-in Content Management Interoperability Services (CMIS) compatibility for interoperability with other applications (like Adobe Bridge and Photoshop) making it easier for customers to manage their CRM digital assets with SharePoint.

    4. Identity alignment

    Office 365 and CRMOnline have shared the same identity platform for some time now. The same identity platform now has been extended to developers for their custom apps as well through Windows Azure Active Directory. This simplifies the user provisioning and administration of joint solutions spanning Dynamics CRM, Office 365 and other applications within an organization.

    5. Social enhancements

    Last but not least is the social enhancements in December 2012 service update powered by Yammer which becomes the social layer for Dynamics CRM. We are also heavily investing in unified identity, integrated document management and feed aggregation among SharePoint, Yammer and Dynamics CRM for the future.


    The list is just a sampling of what I have been able to do discover so far and I’m sure there are a lot more cool integration scenarios that we’ll discover together as a community.  Things like FAST search, SharePoint for Internet Sites connecting to CRM and many more scenarios were possible earlier with SharePoint 2010 and they are enhanced in many ways within SharePoint 2013.

    If you’d like to see some of these scenarios in action, please check out one of my presentations at the upcoming Convergence conference:


    Developer's Guide to Integrating Microsoft Dynamics CRM & Microsoft SharePoint 2013

    Session Code



    Many organizations use both Microsoft Dynamics CRM and Microsoft SharePoint and are increasingly looking for ways to integrate these two technologies. With the new wave of SharePoint 2013 and Office 2013 suites, it is now even easier and compelling to integrate them with Microsoft Dynamics CRM for collaborative cloud solutions. Come learn some of the developer patterns and practices you can use when building apps using technologies such as Microsoft Dynamics CRM, SharePoint 2013, Office 365, and more.




    Thursday, March 21


    4:00 PM - 5:00 PM

    Add to Calendar


      <!--[if !vml]--> clip_image001<!--[endif]-->

  • Girish Raja's Blog

    Dynamics CRM Identity Federation Demo Setup



    One of the benefits of the new CRM Online identity platform is the ability to federate user identities so that end users can use their Active Directory (AD) credentials to logon to CRM Online without having to use a separate set of username and password. This is also referred to as single sign-on (SSO) wherein a user signs in once and can access many applications including CRM Online, Office 365, local on-premises applications and more.

    I often get asked how can one setup a demo/test environment to showcase this functionality with CRM Online so I spent a little bit of time putting together the list of steps required to have a CRM Online demo environment with federated identity. In the end, it is a "no drama" demo as all you are doing is just signing in but there are plenty of things happening behind the scenes to enable this magic!

    The list of steps might seem long because I cover everything from setting up active directory from the ground up to adding users in AD. End-to-end, it'll take about 2 to 3 hours to setup. . I pretty much followed the video walkthrough by Planky to put together my demo environment however there are few steps missing in planky's videos that I've included here. Please note that these instructions are strictly for demo environments and not recommended for production environments. In typical production environments, much of this would be done in advance and you'd need backup/redundant servers for failover, etc. In short, you're better off following the official documentation for production environment setup

    The post assumes that you have already created a new CRM Online trial and have a fair bit of knowledge on Windows Server and Active Directory setup. If you don't have that background, you can easily search the terms I mention on your favorite search engine and you can find plenty of articles to help.

    CRM Online Identity Federation Demo Setup Steps

    1. Create a Window Server Hyper-V Virtual Machine with external network connectivity. I generally use the Windows Server evaluation VMs provided by the Windows team. In this setup, I'm running the VMs locally on my machine but you could also host the VMs in the cloud with Windows Azure
      1. Rename the machine appropriately, say CRMOFedDC
      2. I generally disable Internet Explorer Enhanced Security Configuration (IE ESC) for administrators & users within the server manager for my demo VMs.
      3. Run windows updates to install all the updates
    2. While the updates are installing, register for a new domain name at your favorite provider. In this example, I'm using and the new domain name I registered for the purpose of this demo is
    3. Promote the VM to domain controller using dcpromo
      1. Pick an FQDN of the forest domain. The one I use in this guide is and you need to pick your own. Optionally you can also use crmpmg.local but you'll have to add the .com UPN suffix at a later step.
      2. Chose Windows Server 2008 R2 and above only
    4. Add the "Active Directory Certification Services" role and set up the VM as the Enterprise Root Certification authority as per the instructions here:
      1. Choose "Certificate Authority" in Role Services screen
      2. Choose "Enterprise" in setup type
      3. Choose "Root CA" in CA type
      4. Choose all the defaults in Private Key and database locations screens and finish the wizard to configure the machine as the enterprise root certification authority.
    5. Download 64-bit ADFS 2.0 setup for Windows Server 2008 R2 (RTW\W2K8R2\amd64\AdfsSetup.exe) and install as a stand-alone federation server
      1. This will automatically install IIS, PowerShell, Windows Identity Foundation (WIF) and other required components
      2. Restart the machine at the end of the ADFS 2.0 setup if prompted.
    6. Open "ADFS 2.0 Management" under administrative tools and run the ADFS 2.0 federation server configuration wizard.
      1. Choose " Create a new federation service"
      2. Choose "Stand-alone federation server" since this is a demo environment.
      3. New SSL certificate will automatically be created and displayed for you since the same machine is the certificate authority. Click next a couple of times and complete the wizard.
    7. Download and install the Microsoft online services sign-in assistant:
    8. Download and install the Microsoft Online Services Module (64-bit):
    9. If you used a local name for the AD forest domain (like yourdomain.local) and haven't added (for example as the forest domain in dcpromo setup earlier, go to "Active Directory Domains and Trusts"
      1. Follow this article ( and add a UPN suffix for

      Note: Do the above setup only if you haven't added as the forest domain in AD. For example if you added crmpmg.local during dcpromo, this UPN addition is necessary, otherwise not required.

    10. Login to the Microsoft Online services portal ( with the administrator credentials of your demo account. This is typically the first user that was used to provision the trial such as
    11. Add the (e.g., domain name to the "Domains" under Management.
      1. This can be done using the portal web UI or using PowerShell command New-MsolFederatedDomain:
      2. See godaddy specific steps here:
      3. A visual walkthrough of this specific step is available in this youtube video:
      4. Create a TXT entry in the zone file within with the values provided for your subscription in the portal.

      5. Wait for a few minutes and go back to the Microsoft online portal and click "Verify" button at the bottom of the instructions page.
      6. Select Exchange Online & Lync Online in the "Specify domain services" step.
      7. If you choose SharePoint Online, it is primarily for the public website hosting on as explained here.
      8. Also see "Specify the services you'll use with your domain name" within
    12. Add a user in the Active Directory Users and Computers ensuring that the UPN suffix is the FQDN suffix (for example
    13. Enable Remote Desktop on the box and add the above user to Remote Desktop users.
    14. Open Group Policy Editor (gpedit.msc) and allow login through terminal services for remote desktop users as shown in the screenshot below.

    15. Go into the online services portal and manually add domain users like It will provide a temporary password but you won't use it as you'll use the domain credentials after next step.
      Note: Manually adding domain users is not recommended however the reason we're doing this is because we can test and verify identify federation with just one box without setting up directory synchronization. If you don't add this user now, the only way to add domain users after federation conversation is through directory synchronization.
    16. Next step is to convert the domain name to federated (Convert-MsolDomainToFederated -DomainName by running the set of commands in
    17. Remote desktop into the VM using CRMPMG\testuser and login to CRM or the portal ( When a domain user tries to sign-in, the office365 login page, automatically redirects to the federated login page.

    18. Active directory then prompts for credentials
    19. Once you sign-in using AD, you'll immediately login to the portal/CRM.
    20. You can disable this secondary authentication prompt by doing the below steps.
      1. Disable Anonymous Authentication and enabling Windows Authentication in IIS as shown in the below screenshot. Restart IIS to ensure the changes have been refreshed.


      1. Add to the "Local Intranet Zone" within IE for the windows credentials to be passed automatically.
      2. Now if you visit the portal (or CRM), you just enter your username and you'll be automatically signed-in using your domain credentials.
    21. You can also create single sign-on URL that allows users to login to CRM directly without even entering the username. This is done by appending the CRM URL with whr query string:


    1. Note that once you've enabled federation, you cannot add AD users through the portal UI. AD users have to be synchronized from AD to the online portal through a tool called DirSync.
    2. Visit and click "Activate" (step 3) to active directory synchronization.
    3. Create a second virtual machine (Windows Server 64-bit image) and join the VM to the CRMPMG AD domain. As always it is certainly a good idea to install all the latest windows updates before proceeding further.

      Note: In Hyper-V, you might want to create an additional network switch (Internal or Private) to bridge the VMs together to able to domain join. This network setup is similar to the 2010 IW VM.

    4. Install the pre-requisites for dirsync tool
      1. .NET 3.5 SP1
    5. Note: Office 365 supports synchronization of up to 50,000 objects (users, groups, etc). To synchronize more than 50,000 objects, contact Office 365 Support.

    6. At the end of the install, make sure that the configuration wizard checkbox is selected to start the configuration right after the install.
    7. Enter the online services tenant administrator credentials ( followed by domain admin credentials (CRMPMG\administrator).
    8. Leave the "Synchronize directories now" checkbox as check and finish the wizard.
    9. After a few minutes, you can see that users from Active Directory are now available within the Microsoft Online Services users. You can also verify directory synchronization by following the steps here: You can easily distinguish domain users as they have a special "Refresh" icon next to them. Select the synchronized users and active them. You'd also want to assign them security roles with CRM for those users to access CRM Online.

    10. You will also see an error email regarding stating that there is conflict during directory synchronization. This is expected since we manually added testuser instead of synchronizing from the directory. You can delete the user within the portal and it'll get added back to CRM after a few hours via synchronization.
    11. You can also force directory synchronization using PowerShell (Start-OnlineCoexistenceSync) or using configuration wizard as per the instructions here:

    12. And you're done! You now have CRM Online demo environment with federated identity and directory synchronization.


  • Girish Raja's Blog



    I love Onenote and evangelize it’s use equally as I evangelize CRM.

    This sarcasm from Office Offline blog by David Salaguinto is the best blog humor I’ve seen in a while.


    His blog is one of the reasons why I don’t effectively use my time at work :)

    BTW, shouldn’t he call it Office Dead (Live) instead of Office Offline. Hey, I’m just following the rules of our marketing here.

  • Girish Raja's Blog

    Source Code from my TechEd OSP309 Session


    Below you'll find the source code for various demos I used during my OSP309 session at TechEd NA 2011.

    These source code projects are provided as-is and are for temporary reference only without any support. They will be removed shortly and the final versions will be posted on MSDN Code Gallery. The link to the Code Gallery Projects will be available in this blog post as soon as they're published.

  • Girish Raja's Blog

    Dynamics CRM 2011 Developer Training Kit



    I’m very excited to announce the availability of Dynamics CRM 2011 Developer Training Kit. It’s a great collection of materials that allows .NET developers to learn the development features of Dynamics CRM and helps them build applications using Microsoft Dynamics CRM 2011 and CRM Online.

    Download the training kit here: Dynamics CRM 2011 Developer Training Kit.

    The training kit includes various resources such as

    clip_image001[14] Presentations - Presentation decks in PowerPoint (.pptx) format that you can use to learn the concepts.
    clip_image001[15] Videos - Video recordings of the presentation along with demos delivered by expert trainers.
    clip_image001[16] Hands-on Labs - Hands-on labs with detailed instructions and source code that will walk you through the various development features.

    No prior Dynamics CRM experience is required to go through this training kit. Familiarity with the .NET Framework, Microsoft Visual C#, Microsoft JScript, Microsoft SQL Server and general Web development is recommended.

    imageWhat topics does this kit cover?

    • Introduction
    • Solutions
    • User Experience Extensibility
    • Visualizations and Dashboards
    • WCF Web Services
    • LINQ and oData
    • Plugins
    • Processes
    • Client Programming
    • Silverlight
    • SharePoint & CRM
    • Windows Azure & CRM
    • Upgrading from CRM 4.0 to CRM 2011
    • Dynamics Marketplace

    What’s Next?

    1. The hands on labs will be upgraded to RTM build as soon as CRM 2011 RTM is made generally available.
    2. The training kit will be published as a training course on MSDN for easy consumption.
    3. We’re looking to add new modules on accessing CRM Online from Java & PHP for non-.NET devs.


    We look forward to seeing your apps on the Dynamics Marketplace.

  • Girish Raja's Blog

    Dynamics Duo Rides again


    I’m sure many of you will remember the “conference” demo that we showed in the Business Action Virtual Tour and also from the demo that Ben did in Convergence keynote last year.

    Recently Ben and I had the opportunity to sit down in B20 and chat about the demo in much detailed fashion. We figured that we might as well turn on the camera so that you all can watch it as well and perhaps maybe learn a thing or two about CRM & Cloud platform from Microsoft!

    Cross-posting from Ben’s blog. Enjoy!

    Get Microsoft Silverlight

    Dynamics Duo Rides again

  • Girish Raja's Blog

    CRM Online 2011 Web Services SOAP Sample now ready for Europe & Asia


    Updated 26th June 2012: The sample has been modified to use the Windows Live login URLs & URNs that is dynamically sent through the discovery service. Many thanks to Ryan Lo from Marketo for providing the updated sample. This new update makes this post obsolete!

    The recent code sample I published on Connecting to CRM Online 2011 Web Services using SOAP Requests Only was well received by many people however a few developers from Europe & Asia mentioned that they were getting (500) Internal Server Error when they were trying out the code. I then realized that CRM 2011 Web Service URLs had a different format in Europe & Asia which helped me to find the culprit.

    I signed up for a CRMOnline European trial account and putting the SDK sample under Fiddler inspection revealed that it was a minor change within one of the XML fragments. That’s it, seriously!

    <a:Address></a:Address>  to 

    Obviously crm4 is used in our European datacenter and crm5 is used in our Asian datacenter so I had to modify the code to use the appropriate URN address.

    // Create the URN address of the format 
    // Replace crm with crm4 for Europe & crm5 for Asia.
    string URNAddress = "";
    if (CRMUrl.IndexOf("") != -1)
    URNAddress = "";
    if (CRMUrl.IndexOf("") != -1)
    URNAddress = "";

    You can download the updated code sample here:

    All is well again!

  • Girish Raja's Blog

    Authentication with Dynamics CRM Online on Microsoft online services environment(Office 365)


    Since July 19th 2012, all new sign-ups for Dynamics CRM Online have been switched over to the Microsoft online services environment which is the same subscription/billing platform used by Office 365 and many other services from Microsoft. Among many new things with this switch over, one significant technical change is that it allows CRM Online customers and partners to use the same identity platform as Office 365. This means that users of CRM Online & Office 365 will have the same set of username/password to access various services and it also helps administrators to manage their users in an effective way.

    If you are a Dynamics CRM developer or partner developing with the CRM Online web services, you might want to update your code to support the new identity platform (now called as Windows Azure Active Directory - WAAD in short)

    For .NET developers, this page on MSDN shows you all the details on updating your code: Also the downloadable SDK code samples have been updated to reflect the various authentication options.

    For those that are writing code in platforms other than .NET, you might want to checkout the updated SOAP-only web services sample posted here:

    You can sign-up for a trial account in the new platform at and manage your subscription at the Microsoft Online Services Portal – Existing users of CRM Online using Microsoft account (formerly Windows Live ID) will eventually be migrated to the new environment and the timelines for this migration is still TBD.

  • Girish Raja's Blog

    TechEd NA 2011 Session Recording: CRM and SharePoint


    My session titled “Integrating Microsoft SharePoint 2010 and Microsoft Dynamics CRM Online” from TechEd North America 2011 was recorded and can be viewed on-demand at the link posted below.

    Source code of all my demos in this session is available here: Source Code from my TechEd OSP309 Session.

    I also found out that John Anderson from Bamboo Solution has done a great job summarizing my session in his blog here:

    BTW channel9 has the recordings of all sessions from TechEd North America 2011 and you can watch/download them here: Even if you didn’t attend TechEd, you can watch all the sessions including the keynote, so don’t miss out on your favorite content.


  • Girish Raja's Blog

    Developer Ramp up Kit for Dynamics CRM 4.0


    Many of our ISV partners might be familiar with the DPE Metro (formerly Ascend) early adopter training content that we used to ramp-up the partners on CRM 4.0 platform(code named "Titan"). We're now happy to announce that the materials are now updated and being released to the entire development community as Developer Ramp up Kit for Dynamics CRM 4.0. Any .NET based developer can use this kit to easily ramp up on the CRM platform and start building line of business applications well within a week's time.

    The kit is available at the MSDN development center here

    The kit includes

    1. Presentation slides and videos: Twelve modules covering the different extensible aspects of the platform.
    2. Hands on Labs: To assist in hands-on learning of each module. Lab manuals along with completed source code are included. Note that we have three different packages, one for each deployment model namely on-premise, partner hosted and CRM Online.
    3. VPC environment: For practicing the on-premise labs.

    No prior Knowledge of Microsoft CRM is required. Familiarity with the .NET Framework, Microsoft Visual C#, Jscript, Microsoft SQL Server and general web development is recommended.

    The content has come a long way since its inception and has been refined and well tested in the field. Going back to 2006 with CTP2 build of Titan, revised completely for CTP3, the materials were delivered in-person to several of our ISV developers world-wide. Earlier this year, it was forked off and we created materials for the Software+Services scenarios focusing on CRM Online and Partner Hosted CRM.

    We've listened to your feedback and the ramp up kit now unifies all of this into one single package that we hope will be a useful resource for our developer community. Many thanks to all those involved that helped in shaping up the content and releasing it. You know who you're!

    Please let me know via comments or email if you have any questions or need any further information.

  • Girish Raja's Blog

    BCS with SharePoint Online & CRM Online


    Click to go to the SharePoint 2010 product marketing siteMicrosoft is bringing new capabilities faster than ever to our cloud offerings including SharePoint Online and CRM Online. Case in point is the Business Connectivity Services (BCS) that was introduced in SharePoint Online last fall as part of the recent service update. The biggest ask I’ve had since the service update was examples of surfacing CRM Online data within SharePoint Online through BCS.

    Having worked with BCS in SharePoint 2010 along with CRM Online, I chatted with the BCS experts at Lightning Tools to pick their brain on this topic. Nick Swan from Lightning Tools was really excited about building a connector to integrate the two cloud platforms. Nick also published a blog post which has a detailed walkthrough on setting up basic integration between SharePoint Online and CRM Online through BCS. You can check out the post here:

    It is a great sample for the community to get started on this topic and Nick also addresses some of the popular questions and concerns you might have. If you are looking for a full-fledged integration solution, please reach out to Nick directly by emailing him at

    Happy SharePointing!

  • Girish Raja's Blog

    Bridging SharePoint 2010 & CRM with Silverlight Webparts


    I have been working closely with Steve Fox lately to put together some interesting scenarios on how we can bring the line of business data from Dynamics CRM and surface that using the SharePoint 2010 platform.

    The first step in that effort is creating a simple developer demo wherein a Silverlight webpart running on SharePoint 2010 brings data from CRM 4.0 web services.


    In this demo, we have a data grid showing some CRM accounts and once you choose an account, it displays the opportunities within the account by using a Chart from Silverlight toolkit. The data grid is also editable, so you can make changes and save them back to CRM. Also when you choose an account and click on “Publish to SharePoint” button, it uses the new Client Side Object Model (CSOM) in SharePoint to publish the data to a custom list in SharePoint.

    You can download the current code for this project here:

    Disclaimer: Please note that this is demo quality code without any optimizations or clean-up.


    The code is currently using Visual Studio 2010 Beta2, Silverlight 4 Beta and SharePoint/Office 2010 Beta.

    As we evolve this code, I’ll be updating the MSDN code gallery project page. Also I’ll post a Channel9 video soon that goes through the development process in detail. If you have any comments or feedback in the meantime, please feel free to send them my way.

    Happy Webpartying!

  • Girish Raja's Blog

    Technical Decision Maker (TDM) deck for Dynamics CRM


    TL;DR version: Dynamics CRM ‘TDM’ presentation deck is now available for download here: It is a must have resource for all sellers of Microsoft Dynamics CRM.


    TDM deck is a popular Microsoft lingo for a technical presentation deck that is used by the sales folks in the field. It is content that gets used when you’re presenting to technical folks at a prospect looking to buy CRM. A technical decision maker (TDM or ITDM) could be someone like a CTO, CIO, CIO Board Member, Enterprise Architect, Solutions Architect, IT Manager or other similar roles within the prospect organization.

    However in real-life, you’re not going to be just presenting to a room full of TDMs alone. Of course there’ll be non-technical decision makers, also known as Business Decision Makers (BDM in Microsoft lingo), in the room along with TDMs. So use this deck in conjunction with the Dynamics CRM BDM deck when presenting to prospects.

    Dynamics CRM TDM deck is an all-encompassing presentation providing a technical overview of Microsoft Dynamics CRM. Further sections within the deck drill into specific topics that contain detailed technical information needed for influencing the technical audience. However the current version of the deck is just a beginning and we’ll strive to include new topics and keep it update to date with latest Dynamics CRM features. Upcoming sections of the deck include User Experience, Extensibility, Security and much more. Below is a sampling of some of the slides you’ll find within this presentation deck.

    Updated 18th March 2013: New section includes presentation slides with speaker notes on the multi-instance capabilities of CRM Online.


    Finally, this deck has been made possible by a number of folks both inside and outside of Microsoft. I’m not going to name them all as the list is pretty long but you know who you are and we sincerely thank you.

    Happy selling!

    imageFrequently asked questions:

    Q: Why was the TDM deck not posted publicly on SlideShare or Skydrive?
    A: Some of the content within the deck are not suitable for public posting due to legal limitations, hence we’re posting this to PartnerSource wherein all Microsoft Dynamics partners can easily access it.

    Q: Can I share this TDM deck on SlideShare or any other publicly downloadable location?
    A: No

    Q: Can I share this with my prospects and customer?
    A: Yes, but please exercise caution when sharing. Your prospect may not want to sift through hundreds of slides, so only share slides that you feel are appropriate, preferably in PDF format.

  • Girish Raja's Blog

    Happy Diwali


    Diwali_Diya Happy Diwali everyone. For the curious Diwali is the biggest Indian Festival. In US terms, it is sort of like Christmas and July 4th put together in one event! It is that big and fun!

    This year Diwali is on Monday, October 27th, the same day as PDC Day1 when all the big announcements were made. It is a very exciting day. Enjoy!

  • Girish Raja's Blog

    PDC - Phone Company CRM & Azure Demo


    Here is the full video of the “Phone Company” demo that shows the integration of Dynamics CRM “5”, AppFabric Service Bus and Windows Azure.


    Get Microsoft Silverlight

    View & comment on Channel9

    Note: Updated video (audio issue fixed) posted as a Channel9 screencast. To download this video, right click and download here. For better viewing experience, view this video in full screen.

  • Girish Raja's Blog

    CRM 2011 Maps with JavaScript


    Hadley Pettigrew from New Zealand has built a simple yet powerful mapping component for CRM 2011 that integrates with the “Advanced Find” dialog. This allows you to take the results from Advanced Find and plot them in Bing Maps with a click of a button. Checkout the tool at

    Hadley has also been blogging the details on how he built it at his new blog here: He has built a number of cool CRM stuff for us recently so be sure to subscribe to the blog.

  • Girish Raja's Blog

    Office Business Applications (OBA) with Office 2010, CRM & SharePoint


    In my quest to bring Office, SharePoint & CRM closer together, I tweaked an old demo and got it working with Office 2010 & SharePoint2010.


    This demo showcases a custom add-in within Office 2010 that helps a Project Manager to create a status report document. The code uses a formatted document template and a custom task pane that pulls data from CRM. From the task pane, you can directly insert data into the word document. Also you can take portion of the document content and publish them to a custom SharePoint 2010 list using the Client Side Object Model.

    You can download the current code for this project here:

    Disclaimer: Please note that this is demo quality code without any optimizations or clean-up.

    The code is currently using Visual Studio 2010 Beta2, Office 2010 Beta, WPF and SharePoint 2010 Beta.

    As we evolve this code, I’ll be updating the MSDN code gallery project page. Also I’ll post a Channel9 video soon that goes through the development process in detail. If you have any comments or feedback in the meantime, please feel free to send them my way.

    Happy Coding!

  • Girish Raja's Blog

    Office 365 and SharePoint 2010 SP1 are Now Available


    Big news in the SharePoint world this week with the release of Office 365 (including SharePoint Online) and the ServicePack1 release for SharePoint 2010. I missed all the action earlier this week as I was out sick but I thought I’d summarize it as a simple reference list for me and I hope this is of use to you as well.

    Office 365 is now publicly available in 20 languages and 40 markets around the world at If you’re wondering what Office365 is, it includes SharePoint Online, Exchange Online, Lync Online and Office 2010 Professional Plus that you can subscribe to as a “service” hosted and operated by Microsoft.

    Watch the Office 365 Launch Video

    If you want to get a good overview of Office365’s capabilities, you *MUST* watch this video. Steve Ballmer officially launched Office365 on July 28th and did a 30-minute presentation for the press. The recording of his presentation along with demos can be found here:

    Tip: The built-in Silverlight player gave me some errors while trying to watch the recording. I then opened Windows Media Player and did a File->Open URL and pasted this link: The video then played flawlessly!

    Free Training Kit for Developers

    My colleague Chris Mayo has just released the Office 365 Developer Training Course and it is available for free here: You can also checkout the SharePoint Online developer page ( for more articles and downloads such as whitepapers, SDKs, etc.

    Of course if you develop for SharePoint 2010, most of those skills apply for SharePoint Online as well since it is built on the same platform.

    Independent Reviews of Office365

    Read what others are saying about Office 365 in this collection of selected top news stories -


    Two articles that I particularly enjoyed reading were:

    1. NPR on Five Reasons Microsoft Office 365 Should Be Taken Seriously -
    2. Office 365 vs. Google Docs Showdown: Feature by Feature -
Page 1 of 6 (132 items) 12345»