Upcoming new features for WPF 4

Scott Gu has released new feature for WPF in the upcoming VS 2010 and .NET 4 framework.

Read about it here. I must say I’m looking forward to playing with it, very impressive.

Posted in WPF. Tags: . Leave a Comment »

NDepend: A product you can depend on.

It’s been more than a month now since I’ve posted. I’ve been really busy with project work, and moving to my new home. :) So let’s start off with a bang….

In almost every developer’s life, our effectiveness and productivity are greatly affected by the tools we use. I’m sure everyone has a list of developer tools that they love. I’m no exception to that, and I’ve recently added NDepend (which is a static analyzer that simplifies managing complex .NET code base) to my list of GREAT tools. Patrick Smacchia was kind enough to give me a professional copy of NDepend and I decided to use it with a sample project I’ve been working on slowly and painfully over the last month. I took the sample WPF application (using Prism v2) I posted some time back, and decided to convert it into a Multi-Target project with Silverlight using Project Linker (will blog about this later). I thought it would be a good idea to see how decoupled my solution would be using Prism and Multi-Targeting.

Read the rest of this entry »

Posted in Tools. Tags: . Leave a Comment »

Article: Great F# Overview

My colleague sent me a link to a great F# overview from Chris Smith, who presented at DevLink and is a member on the F# team at Microsoft. Everything you want to know about F# on a high level is covered in his post, in a very objective approach.

Check it out here.

Posted in F#. Tags: . Leave a Comment »

MSCRM AsyncService timeout during Import Customizations

I was performing a CRM deployment to a TEST environment today, and we use the CRM SDK to do that. You use the ImportCompressedAllXmlRequest which takes in a compressed XML Customization file (if you have a .xml file, you can use code to compress it), and uploads it to the CRM Server.

However I was getting Timeout Error from the MSCRMAsyncService. Quite peculiar, and from looking at the Trace logs, it was timing out of a update statement to the AsyncOperationBase table. I quickly did a query, and found more than a million rows in there. AAahhhh….that explains why.

Apparently it’s not uncommon for this table to grow to a humongous state, and it’s not optimal. There’s lot of unnecessary data in there, and causing problems for my deployment. Turns out you need to clean that table up using some SQL scripts, and after that regularly maintain it using batch jobs. Here’s the SOLUTION. By the way, the delete script takes hours to execute, so leave it running overnight!

Here’s a more detailed article explain why this happened in the first place. Hope it helps.

Share this post:

Developers that care matters

In my first job and project, I was fortunate enough to learn from some of the best. We tried to adhere to most of the best software development practices, like unit testing, daily builds, automated deployment to multiple environments, code reviews, test coverage, source control for code and database, refactoring and countless application design sessions. It was a very fun time in my career…..good times.

Read the rest of this entry »

How to implement Convert Lead feature in CRM 4.0

I’ve been dwelling in the world of MS CRM 4.0 for more than a month now, it’s a pretty decent product. In terms of development on CRM, it’s not exactly a pleasant experience. Because it’s such a closed and inflexible ecosystem, there’s only ever 1-2 ways to do something. After doing stuff for a while, it gets pretty repetitive and monotonous. However there was one piece of work that I had to complete which proved to be a little tricky, and I’m going to share with you in this post.

Essentially, I had to implement a behavior that is close to the “Convert Lead” feature in CRM. It was not as straightforward as I though it would be, and here’s the breakdown of things you need to do in order to implement the entire feature.

  1. Create a custom aspx / html page (ideally done entirely using JScript, because any postback on the dialog web page causes issues)
  2. Write JScripts on custom page to convert, deactivate the current record and validation.
  3. Modify ISV Config file to add a button into the toolbar.
  4. Add an Onload JScript to hide the button when entity is inactive. (there’s not in-built way in the ISV Config to do this, which really sucks)

Let’s use a fictitious entity for this example, called new_entity. So here goes.

Read the rest of this entry »

Article: Great jQuery tutorials

Some of the best JQuery tutorials I’ve seen so far. Enuff said.

Read about Best jQuery Tutorials for June 2009. Enjoy.

Posted in JQuery. Tags: . Leave a Comment »

Article: Kerberos explained

If you develop on the Microsoft Platform, no doubt you would have encountered challenges with authentication using Kerberos. Colleague of mine recommended a great article of how Kerberos authentication works step by step, with scenarios of delegation from multiple servers. Also explains how to configure Kerberos for Sharepoint.

Read article here.

Seth Godin’s awesome presentation on software and marketing

Few days agoo, I watched Seth Godin’s talk at the Business of Software conference and he’s truly a thought-leader in our field, and a very entertaining and inspiring speaker. It’s about an hour and I promise you that you will be totally drawn and captivated by this.

In this conference, he talks about “Why marketing is too important to be left to the marketing department“. Enjoy.

Uninstall Hell

In the past 2 weeks, I’ve had to install quite a number of software tools and products ( namely MS CRM 4.0, TFS 2008, VS 2008 ) on servers and workstations for my project. On 2 ocassions due to minor glitches I had to uninstall a CRM tool (via an MSI File) as well as VS 2008 due to something weird happening with Team Explorer and VS 2008 SP1. I encountered the most annoying “Cannot uninstall application due to some error, setup will now end” type of errors. A possible cause may be some screw-up in the registry and the uninstaller is unable to proceed….so what do you do now??? Here are some tips.

Read the rest of this entry »