Wednesday, May 11, 2011

MS Platform Ready: Testing of a CRM 2011 Online Solution

The Microsoft Platform Ready (MPR) is designed to help us to take our solutions to the market faster. As a Microsoft Partner, we get access to tons of resources related from solution development, testing to marketing via MPR.  In fact, in most cases, MPR compatibility is a requirement to make available our applications via various Microsoft Marketplaces (Windows Marketplace, Dynamics Marketplace, etc.…).   In this post we will see how to perform the MPR compatibility testing of a custom developed CRM 2011 solution.

Register the Application

First, we have to register the application on the MPR portal. We may login to the MPR site by using our Microsoft Partner account (typically your Live ID) and click + Add an app link. This will present a form to include our application details. Here we can enter things like the technologies used (using) and target compatibility date in addition to general application details.


Figure 1: Registering the Application at MPR portal

Monday, May 2, 2011

CRM 2011 – Implementing Dependent Lookups

In one of my previous posts, I have shown how we can implement dependent lookups in CRM 4. Fortunately, CRM 2011 has improved in this area and now we can implement this functionality with minimum effort. For the demo purpose I will use the same scenario which I used for CRM 4. If you have not read my earlier post, I suggest to go and read it so that you are aware of the scenario. In fact, you want be able to understand this post as I am basing this post on that.

As usual, lets consider the two lookup fields, Expense Category and Expense Type where expense type is depending on expense category.

exCats   exTypes

Figure 1: Expense categories & types

As usual, we will add these two as lookup fields on another entity (e.g. Expense Claim).

Tuesday, April 5, 2011

CRM 4 – Implementing Dependent Lookups using JScript

Often times you want to restrict the values of a given list based on some selected value of another list. For instance, consider the two lists, Countries and States, where based on the Country selected you only want to show the States of that particular country. There is a nice sample (dependentpicklist) in the CRM 4 SDK demonstrating how you can implement such picklists. In fact, by using the CRM Demonstration Tools you can easily define the dependencies and generate the required Jscript code. However, if we are dealing with Lookup fields instead of Picklists, then having a similar functionality is not that straightforward.

Although CRM 4 doesn’t have out of the box capability to define such lookup fields, there are number of ways you can achieve this including 3rd party CRM modifications such as Stunnware Filtered Lookup. How ever in this post we will see a really simple way to achieve this by using only JScript and the built-in search feature of the lookup view.

VS 2010 Code Analysis – Code Metrics

One of the most important aspects of software is it’s quality. In fact, improving the quality is an integral part of any process improvement initiative. However, as with many other things, quality is better understood and effective if we can express that in terms of quantitative metrics as appose to qualitative measures. If you have followed even a basic computer science program, you may have learnt an array of such metrics. How ever, accurately calculating these metrics was not possible without using specially designed tools. Fortunately, Visual Studio had this capability for some time, but with Visual Studio 2010, the metrics calculation has greatly improved. For instance, the VS2010 even consider complex code blocks such as try..catch and switch when calculating the code metrics.

Calculating Code Metrics

Calculating code metrics in VS2010 is pretty straightforward. If you want to calculate code metrics for the entire solution, you may right-click the solution and select “Calculate Code Metrics” from the context menu. If you just need to calculate metrics for a given project, just right-click that project and select Calculate Code Metrics.

Figure: Solution Context Menu

Tuesday, March 29, 2011

Connecting to CRM 2011 using connectionStrings

One of the nice features we have in the Advanced Developer Extensions for CRM4 (since sdk v4.0.12) was the ability to define the connection details inside the connectionStrings section in the web.config file. However, this facility was missing in the early versions of the CRM2011 SDK. However, the latest update of the CRM SDK (March) has finally included this feature.  In fact, this is one of many extended set of features known as Developer Extensions (note the missing "Advanced" word from CRM4).

For instance, suppose you need to connect to a CRM 2011 server using Integrated security from a custom web project. First you have to define the CRM connection details inside the web.config (or app.config for other project types) as follows;

Saturday, March 26, 2011

FastClaim now available on WP7 marketplace!

After a tense development phase and even more aggressive internal QA phase last week we submitted the mobile client of our FastClaim solution to the marketplace.  Yesterday it's status was showing as "Ready for Signing" on the AppHub portal and much to our delight today it is available on marketplace!

FastClaim is a solution to make the expense claim process faster and hassle free for the end users. We are going to take care of your organization's expense claim processing by integrating our FastClaim service with your organizations existing IT infrastructure which might be based on  Dynamics CRM, SharePoint or any other custom solution. If you like to see a small demo of the app, please check the video bellow.

If you already own a WP7 device and would like to try it out, you may download it by using Zune.

If you have any comments or suggestions please drop me a message or contact us using FastClaim Web site.

Wednesday, March 23, 2011

CRM 2011 - Populating a required Guid field using JScript

The Problem
Recently I had to use a Guid as a required field of a custom entity (it’s a tracking id). Initially the records were created using an external web service, so I had no issues on populating this field. i.e. when creating a new record, I simply use Guid.NewGuid() C# method to generate a new Guid. However, later there was a new requirement that the users should be able to create new records using the CRM web interface. At that time we had a small issue as the users had to enter a Guid in order to successfully create a record on CRM.

Well there are few tools out there to generate Guids, but for regular users it's not going to be the happiest thing in the world to generate a Guid and enter that on the CRM web form!

Wednesday, March 9, 2011

ASP.Net Dynamic Data: Implementing Data-driven websites made easy…

ASP.Net Dynamic Data is a great technology which was introduced in the first service pack (SP1) of the Dot.Net 3.5 Framework. In a nut shell, it is a collection of user controls and templates for quickly implementing a web site to interact with a data source. You may implement full CRUD (Create, Read, Update & Delete) functionality with just couple of lines.

Visual Studio 2010 comes with two flavors of templates to create Dynamic Data based web sites or web applications; Entity Model based or a Linq to SQL mapping based. However, ASP .Net Dynamic Data has far more applications than those. Instead of implanting a fully-fledged Dynamic Data web site, you may easily introduce Dynamic Data features to any other website.

image                        image

Visual Studio 2010 Dynamic Data Project Templates                       Data Field Project Item