SharePoint Technologies and Content Management Server are two very different products, each providing unique features. SharePoint provides an environment that facilitates online collaboration and sharing of information among a finite group of users. MCMS 2002 provides a publishing engine to publish content to a mass of people while enabling you full control of the presentation.
I won’t waste your time with a SharePoint sales pitch. Microsoft says:
Microsoft Office SharePoint Portal Server 2003 connects people, teams, and knowledge across business processes. It unifies disparate information, facilitates easy collaboration on documents, projects, and other efforts, and presents specific applications and customized content based on a user’s functional group and organizational role.
I say SharePoint provides a site framework, based off web part technology, to rapidly build sites by non programmers and developers to share information easily and quickly. SharePoint is comprised of two different technologies: Windows SharePoint Services and SharePoint Portal Server. For an explanation of the difference, check out What is SharePoint 2003 (v2)? … best non-Microsoft explication out there. Both bring a handful of very valuable things to the table:
Collaboration It’s very easy for a group of people to create a site and share information with no technical hurdles… everything can be done through Internet Explorer although you get a richer experience if you have Office 2003.
Alerts Users can flag documents, document libraries, list items, or entire lists to send them an update when something is added, deleted, or updated… great for a collaborative environment.
RAD-like site creation Creating a new WSS site or portal is very easy. You can elect to use the provided site definitions and templates to create a site quickly or build your own (go for it… we’re talking hundreds of files to modify… we did it, but it’s going to require some work). Once a site is created, it’s very easy using FrontPage 2003 to customize and using Internet Explorer you can easily add web parts to pages, create new lists, add users, etc… it’s very easy.
Personalization All sites have a shared and personal view. The shared view is what everyone sees; the personal view is what you see. You can toggle between the two.
Content targetting with audiences SPS provides the ability to target specific content to an audience so when someone goes to a division page in a portal, they’ll see information on their division where others will see their own division information.
Search SPS provides an easily customizable search feature set for users to easily find content within a portal. You can also create other indexes to allow searching a non-SharePoint resource (like a content site).
Content Organization All content for a site is stored within the web parts, but some web parts can be connected and used for lookup lists. For example you can have a list of contacts on your project team and a task list that pulls from that list of contacts as available resources to assign a task to.
Completely managed & implemented with the .NET Framework I don’t mean SharePoint is completely a managed application, there is some unmanaged code & libraries in the SharePoint underlying engine (surprised the MCS consultant & I when we were in our 6th hour of a PSS call in the middle of the night and finally got a confirmation we were the 4th to uncover a bug in the portal creation process… funny story… but this isn’t the time). At any rate, your applications (controls, web parts, etc) are completely managed and the SharePoint API (both the SPS and WSS API are VERY open) is managed.
Web Part Framework New to SharePoint, and standard in the next version of .NET (v2.0 due mid-late 2005), web parts are basically small pluggable components. Microsoft does a good job of explaining web parts:
A Web Part is a Microsoft ASP.NET server control that serves a particular purpose, such as displaying data from a spreadsheet or streaming stock quotations from an online Web service. Web Parts are inserted in Web Part zones on Web Part Pages. Web Part zones are containers for Web Parts that group and organize Web Parts and provide a set of properties that configure the Web Parts in that zone. Web Part Pages consolidate data and Web content through Web Part zones to create dynamic information portals.
Code Access Security SharePoint is the first real Microsoft application to really leverage the code access security provided by the .NET Framework. You can create web parts and grant the specific DLLs permissions to do certain things while keeping the rest of the web parts and site locked down.
Everything is stored in databases Virtually everything is stored in databases with SharePoint with the exception of ghosted pages. Pages are based off template files on the file system. When you add web parts to pages or upload a document to a library, that information is stored in the database. The page itself is left unchanged in the file system. When a request is made, the page is loaded and the delta is applied from the database. If you make changes to a page with FrontPage 2003, those changes are saved in the database as well. This makes it very easy to backup and restore sites.
SharePoint does have some downsides to it as well.
- The line between presentation and data is very blurred and may not exist at all (at times it’s close to 20-20 vision being clear cut… other times is as bad as 20-400… which is bad… trust me on this one, lived my life like that… ). For more on this, look at the ghosting/unghosting references at the end of this post.
- Creating a new site with your own templates and site definitions is a big undertaking. You could just modify images and colors with CSS (not so bad) or you could create brand new templates (very bad) as there are hundreds of files to deal with. And, only one portal site definition can exist on a server for all portals (they share the same one).
- No out of the box workflow. Yes, you can setup lists and document libraries to have an approver… but one-step isn’t workflow to me… that’s more like validation. Yes, you can build your own with the document event sinks and 3rd party tools… but nothing out of the box and no options with lists.
What is Content Management Server? MCMS helps you build content based sites off templates with a clear separation of presentation from data. With out-of-the-box 3-step workflow, and an flexible API to extend it, you can provide content authors, owners, editors, and moderators a very user friendly way to manage a content driven website. Essentially, developers focus on building templates, navigation, and some custom components leaving all content entry, organization, and management to the content owners.
Basically a MCMS site is comprised of channels (folders) containing subchannels or postings (pages). These postings are based off a specified template which defines the structure of the page, both in terms of what content is allowed and where it’s positioned on the page. These content blocks are called placeholders and MCMS provides a way for you to build your own custom placeholders.
Some features worth mentioning:
Extendable workflow It’s very easy to customize and extend the MCMS workflow for any and all content. In addition there are numerous third party applications that plug right into MCMS.
Content Management & data storage All content management and data storage is managed by MCMS. You simply provide template definitions and files with the template layouts and content owners, using Internet Explorer create new pages and approve pages moving through the approval process. 100% of the presentation is kept out of the database, it’s kept in the template files… 100% of the data is kept in the database… a clear and defined line separating presentation & data!
Easy Content Organization I say easy because any computer user is used to the folder-file organization on a hard drive. MCMS organizes your website in the same manner, using channels (folders) and postings (files). In addition, you have connected postings which will allow you to share the same content in two or more places on your site.
Templated Architecture As stated a few times previously, all content and presentation is very templated. Developers create template definitions that specify the various content containers and then they build template files that layout and arrange the content for each template.
Semi managed application, but able to build fully managed sitesMCMS is a mix of managed and unmanaged code. It’s flexible enough to allow you the ability to build an ASP or ASP.NET based site.
Unlike SharePoint, MCMS doesn’t provide a collaborative environment… it’s more of a publishing environment. While it’s very hard to tinker with the SharePoint UI, you have full control over the MCMS UI and it’s very easy to rebrand (we rebranded a 1400+ page site, from start to finish, in 48 hours… including a new layout, new logos, new colors, etc).
**How can the two products complement each other?**As you can see from the above overview, each product provides distinct feature sets and there’s minimal overlap between the two. Although they are very different products, each can benefit from the other’s features. The personalization and content targetting based on audience is needed at times in content based sites. In addition, the workflow capabilities of creating content could be leveraged in a collaborative environment. Unfortunately the two products are so different at their core it’s not a trivial task to merge to two into a single solution. If it were, you probably wouldn’t be interested in this series!
The next part of the series will deal with evaluating the two products in terms of which one should take the dominating role in a solution.
SharePoint: I’m in the process of building a references/links section on my site… I’ll update this post when it’s complete… for now, see my SharePoint blog category and the links in the left column. Content Management Server: I’m in the process of building a references/links section on my site… I’ll update this post when it’s complete… for now, see my MCMS blog category and the links in the left column.