[Blog Map] This blog is inactive. New blog: EricWhite.com/blog
In the next series of blog posts, I’ll be exploring some interesting aspects of SharePoint development. In particular, I’ll be examining how to leverage the combination of Open XML, LINQ to XML, and SharePoint. The Open XML document formats enable new possibilities within SharePoint, and LINQ to XML brings the power, robustness, and succinctness of the functional approach to SharePoint development.
Each of these technologies (LINQ to XML, Open XML, and SharePoint) are important in their own right; when used in concert, the resulting power in the platform is greater than the sum of the parts.
What is SharePoint?
I realize that while many who read my blog will be aware of SharePoint, not all will, so a quick intro to SharePoint is in order.
SharePoint is a server product sold by Microsoft that allows you to create internet and intranet web sites. It is built on ASP.NET, and Microsoft SQL Server. There are six primary capabilities that SharePoint brings:
When someone asks me informally what SharePoint is about, I say it is about people working together.
It was only a few years ago when working with other people meant emailing documents around, and only a few years before that when it meant putting printed paper memos in physical mailboxes. I think that we have barely scratched the surface of what it means to work together.
Open XML and SharePoint
Much of the information in SharePoint is stored in documents, and until Open XML, those documents were binary office files. And this makes it harder to get at the information in those documents. You could find a library to work with those binary documents, but do you really want code like this running on your SharePoint server? What if you have gradual performance degradation? On a server, for all practical purposes, much of the information stored in binary office files is inaccessible.
But this changes with Open XML. We can access the contents of Open XML documents using high quality XML programming interfaces. XML programming API’s are the tools that servers are made of; we can now use those same tools to access and modify the information in our documents.
Within the SharePoint framework, there are three primary points where we can plug in functionality using Open XML:
This blog post is about possibilities. Now that we can get at and modify the information in documents, what can we do? I’ve recently posted snippets of code that:
In the next blog post, I’m going to use these snippets of code from within SharePoint. I’ll present a small technology demonstration that will show the power and flexibility that is available to us, now that we can access and modify the contents of word processing documents, spreadsheets, and presentations.
(July 23, 2008: the technology demonstration of Open XML, the Open XML SDK, LINQ to XML, and SharePoint can be found here.)
While MOSS 2007 has many features, I think it's a truly bold statement to say that the WCM part of MOSS 2007 is "Enterprise Content Management" quality.
The only thing that's truly enterprise about the WCM part of the suite is the price. The rest - performance, compliance, deployment .. let's just say we're hoping for v2.0 :-)