Information, Except about SharePoint 2010, Wants to Be Free

Sorry for this grumpy rant, but I just had to get this off my chest somewhere…

So, I have once again been on the receiving end of some SharePoint MVP rage, all over the recently published SharePoint 2010 Secrets issue series of USP Journal.

Seems that every time I mention SharePoint 2010, some SharePoint MVPs see red and go out of their way to slander whatever I say.

This time, the MVPs in question aren’t content with slinging mud themselves, but have elicited support from Microsoft and Microsoft went public saying that you shouldn’t get any information from me, but wait until the SharePoint Conference. In October. You’ll get everything there for the small attendance fee of about $1,200.

Apparently, Microsoft made a slight error in their Office 2010 Technical Preview pages. It reads:

Figure1

(click for larger version)

It was supposed to read:

Figure2

(click for larger version)

You see, despite what some people on Twitter and elsewhere claim, I am not disclosing any confidential material here. Look, here’s the download link for the SharePoint 2010 SDK Beta. It’s public. Go get it.

Next, read through all that documentation, compare it to the documentation from the current SharePoint SDK and walk through every property and method. Compare that to all the other public information about SharePoint 2010. Which, of course, you have gathered and read, prior to this.

Go ahead, I’ll wait here, it will probably take you about the same time it took me, which was about 48 hours straight.

Or, you could pay someone else to do that for you and give you a digest of all that information.

What Happened?

So, how did this all go down? Here’s a brief overview of what has been going on for the last week or so.

Early last week, I was invited by Microsoft to the Office 2010 Technical Preview program. That’s like asking kids if they want gifts for their birthdays. At almost the same time, the SharePoint 2010 sneak peek videos were released. Needless to say, I didn’t get much sleep.

On Monday and Tuesday I worked for about 20 hours, walking through the information gathered from the SharePoint Designer 2010 Technical Preview and correlating that to what I had learned from the three sneak peek videos. From that, I deduced a set of workflow features that will be part of the SharePoint 2010 Designer release.

Did I mention I have a full-time day job these days in addition? I’ve spent the last year working as an author, and I am currently pouring everything I have into making this journal work. Very few gets rich, or even makes a living, writing books, and I certainly don’t. When someone broke into my car a couple of months ago, I had $100 to fix the broken window, and that was my whole fortune at the time. When bills need to be paid, I need to work a regular job to try to make ends meet.

For the next couple of days, I worked on issue 6 of USP Journal, usually until 2 am in the morning, before going to work the next morning. I thought I had my head above water on Thursday around midnight, so I went to bed, only to be woken by an email telling me that the beta SDK was released. That was just around 3 am on Friday morning.

I immediately got up and started reading, realizing that some of the new features would be great news for the readers of USP Journal. I began writing on the SharePoint 2010 Secrets issue at around 4 am. At 9 am, I asked the USPJ mailing list if this was interesting material and if they would pay for it, knowing that it would still be a compilation and digest of public knowledge.

Within 1 hour, about 10% of the list had voted yes, so I decided to create a subscription series to keep people updated as the public beta approaches. After 24 hours, almost 50% of the readers had voted yes.

After a record-breaking copy editing and layout process, the issue was completed on Saturday, about 36 hours after the information went public, and the issue was released on the website http://www.sharepoint2010beta.com/.

That’s basically the process behind the writing of the first issue.

On Monday morning, however, I woke up to a TweetDeck filled with messages from Microsoft and MVPs, advising people not to spend $14.95 on the issue, since it would all be available in October anyway. During the day, 14 retweets, covering close to 30,000 Twitter followers, had read Microsoft recommending people to stay away from my issue.

Apparently, Microsoft wants you to have the information, but they don’t want you to tell anyone that you know anything.

Also during the day, I learned from several people all around the world, that there had been a secret campaign by the SharePoint MVPs to get Microsoft to publicly denounce the issue, telling Microsoft there was confidential information there. In addition, several MVPs had ran another campaign, encouraging the other MVPs to retweet the message from Microsoft.

Here are my main questions:

  • I can understand Microsoft if the claims were true, but why didn’t they bother checking the facts before slandering me?
  • Why is Microsoft releasing public SDKs in July if they want people not to read it until October?
  • Is Microsoft seriously expecting everyone to keep silent about what will effectively be their livelihood for the next few years?

