Microsoft License

My customer provides our team with laptops configured with a bunch of expensive software. They negotiate with vendors to get software site licenses for their employees and contractors. This works out good for me. I get to use licensed expensive software. And my own company does not have to foot the bill for such software.

I just got a message that our customer is renegotiating their licenses with Microsoft. They fully intended to go forward to upgrade to Office 2007, Windows 7, and Exchange 2010. However the current agreement with Microsoft is ending.

One downside to the end of the agreement is that the Microsoft Home Use Program is ending. That means that low or no cost Microsoft software that employees have for home use is no longer valid. They must uninstall the Microsoft products they have at home.

I get the feeling that the customer is no longer going to have such software for employees to use at home. The customer recommended their employees try some free alternatives such as Open Office or Google Docs. This looks like a fail for Microsoft.

What is Microsoft doing? Are they gouging our customer on the Home Use Program? This only looks bad to the many employees who work for my customer. It looks bad to me as well.

The Ultimate Offer

Microsoft is pitching something it calls The Ultimate Offer. It is a renaming of the Visual Studio product levels. Here is a map between the current and future names of Visual Studio.

Visual Studio Team System is becoming Visual Studio 2010 Ultimate. Visual Studio Professional with MSDN Premium is becoming Visual Studio 2010 Premium. And Visual Studio Profession with MSDN Professional is becoming Visual Studio 2010 Professional.

All of these editions come with Team Foundation Server (TFS) included. Note that the low end of TFS is being marketed as a replacement for Visual Sourcesafe. Microsoft promises that each of these offerings will give the buyer more than the comparable products from Visual Studio 2008.

At work we got Visual Studio 2005. I have used Visual Studio 2008 at home. Now it is time to get my Visual Studio 2010 plans made.

SharePoint Server 2010

Developers are getting pumped about the upcoming release of SharePoint Server 2010. Evidence of this was found at the Microsoft SharePoint Conference 2009. The categories addressed in the new release are user interface and integration.

SharePoint Designer is getting an overhaul. The new version will contain support for the Microsoft Office Ribbon user interface. SharePoint is also going to be supported better in Visual Studio.

You will not be able to have SharePoint for cloud computing. You do not, however, need a server to run the new SharePoint. It will work on Windows Vista as well as Windows 7.

SharePoint Developer Dashboard is a new tool that logs SharePoint activity. It also logs calls made to SQL Server. All of this data is tagged with the time so you can check your performance.

It seems as though Microsoft is getting very serious about SharePoint development. I might have to schedule a visit to next year’s Microsoft SharePoint Conference.


PLINQ is a part of the .NET Framework. It stands for Parallel LINQ. This is a type of LINQ to Objects that executes in multiple threads to perform queries. A query is broken up by PLINQ, executed independently in parallel, with the results being merged together at the end. The act of dividing the query into parallel parts is called Partitioning in PLINQ.

The PLINQ implementation support different types of aggregation such as sum or average. It can also perform sorting in parallel. Anything available in LINQ to Objects is supported in PLINQ. However that does not mean all operators gain performance due to the parallelization.

Visual Studio Extension

We generate a lot of documentation here on my project. This includes a lot of screen shots. Previously it was a painful process to generate a screen shot in the format required by our customer. So some developers implemented a plug in for Visual C++ 6.0 to help with the chore. Those were some good times. You can do the same thing with the latest Visual Studio Team Explorer. Today I will discuss some facets of such an exercise.

The user interface you may want to customize is the Team Explorer Client. Now to actually implement a plug in (AKA extension) to this tool you need Visual Studio Standard Edition and the SDK. In other words, you cannot do such fun things with just the Express Edition.

Start by creating a new project with Visual Studio. Choose Extensibility and make sure Visual Studio Integration Package is selected as the template. Next you must manually remove references to version 9.0.0 of TeamFoundation. Replace it with version 2.0. You also should make the base class of your package PluginHostPackage. I don’t know why Microsoft did not make the Wizard automatically do these things for you.

Then you just need to provide a new implementation for the OnCreateService method. In there you make code changes to implement the plug in behavior you desire. Note that there may be some issues when you try to roll out the changes. Part of this depends on whether the SDK has been deployed on the target platform. Use another tool called Package Load Analyzer (which comes with the SDK) to debug issues. Maybe I will cover that tool in a future blog post. Enjoy.

PEX Tool

PEX is a Microsoft tool that analyzes source code to help develop a minimal set of test cases which will cover all required scenarios. It makes use of Parametrized Unit Testing. This method calls the code with parameters, then verifies the output based on an expected output. The PEX tool can generate output unit test data for tools such as NUnit. PEX contains a framework called Stubs that creates stubs for .NET as C# source code.

The PEX tool is useful for general testing. However it is especially useful for testing refactored source code. So you can take your legacy code and refactor it. PEX can generate unit tests to ensure that the refactored code behaves the same as the legacy version of the code. This addresses one of the chief concerns about refactoring. If you have a tool which ensures that refactoring does not break existing functionality, it might be easier to justify refactoring efforts.


The modern way to bind web user interface controls to data is to use Asynchronous JavaScript and XML (AJAX). Microsoft is supporting this standard with their ASP.NET AJAX version 4. This is an advance over the previous HTML only methods to use proprietary attributes to identify the data source. That method was specific to the browser that was viewing the web page.

Now developers use the Microsoft AJAX JavaScript Library. The solution works on every modern browser. You specify the data source using XHTML (the newer version of XML). The web page only needs to use JavaScript.

I personally have an interest in learning web development. AJAX is one of the technologies I plan to learn. Since I have a Microsoft background, I figure I will be using ASP.NET AJAX to get the data binding job done.