Tuesday, October 9, 2012

Useful and Funny! Top 5 and Bottom 5 Blogposts of the Last 2 Years

In honor of reaching 400,000 blog hits today I figured I would share which five blog-posts in the last two years have been the most popular.

It should be said that by far, the top page (other than the homepage) was my CRM 2011 SDK Example Index , But that doesn't really count since it's just a listing of MANY of my other blogposts.  It has probably been one of my biggest achievements within the community and I know it has helped a lot of people.

Ok, on with the countdown!

First the TOP 5

5. Instantiating a Service Object Within a Plug-in in Microsoft Dynamics CRM 2011
Ok, This one probably only got so many hits because it was linked on so many of my other posts in the last two years.  It is a simple example of the correct way to instantiate a service object in a plugin.

4. How to: Retrieve the Metadata for an Entity Using Jscript or .NET Using the Microsoft Dynamics CRM 2011 SDK
This illustration shows you how to retrieve metadata for an entity using SOAP (JScript) or C# (.NET) with the RetrieveEntity message against the CRM 2011 organization service. 

3. CRM 2011 Jscript Soap Request Formatter RELEASED!!
This is my tool I created that allows you to take soap envelopes captured from .NET calls (using the SDK SoapLogger for C# or my derivative work for VB.NET) and instantly convert those to JSCRIPT!

2. How to: Get and Set a Lookup Value in Jscript in Microsoft Dynamics CRM 2011
This is one of those posts that came from the fact that there are a lot of questions in the forums that relate to this topic and there are a lot of good posts that demonstrate either how to set a lookup value or get a lookup value, but there aren't many that show both.  So that is what we I did.

1.  RetrieveMultiple Calls in Jscript in Microsoft Dynamics CRM 2011
RetrieveMultiple is probably the most common call you will have to format up in your Microsoft CRM career,  It has been for me anyways.  I wanted to give you a couple examples of how to do this in Jscript.  The first one is taken partially derived from the SDK that contains a linkentity (join) and the second is a simpler call that is a basic call that has criteria (where clause) but no links (joins).

Notable Bottom 5

5.  Deprecated SDK Messages in Microsoft Dynamics CRM 2011
In this post I called out every message included in the CRM 2011 SDK that are currently considered deprecated by Microsoft.   The only comment I got about it was that it would be better if I suggested alternatives to them all.

4. I will be Speaking at Twin Cities Code Camp Tomorrow if anyone wants to come out. It's FREE!!
My last ditch effort to get people out to see my presentation on CRM development at Code Camp last year.  Luckily more people showed to the presentation than viewed this blog-post.

3. My Twin Cities Code Camp Presentation
After my presentation last year I posted my slide deck.  According to Google Analytics it was on people's screens for a total of 4 Minutes and 29 Seconds.

2. Delete an Entity in Microsoft Dynamics CRM 2011 Using Jscript or .NET With DeleteEntityRequest
Evidently no one really cares about how to delete an entity (not a record in the system, AN ENTIRE ENTITY) in .NET or Jscript.  It got very little activity in the last year or so after it was written.

1. Too Much Technology, Not Enough Life!!
Evidently my daughter sitting next to a toilet and a fun spider picture taken at 936mm (one of my best I might add) wasn't much of a draw.  It got mention on Ben Hoskings blog, but beyond that that I don't think anyone else looked at it.

-Happy Tuesday!

Thursday, October 4, 2012

VB.NET Soap Logger for Microsoft Dynamics CRM Updated For OSDP / Office 365 Environments

I have updated my CRM 2011 VB.NET Soap Logger tool.  It now works with Office 365 / OSDP orgs.  Please check it out.  It's based very heavily on the C# version included in the SDK.  It basically allows you to write VB.NET code to the organization service and log the soap for the request and response.  I also put the new version in CodePlex now that I see there will be some minimal maintenance associated with the tool.

Get the new version of the tool here:
https://vbsoaplogger.codeplex.com/

Here is a link to the original informational blogpost on this tool

http://mileyja.blogspot.com/2012/01/microsoft-dynamics-crm-2011-soap-logger.html

- Happy Thursday!

Friday, September 28, 2012

The CRM Field Guide - A New Book by Various CRM MVP's Has Been Released

Many of the CRM MVP's  banded together and compiled their knowledge to release a stellar book that covers most aspects of CRM.  This book, with it's many knowledgeable authors, can be considered the true experts guide when it comes to Microsoft Dynamics CRM 2011.

Bonus:  I contributed to a small part of chapter 1  :)


