CRM 2011 – Articles, documents and videos on setting up IFD for Microsoft Dynamics CRM 2011

A customer asked me to investigate what is involved in setting up IFD (Internet Facing Deployment) for CRM 2011 so I have looked on the internet for the best articles, videos and documents on the subject.

There are five main parts into configuring IFD

  1. Installing AD FS 2.0
  2. Configuring the AD FS 2.0 federation server
  3. Managing certificates
  4. Configuring Dynamics CRM 2011 for claims-based authentication and IFD
  5. Creating the relying party trust for CRM and configuring the claims rules on AD FS 2.0

The Microsoft Dynamics CRM 2011 Implementation guide has a document called – Microsoft Dynamics CRM 2011 and Claims-based Authentication.doc, it is a very thorough document but the only downside is it doesn’t have any screen shots, which can make it difficult sometimes to follow the instructions. You can download the document here

Which is why This blog post is good because the walkthrough of setting up IFD, like all good walkthroughs it has good explanation with the important screen shots

I have a couple of links to two excellent videos going through setting IFD but I have also found some articles on the subject as well.

Introducing Microsoft Dynamics CRM 2011 Claims-based Authentication

IFD for Microsoft Dynamics CRM 2011

Warning – Certified and Gold Certified partners, your Microsoft partner logo and software usage rights ends today – October 31, 2011

I read this blog post today which was on the Microsoft Partner email (yes I do actually read them!!) and I saw today is the last day you can use the Microsoft Gold Partner logo

Microsoft says this

  • Continue to use Gold Certified and Certified logos in their marketing materials until October 31, 2011 and to refer to their Gold Certified or Certified status in communications and documents, such as bidding documents for tenders, until their membership renewal date.
  • Continue to use their current Gold Certified and Certified partner software benefits until October 31, 2011, regardless of which new membership opportunity they chose at their next renewal date

So what does this all actually mean, I’m copy the useful parts from the blog post

What this means is, as of November 1, 2011:

  • Use of the “Gold Certified Partner” or “Certified Partner” logos should cease entirely, including your marketing materials (websites, newsletters, advertisements, etc.) or in your communications and documents, such as bidding documents.
  • If you are a former Gold Certified or Certified partner and you have not achieved a gold or silver competency by October 31, 2011, you must uninstall any software licenses that have been provided to your organization based on achieving the Gold Certified or Certified partner level. The only licenses you will be eligible to use are those that you have earned based on your current membership in the Microsoft Partner Network. Check out the License Calculator tool to see what Internal Use Rights you receive with the various competencies in the Microsoft Partner Network.

As of November 1, 2011, the branding that you must use is the Microsoft Partner Network branding that includes the Microsoft Partner logo with the associated silver and/or gold competencies that your company has achieved to date, as the former branding is officially retired:

image

if you want to create a new logo you can use their online logo maker, which you can find here. If you are puzzled by what this all means then I suggest going to the Frequently asked Questions and you might find some answers. You will need to be a member of partner source but if this blog started you panicing or you are bothered about the content then I guess you already are.

I hope that helps a few people

CRM 2011 – White Paper – Deploying Microsoft Dynamics CRM 2011 and CRM Online Solutions from Development through Test and Production Environments

Microsoft released an interesting new white paper recently which goes into detail about deploying and testing CRM 2011 in product and test environments.

You can download the white paper here

I wasn’t sure what to expect from the white paper but it was intrigueing because it used good examples and went in detail about how to create test objects (queues, users etc) using code.

I hadn’t really considered importing testing data to such an extent as test business units and user and then assign them to different security roles.

The white paper went into a lot more detailed development techniques than I have seen in previous/similar white papers.

I have always wondered how CRM online companies test their code because unlike on premise CRM solutions they can’t have a test organisation or environment.

This white paper is well worth a read.  Good work

 

Metaphorix Gold ERP Status with Microsoft Dynamics NAV

Metaphorix the company I work for and which you can read more about here on their homepage or you can read their excellent blog here and yes it’s me who keeps this up to date.

After passing a few people at the company passing some sure step exams and already having the relevant NAV exams passed we retained our Gold Partner status for ERP with Microsoft Dynamics NAV, you can read about this in more detail on this blog page

Gold partner status is worth a bit more these days with Microsoft bumping up the number of certified professionals needed, so well done to everyone involved.

 

 

removing newline and other special characters from a string

If you are a regular follower of my blog you will have no doubt worked out I am doing some development over the last week and have been wrestling with various problems.

Today I found one of my columns had special characters such as Newline, carrage return etc and I wanted to remove them.  In the end I had to make this function and it did the job just fine.  I’m sure I have come across this problem before and I thought I had a better solution but searching on google and I couldn’t find anything.

 

   public static string ReplaceNewlines(string blockOfText, string replaceWith)
        {
            return blockOfText.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith).Replace("\t", replaceWith);
        }

How to convert an SQL statement into a XML file

Today I found some functionality which I thought was amazing and will save me loads of time creating some sample XML files to test my webservice with.

I had some sample data in database which I wanted to convert into an XML file.

My original idea was to use excel to concatenate bits of it but this turned out to be to slow and difficult.  I then found out that SQL Server has in built functionality to convert sql statements into XML files.

This article goes through some of the functionality and I would also read this article if you want more detail than my example below

below is my select statement, the important part is at the end
FOR XML AUTO,ELEMENTS
this converts the sql statement into XML elements
  
