Is Sharepoint the NBT*?

*Next Big Thing

I was at Microsoft’s TechEd about a year or so ago in Barcelona. I loved it. Not TechEd, no, Barcelona. My family and I had lived in Barcelona from 2000-2002 and it was great to go back to my favorite places in the city (mostly restaurants and bars).

When I wasn’t drinking cava-based sangria or munching on pan am tomaquet, I was working a booth in TechEd or wandering the show floor. It struck me that a good 1/3 or so of the booths had something to do with Microsoft Sharepoint. Microsoft was touting its having sold $1B of the product in its first year and suggesting that Sharepoint is, essentially, their next “operating system.”

If your company is already using Sharepoint, you might consider it as simply a place to store shared files and a web interface for getting to them. A lot of companies use it in this matter. Sharepoint is more than that, however.

Here’s the Sharepoint recipe:

  1. Take a versioned file store
  2. Add a workflow engine
  3. Toss in some useful data types such as lists, forms, messages and calendaring
  4. Wrap the whole thing up with a managed .NET API
  5. Make it accessible via Web Services
  6. Bake and sell

The companies who just use it for file storage are only using the first ingredient. What’s intriguing is the nature of the applications facilitated by the other 4.

If you think about your typical web application, what does it consist of? Certainly, a bunch of files and forms (HTML or other). Then there’s program logic to glue these files together. Often, when implementing an e-commerce site, for example, the program logic implements specific work flows (adding items to a cart, checkout, payment, shipping). The program logic is implemented in PHP or Java or, perhaps, some .NET language. Finally, the web application might want to make services available to other applications. If so, SOAP-based web services are the norm. Oh, yes, there’s usually a database involved, too.

Sharepoint provides all of these services and makes them easily available via .NET and Visual Studio. Other MS technologies such as ADO and LinQ already facilitate the database aspect of web applications programming.

I believe that Sharepoint will be successful for corporate Intranet applications. I think that developers will take a year or two to figure how to best make use of it but then we’ll start seeing smart Sharepoint applications showing up in the enterprise.

I don’t know whether Sharepoint will be succesful in the public Internet. I don’t know that Sharepoint scales well enough to handle millions of users and I don’t know whether it can overcome the developer community’s reluctance to use Microsoft technology on the network edge where hackers can get to it.

I would love to see an open source alternative to Sharepoint, but I don’t know that it’s possible. The best people to do it would be the Mono folk at Novell. They’re not in the right group at Novell to do this, however.

It is much more likely that someone will try to wire together Java, Apache and some other glue to recreate something that vaguely resembles Sharepoint. It will get its 10% market share because there are always enough people out there loathe to use Microsoft technology. It is unlikely, however, that it will be as well integrated with Eclipse or other development environment as Sharepoint is with .NET and Visual Studio.