Check it out here:
http://www.crmfieldguide.com/

or buy it from Amazon here:

http://www.amazon.com/The-Field-Guide-Joel-Lindstrom/dp/0981511899/ref=sr_1_1?ie=UTF8&qid=1348848654&sr=8-1&keywords=crm+field+guide

-Happy Monday!

Monday, September 24, 2012

Dynamics CRM Blogger Strikes Back Against Content Thieves!

In the last week or so I have seen sizable backlash against content thieves in the Dynamics CRM community.  Jukka Niiranen as come with a great way to strike back.  Check this out!!

http://niiranen.eu/crm/2012/09/getting-back-at-blog-content-thieves/

- Happy Monday!

Tuesday, September 18, 2012

Determine if an Entity is Eligible to Participate in a Relationship Type Using VB.NET in Microsoft Dynamics CRM 2011

This illustration shows how to programmatically determine if an entity is eligible to participate in a relationship typ  in Microsoft Dynamics CRM 2011 in code using VB.NET.  

There are three different SDK web service messages highlighted in this post.  They are:
  • GetValidManyToManyRequest: Get list of entities that can participate in many to many relationships
  • GetValidReferencedEntitiesRequest: Get list of entities that can particaipate in one to many relationships as the "many" entity
  • GetValidReferencingEntitiesRequest: Get list of entities that can particaipate in one to many relationships as the "one" entity

Ok, here is what the code looks like!
Here's the VB.NET Code:

Dim req As New GetValidManyToManyRequest()
Dim resp As GetValidManyToManyResponse = DirectCast(slos.Execute(req), GetValidManyToManyResponse)

'Get list of entities that can particaipate in one to many relationships as the "many" entity
Dim req2 As New GetValidReferencedEntitiesRequest()
Dim resp2 As GetValidReferencedEntitiesResponse = DirectCast(slos.Execute(req2), GetValidReferencedEntitiesResponse)

'Get list of entities that can particaipate in one to many relationships as the "one" entity
Dim req3 As New GetValidReferencingEntitiesRequest()
Dim resp3 As GetValidReferencingEntitiesResponse = DirectCast(slos.Execute(req3), GetValidReferencingEntitiesResponse)

'now you can get the entitie names this way for each response by examining the response.entitynames property



Thats all there is to it!

I hope this helps!

Wednesday, September 12, 2012

Dynamics Xrm Application Speed Builder Project Kicks Off!

I have just kicked off a project to build an application that will hopefully help immensely in the porting of standard database driven applications to Microsoft Dynamics CRM.

The vision is pretty simple:

  • Analyze the database schema (first db targets will be MySQL and MS Sql Server)
  • Allow user to decide what tables should be made into custom entities in CRM and create them
  • Analyze foreign keys between between tables in database that correspond to custom entities and build      appropriate relationships.
  • Allow user to determine on a per-table basis what fields should be added as custom attributes.
  • Allow user to determine which of those custom attributes should be placed on the application form.

The current team is (more to come in future most likely):

  • Jason Lattimer - Developer
  • Maarten Docter - Developer
  • Thomas Canaple - Developer
  • Myself - Coordinator /  Developer

There is a project live on CodePlex for you to follow if you would like at:
http://xrmspeedy.codeplex.com/

Just understand that there is no code released as of yet as the project still hasn't been coded.  :)

-

Tuesday, September 11, 2012

Powerful Multi-Threading to the CRM 2011 SOAP Endpoint

I have run into several situations where people want a very quick delete functionality or they have an application that needs to hit the webservice many times in very quick succession.  This usually means multi-threading your application and that can cause problems if you hit it too many times too quickly and you can get errors because the available ports get used up and are not recycled fast enough.  I have overcame this to some degree in .NET by using stacks and when an atomic operation fails it just get's put back on the stack for another thread to pick up and try again.

It seems that there is another way to crank up the horsepower and increase throughput by changing a couple registry settings.  One to increase the number of ports available and another to decrease the amount of time they take to recycle.

Check out more here:

http://community.dynamics.com/product/crm/crmtechnical/b/billoncrm/archive/2009/01/20/crm-webservice-error-58-only-one-usage-of-each-socket-address-40-protocol-47-network-address-47-port-41-is-normally-permitted.aspx