SELECT
      [Code]"Code"
      ,[Name]"Name"
      ,[Commission %]"Commission"
      ,[E-Mail]"Email"
      ,[Phone No_]"Phone"
      ,[Job Title]"JobTitle"
  FROM [database].[dbo].[Salesperson_Purchaser]salesperson
  FOR XML AUTO,ELEMENTS

this is the result, amazing.  I can't believe I have never heard of this fantastic 
feature before

<salesperson>
  <Code>MT</Code>
  <Name>Metaphorix</Name>
  <Commission>0.00000000000000000000</Commission>
  <Email>metaphorix@metaphorix.co.uk</Email>
  <Phone></Phone>
  <JobTitle></JobTitle>
</salesperson>
<salesperson>
  <Code>TS</Code>
  <Name>tom scott</Name>
  <Commission>0.00000000000000000000</Commission>
  <Email>tom.email.co.uk</Email>
  <Phone></Phone>
  <JobTitle></JobTitle>
</salesperson>
<salesperson>
  <Code>DR</Code>
  <Name>Jerry time</Name>
  <Commission>0.00000000000000000000</Commission>
  <Email></Email>
  <Phone></Phone>
  <JobTitle></JobTitle>
</salesperson>

Visual Studio Default Code Snippets

Today I was creating a class with lots of variables and I was originally using the refactor method to generate getters and setters.  In the end I got bored and thought there must be a quicker way.

I knew about code snippets but hadn’t really used them

To use the code snippet for creating a property you type in prop and then shift twice

it will create this

public int MyProperty { get; set; }

the int and the MyProperty are highlighted and the int is ready to typed over

if you type in string and then press shift again it will go to the MyProperty you can then type over that and if you are finished press enter.

 

there are lots more snippets which could help speed up your coding, I found a list here, which I have pasted below so I can find it later.  There is also the ability to add blocks of code and you can do this by pressing

CTRL K, CTRL S

this will then give you a list of snippets to insert.

Default Code Snippets

The following code snippets are included in Visual Studio by default.

Name (or shortcut) Description Valid locations to insert snippet
#if Creates a #if directive and a #endif directive. Anywhere.
#region Creates a #region directive and a #endregion directive. Anywhere.
~ Creates a destructor for the containing class. Inside a class.
attribute Creates a declaration for a class that derives from Attribute. Inside a namespace (including the global namespace), a class, or a struct.
checked Creates a checked block. Inside a method, an indexer, a property accessor, or an event accessor.
class Creates a class declaration. Inside a namespace (including the global namespace), a class, or a struct.
ctor Creates a constructor for the containing class. Inside a class.
cw Creates a call to WriteLine. Inside a method, an indexer, a property accessor, or an event accessor.
do Creates a do while loop. Inside a method, an indexer, a property accessor, or an event accessor.
else Creates an else block. Inside a method, an indexer, a property accessor, or an event accessor.
enum Creates an enum declaration. Inside a namespace (including the global namespace), a class, or a struct.
equals Creates a method declaration that overrides the Equals method defined in the Object class. Inside a class or a struct.
exception Creates a declaration for a class that derives from an exception (Exception by default). Inside a namespace (including the global namespace), a class, or a struct.
for Creates a for loop. Inside a method, an indexer, a property accessor, or an event accessor.
foreach Creates a foreach loop. Inside a method, an indexer, a property accessor, or an event accessor.
forr Creates a for loop that decrements the loop variable after each iteration. Inside a method, an indexer, a property accessor, or an event accessor.
if Creates an if block. Inside a method, an indexer, a property accessor, or an event accessor.
indexer Creates an indexer declaration. Inside a class or a struct.
interface Creates an interface declaration. Inside a namespace (including the global namespace), a class, or a struct.
invoke Creates a block that safely invokes an event. Inside a method, an indexer, a property accessor, or an event accessor.
iterator Creates an iterator. Inside a class or a struct.
iterindex Creates a “named” iterator and indexer pair by using a nested class. Inside a class or a struct.
lock Creates a lock block. Inside a method, an indexer, a property accessor, or an event accessor.
mbox Creates a call to System.Windows.Forms.MessageBox.Show. You may need to add a reference to System.Windows.Forms.dll. Inside a method, an indexer, a property accessor, or an event accessor.
namespace Creates a namespace declaration. Inside a namespace (including the global namespace).
prop Creates a property declaration and a backing field. Inside a class or a struct.
propg Creates a property declaration with only a “get” accessor and a backing field. Inside a class or a struct.
sim Creates a static int Main method declaration. Inside a class or a struct.
struct Creates a struct declaration. Inside a namespace (including the global namespace), a class, or a struct.
svm Creates a static void Main method declaration. Inside a class or a struct.
switch Creates a switch block. Inside a method, an indexer, a property accessor, or an event accessor.
try Creates a try-catch block. Inside a method, an indexer, a property accessor, or an event accessor.
tryf Creates a try-finally block. Inside a method, an indexer, a property accessor, or an event accessor.
unchecked Creates an unchecked block. Inside a method, an indexer, a property accessor, or an event accessor.
unsafe Creates an unsafe block. Inside a method, an indexer, a property accessor, or an event accessor.
using Creates a using directive. Inside a namespace (including the global namespace).
while Creates a while loop. Inside a method, an indexer, a property accessor, or an event accessor.