Wednesday, July 27, 2011

Metalogix Times Square Contest for SharePoint Saturday NY

If you’re going to SharePoint Saturday New York this weekend, you’re probably planning to go to Times Square anyway, so why not take a picture that could win you a Flip video camera?

All you have to do is take a picture of yourself in front of the Metalogix loves Microsoft SharePoint billboard, follow the @metalogix account and then tweet the photo with @metalogix and #SPSNY in the message and you’re entered to win a Flip video camera. (Winners will be notified by Twitter DM, so don’t forget to follow @metalogix.) The Metalogix banner will appear every hour 7am to 1am on Friday and 7am to 3pm on Saturday—the exact time is random. To get an idea of what it will look like, see the image below.

You can read about the contest on the Metalogix blog.


Metalogix is the official Office 365 sponsor for the event. I’ll be there to present a session about migrating file shares, ECM systems, Exchange public folders and other SharePoint systems to Office 365.

Tuesday, July 26, 2011

Speaking at SharePoint Saturday New York 2011

For the third year in a row, I’ll enjoy the privilege of being at the SharePoint Saturday New York (#spsnyc) community conference.

Metalogix is the Office 365 sponsor and I’ll be speaking about SharePoint upgrade and migration.


Tuesday, July 12, 2011 Case Study with Metalogix

This week, Microsoft published a four-page case study about Metalogix Software. I’m the Director of Product Marketing (and Chief SharePoint Evangelist) for Metalogix, so I’m really happy to see this pat on the back from our most important partner. There are some quotes in there from me as well, so that’s another good reason for me to like it.

Metalogix helps organizations benefit from the collaboration and content management features of Microsoft SharePoint Server 2010. The company developed a portfolio of tools that customers use to manage and migrate from previous versions of SharePoint Server and third-party systems to SharePoint Server 2010. Metalogix also supports cloud migrations, helping customers flexibly adopt fully hosted and hybrid scenarios. Metalogix customers experience fast, easy, and cost-efficient migrations and on average, they report a lower total cost of ownership with SharePoint Server 2010 than competing solutions, experience cost savings from SharePoint Online, and achieve these gains faster by using Metalogix.


Since 2001, Metalogix has helped companies plan for and complete their transitions to Microsoft content management systems as quickly and cost-efficiently as possible. After acquiring two leading solution providers, Metalogix has expanded its product line to include binary large object (BLOB) storage/externalization, management, and archiving and technologies, and it has served more than 5,000 customers across the United States, Canada, Europe, and the Middle East. Metalogix is a member of the Microsoft Partner Network with a Gold Independent Software Vendor/Software competency.
With the release of Microsoft SharePoint Server 2010, Metalogix sees a significant number of organizations that want to take advantage of a unified environment for collaboration and content management. Metalogix customers are eager to embrace advancements to workflow, business intelligence, and content editing with the familiar Ribbon feature, part of the Microsoft Office Fluent user interface. “Customers are also attracted to the capabilities in SharePoint Server 2010 for connecting to external data,” says Stephen Cawood, Director of Product Marketing at Metalogix. Microsoft Business Connectivity Services in SharePoint Server 2010 enables organizations to easily connect their SharePoint Server 2010 intranets, extranets, and websites to line-of-business systems, databases, and other external systems. “The overarching theme of SharePoint Server 2010 for all customers is flexibility,” says Cawood.

Read the full Metalogix Case Study and download the Microsoft Word version.

Monday, July 11, 2011

Canadian Microsoft Azure ISV Twitter Account and Blog

Microsoft canadian ISV blog

“I See Value,” the Canadian Microsoft Azure ISV blog, now has a Twitter account @ISeeValue.

On the Canadian Microsoft Azure ISV blog, read about Connect2Fans, a BizSpark Startup that has developed a solution to help artists, writers and other people in the arts and entertainment industry who find it difficult to connect directly with their fans.

Sunday, July 10, 2011

Windows Azure Table has Phantom Columns

While working on my Windows Azure application this weekend, I ran into an issue that had me stumped for a few minutes until Neudesic’s Azure Storage Explorer helped me attain the moment of clarity that brought the resolution to me.

The issue I was running into was that one of my Azure tables was showing a number of columns that I wasn’t using. The answer was quite simple—I WAS using them in the past. Therefore, even if I deleted all the rows in the table, I wasn’t removing those old columns and they were showing null data.


- You can download Neudesic’s Azure Storage Explorer from

In this case, it didn’t show my anything other than my Azure table had empty columns that I didn’t think I was adding, but that was enough for me to ‘see’ the issue.

Friday, July 08, 2011

Error Deserializing XML: There is an error in XML document (2, 2)

While working with some XML documents, I ran into this cryptic error: “There is an error in XML document (2, 2).” The problem turned out to be a surprising case sensitivity in the C# code. When I was trying to deserialize from XML to an object, the XML elements didn’t match the case of the class properties.

Here is my original XML file:

<?xml version="1.0" encoding="utf-8" ?>

Test class:

public class Test
  public string Name { get; set; }

And the code that I was using to deserialize the XML into the Test class object.

string xmlFile = String.Concat(HttpContext.Current.Request.PhysicalApplicationPath, "test.xml"); System.IO.StreamReader reader = System.IO.File.OpenText(xmlFile);
XmlSerializer xs = new XmlSerializer(typeof(ReportTemplate));
Test testData = (ReportTemplate)xs.Deserialize(reader);

The solution was quite simple. The case of the XML tags did not match the case of the class properties. By changing them to match, I resolved the error. Here is the working XML:

<?xml version="1.0" encoding="utf-8" ?>

BTW – If the root element case matches, but one of the sub-elements does not, you will see the beloved error “Object reference not set to an instance of an object.