Friday, November 23, 2007

Visual Studio 2008 and .NET 3.5 Release

This week Microsoft released Visual Studio 2008 and .NET Framework 3.5.

Over the past month I've been running the Beta 2 in the Virtual PC Microsoft provided. This was an excellent way to evaluate the beta version since it isolated the code from my laptop - making it easy to remove now that I can upgrade to the RTM. I love this approach and hope to see more of it for CTP and Beta releases.

I remember upgrading from Visual Studio 2003 to Whidbey was a frustrating experience since there were a lot of incompatibilities due to the underlying changes in the .NET framework - particularly the change from the code-behind to the code-beside model. This time, the upgrade tool didn't seem to have too much to do. The code I was running in Beta 2 happily migrated to RTM without any problems, which was a nice little bonus. In fact I've always found the Visual Studio betas to be exceptional stable and this doesn't seem to have changed.

New Language Features

.NET Framework 3.5 introduces many new language features. These are powerful but sometimes a little hard to grasp. LINQ is probably the most significant change but it builds on existing .NET 2.0 functionality including Generics, as well as new language additions such as Lambda expressions and anonymous types.

Extension methods allow you to add static methods to add functionality to existing classes. This may be most useful when you need to add functionality to a library you can reference but not change (such as to someone else's code, or the .NET framework itself). Use with caution as extension methods are not a substitute for proper software architecture.

There are some nice new bits of syntactic sugar. One of these is Automatic Properties. Rather than creating member variables for parameters, I can now create parameters that look like this:

public String FirstName { get; set; }

public Int32 Age { get; set; }

Object and Collection initializers also make it easy to create and assign properties all on the same line.

Visual Studio 2008 and Training Kit

Visual Studio IDE itself doesn't seem to have changed too much. One nice new feature is the ability to target multiple version of the .NET framework within a solution. I used this to switch a couple of libraries in my custom framework to use framework 3.5 features (such as LINQ), while the rest of my class libraries stayed at 3.0.

Many of the changes in the studio target web development, which suits me fine. The split-pane window is a nice way of viewing the code and design views at the same time. CSS support is improved in the GUI by visually showcasing inheritance rules. The AJAX toolkit is included by default, as are WCF and Workflow templates (including SharePoint workflows, hooray!).

Testing is facilitated using Microsoft's MSTest framework which is now available with the Professional version (before it was only available with Team Studio). The online community is keener on MbUnit or Nunit but there's no harm in having a third option that's built-in.

There is a wonderful Visual Studio 2008 RTM Training Kit which provides tutorials and videos to help get users up to speed. From the kit's installed home page:

[The Training Kit] contains a full 5-days of technical content including 20hands-on labs, 28 presentations, and 20 scripted demos.   The technologies covered in the kit include:  LINQ, C# 3.0, VB 9, WCF, WF, WPF, Windows CardSpace, Silverlight, ASP.NET Ajax, .NET Compact Framework 3.5, VSTO 3.0, Visual Studio Team System, and Team Foundation Server.

Five full days of technical content? Better crack open that case of Jolt cola! The kit is publicly available at

"Paying Off Debt"

There is an interesting article on eWeek about Microsoft "paying off its debt". Soma Somasegar who is the corporate VP of the Microsoft Developer Division explains how he shut down all engineering on Visual Studio for four months and set everybody concentrating on removing as many bugs as possible.

Following this period, known as "MQ" or Milestone Quality, each feature team was limited to a certain number of outstanding bugs at one time. These actions, referred to as an "engineering investment", resulted in an increase in quality in the product. In fact the Visual Studio team won an internal engineering award from Bill Gates for this effort.

It's an interesting insight into Microsoft's development efforts. Presumably this work will also really pay off for future release of Visual Studio.

What's Next?

Speaking of which, now that the current version is RTM, it's time to look ahead again. Programmers are never satisfied! The Visual Studios "futures" roadmap is posted at

Rosario is the upcoming Team Edition version and will be next on the block.

As well, Microsoft will be providing a window into the .NET Framework source code within a few weeks. This will prove helpful in debugging, especially with lower-level coding. Scott Guthrie explains exactly how this will work. Currently this sort of framework-spelunking is usually done with Lutz Roeder's Reflector.

The Visual Studio 2008 website is located at

Sunday, November 18, 2007

SharePointPedia Is Live

The Microsoft SharePoint group has launched SharePointPedia, which is intended to be a community site for sharing knowledge around SharePoint. Although the name might imply a Wikipedia style wiki collaboration system, the site is really an easy way to link to, find, and rate articles that exist elsewhere on the net. As the site itself says:

SharePointPedia is not a wiki. It’s a “pedia” in the sense of being a compendium of useful content, but rather than being limited by just wiki functionality, it leverages the much broader set of capabilities in SharePoint. SharePointPedia is also about community, where you can find and connect with others, who have similar interests as you or who have recommended content relevant to you.

It is easy to submit new content and there are a variety of folksonomy tags such as "Collaboration", "Personalization", "Web Publishing" to tag against the article submission.

The value of the site will largely depend on the community submissions but since there is so much content out there it may prove to be a useful launching pad. Right now everyone spends a great deal of time tracking all over the net trying to research particular SharePoint issues and hopefully this compendium will help streamline that.

You log in using your Windows Live ID and get ratings based on your contributions. The 'pedia is built using MOSS 2007 (of course!) and is located at

Monday, November 12, 2007

SharePoint Migration With MetaLogix

I recently had the chance to evaluate a number of SharePoint content and site migration tools. Past migrations I've done have been performed using the out-of-the-box content migration using the Pre-Upgrade scan, but I have an upcoming requirement to leave the existing SharePoint Portal Server 2003 site and content in place and migrate it slowly to the new MOSS 2007 server over time.

This required an evaluation of third-party site migration tools. One of the ones I looked at was the MetaLogix SharePoint Site Migration Manager. The evaluation license allows you to migrate 50% of the content for a few days, which is enough to run the software through its paces.

The Migration tool installs on a client desktop and this GUI handles 95% of the migration tasks. However if you want the migration process to do things like map the user accounts you'll also need to install a special service on the target server.

I liked MetaLogix Migration Manager's intuitive interface. After the installation it was easy for me to add a reference to both the test SPS 2003 portal and the test MOSS 2007 portal. This is done by typing in the URL and either using the default portal access account or manually specifying it.

The interface has three major views:

  1. The default "Explorer" view, which is a complete site hierarchy view of the sites you have added;
  2. "Browser" view, which renders whatever site node you have selected in the explorer view. It's a great way to quickly view the content of a site or list; and
  3. "Item" view, which shows you the content of lists and libraries.

Migrating content or sites between portals was as easy as right-clicking the source node, clicking "Copy", and right-clicking on the target site and clicking "Paste". A dialog box shows the progress and the result appears in the Log window at the bottom of the screen, which you can always refer to. There is verbose logging in a text file.

Paste Shared Documents List

Other nice features:

  • Batch mode, so that all actions can be scripted to run at scheduled times. The batch file is in XML format so it can be programmed and is human-readable.
  • Delta migration: You can choose to only migrate the changesets instead of all the content each time.
  • List copy: You can choose to append and concatenate multiple libraries or lists together which helps merge them in the new portal.
  • You can migrate versioning and security permissions
  • Replace Within Field: This is a quick string search that allows you to replace text in content you've migrated, such as URLs. In the future I'm told this will be an automatic step in the migration.
  • Mapping to site templates. You can explicitly map SharePoint 2003 site templates to the new MOSS templates (it will attempt to map them automatically by default). I noticed the mapping options seemed to include the Fantastic 40 site templates which was a nice touch.

The only issue I found with the product occurred when I tried to migrate the content on an SPS 2003 Area over to MOSS 2007. It brought all the content, web parts, lists, and libraries over with the exception of the Area Detail and Browse Area By web parts. However as those two web parts relate to the old SharePoint 2003 Area concept which no longer applies, I'm not too fussed. The MetaLogix staff were keen to help me investigate this, if I had been willing.

During the course of the trial I spoke to Julien Sellgren and Rasool Rayani at MetaLogix. They were helpful and responsive to my questions, giving me a walkthrough via a webcast and extending the evaluation period while I was testing area migration. Rasool also explained to me that they are releasing feature packs and updates on a 6-week basis so the product is evolving quickly.

You can learn more about MetaLogix and download the evaluation version at their website.

Wednesday, November 07, 2007

Microsoft Announces Search Server Express

Today Microsoft announced that it will be releasing a free search tool for enterprises based on SharePoint and SQL Server. Search Server Express for organizations can be installed on a standalone server and leverages Microsoft's SharePoint search engine.

The engine looks just like WSS and SharePoint Search. The administration console has many of the same options as the current MOSS Shared Service Provider search settings. These include content sources, best bets, and scopes. Alerts and RSS feeds are available on the results.

Some of the neat aspects of the new solution:

  • It supports the OpenSearch standard. This will help integrate Microsoft's search crawl and integrate with a wide variety of applications from other vendors.
  • Federated Security: Authentication against content sources can be done via NTLM, Basic authentication, Forms Based Authentication, Kerberos, and "cookies". Access control lists are applied to the indexes and security trimming is provided on queries.
  • Continuous Propagation Indexing: No need to wait for the whole corpus to be crawled before searching can be performed; the index will now be incrementally updated and searches can be performed on that increment immediately.

The express version can only be installed on one server. Naturally there is an upgrade path to more expensive solutions for those organizations that require scalability.

In 2008 Microsoft will also release some free connectors for Documentum and FileNet.

Microsoft has adopted a similar approach in the past with the releases of Visual Studio 2005 Express and SQL Server Express. In this case Search Server Express will provide a useful, free solution to give customers a taste of some core platform functionality and get developers using it.

The Enterprise Search website is located at You can download the release candidate here.