Now, I tried getting in touch with Microsoft to get this sorted out, and I sent them a copy of the issue so they could verify the sources and that there was no confidential information there at all. However, the damage was already done, and now I’m left with a ruined reputation, a failed launch, and a public campaign to taint my name forever.

I could publish the offer they made to ‘make this go away’, but I consider email to be confidential.

Well, now you know why I’ll never be an MVP. And you know the story of how Microsoft tried to silence the USP Journal…

.b

Found this article valuable? Want to show your appreciation? Here are some options:

a) Click on the banners anywhere on the site to visit my blog's sponsors. They are all hand-picked and are selected based on providing great products and services to the SharePoint community.

b) Donate Bitcoins! I love Bitcoins, and you can donate if you'd like by clicking the button below.

c) Spread the word! Below, you should find links to sharing this article on your favorite social media sites. I'm an attention junkie, so sharing is caring in my book!

Pin It

SPList.RootFolder causes Dispose Problem

I recently wrote an extension method to several built-in SharePoint objects to allow easier setting and getting of custom properties. You may or may not know that SPList objects do not contain a property bag, so you need to store custom properties in the SPList.RootFolder property.

Here’s what I did to the SPList extension method to get a custom property:

public static string GetCustomProperty(this SPList list, string key)
{
    SPFolder rootFolder = list.RootFolder;
    if (rootFolder.Properties[key] != null)
    {
        string s = rootFolder.Properties[key].ToString();
        return s;
    }
    else
    {
        return string.Empty;
    }
}

Seems simple enough, look for the given key in the RootFolder propertybag, and return empty if not found.

Turns out, this causes a Dispose failure, and you’re left with a memory leak. Can you spot the error?

Neither could I at first, nor could SPDisposeCheck. However, every hit to any page containing this code cause 400Kb of “Potentially excessive number of SPRequest objects currently unreleased on thread” messages.

Of course, the trusted .NET Reflector comes to the rescue, and after wandering through almost one property, I found the error in the getter for the SPList.RootFolder property:

public SPFolder RootFolder
{
    get
    {
        if (this.m_rootFolder == null)
        {
            this.m_rootFolder = this.ParentWeb.GetFolder(this.RootFolderUrl);
        }
        return this.m_rootFolder;
    }
}

In short, the access to this.ParentWeb.GetFolder causes an undisposed SPWeb object to remain in memory.

Updating the code as such caused any potentially excessive numbers of SPRequest objects to disappear:

public static string GetCustomProperty(this SPList list, string key)
{
    SPFolder rootFolder = list.RootFolder;
    if (rootFolder.Properties[key] != null)
    {
        string s = rootFolder.Properties[key].ToString();
        list.ParentWeb.Dispose(); //Dispose orphan SPWeb
        return s;
    }
    else
    {
        return string.Empty;
    }
}

.b

Pin It

SharePoint 2010 Feature Versions and Upgrade Support

SharePoint Solutions get an overhaul. Major overhaul.

The cat is out of the bag, and the first details about SharePoint 2010 has begun emerging. As I expect a lot of die-hard developers are, I have been reading the newly released beta version of the SharePoint 2010 SDK like a mad-man.

There is so much new cool stuff here, like the improvements to lists and the query throttling, the new SharePoint 2010 workflow features, the Microsoft.SharePoint.Client namespace, etc.

However, what surprised me the most is the new solution framework. If you have been developing SharePoint features you may have noticed that you have a Version attribute on a lot of CAML objects. However, the Version attribute hasn’t served any purpose up to and including SharePoint 2007 (MOSS 2007 and WSS3).

That’s about to change, however, as the feature framework will now support versioning of features. That means you can have multiple version of the same feature installed, and selectively upgrade only the features you want. Multiple versions can live side-by-side.

The SPFeature object gets an .Upgrade method, and many of the objects supporting feature containers, such as SPSite and SPWebApplication, gets a QueryFeatures method that you can use to find features that either require upgrade or that has a specific version number.

Oh, and upgradeable features is just a small part of the solution overhaul. I have gathered more information about this in the new SharePoint 2010 Secrets issue of USP Journal. That issue is, in fact, a subscription to a monthly update issue on new information about the SharePoint 2010 next version, up until the release of the public beta.

You can get that subscription for a one-time cost of $14.95, at http://www.sharepoint2010beta.com/.

.b

Pin It