Sharepoint from the Domino Developer perspective : Part 1
What is Sharepoint? Alot more than I thought when I started down the path of learning about Sharepoint products in support of our enterprise content management project. There is alot to learn, so I’ll only be scratching the surface but I wanted to try and show what this product is all about while avoiding the usual MS/IBM fud-fest.
I will make my usual disclaimer: This is a learning process for me so everything is subject to change.
Sharepoint is made up of two major pieces. The first, Windows Sharepoint Services (WSS), is the basis for the other, Microsoft Office Sharepoint Services (MOSS). WSS is part of Windows 2003 server, but it can be installed separately on other Windows server products, but it’s always free. MOSS is where MS makes its money.
At the very root, Sharepoint is all about “sites”. Developers build sites to run within WSS, but then MOSS is what brings them all together as a portal. MOSS is what allows cross-site searching, audience targeting, integerated authentication, and alot more.
Like Domino, MS gives out site templates for free. But these are not the bare-boned skeletons that come with Domino, they are fully functional applications targeted at common business processes like vacation requests, document libraries, timesheets, project management, bug tracking, and a blank template.
What makes a Sharepoint site different are the components that make up each site (you could think of each site as a Domino NSF). All of these componenets are customizable, and can be deleted if not needed, but what is included in each template can give you an idea of how MS perceives collaboration.
First are Lists. Sharepoint lists are like Domino views; tabular data in a grid-like layout. But with Sharepoint lists, the end user can define the columns, the data type, and some basic validation rules. It would be the equivalent of allowing a user to create a form and view on the fly.
This is what a Sharepoint list starts out like:

If I want to add another column, we go through a few quick steps:

Then we select the data type of the column.

In this case we selected “Choice” as the data type.

An interesting feature of Sharepoint Lists is that not only are they shareable amongst sites, but even individual columns can be shared across sites.
Although they appear overly simplistic, for those who have read Joel Spolsky’s “UI Design for Programmers” will remember the lesson that MS learned when they actually watched how people used Excel. People used Excel to create lists more than any other function. The death of Lotus Improv was like the death of the Betamax video format; Improv was a better spreadsheet program, but it was not as good at satisfying what the customers actually wanted. Now, end users can create their own excel-like lists and give access to whomever they want. This type of on-demand / user-powered collaboration is centric to Microsoft’s Sharepoint efforts.
Which leads us to the next built-in feature of every Sharepoint site; the Document Library. The Sharepoint document library is an extension of the list, along with some basic document management features like check-in / check-out, permissions, and workflows.
The Sharepoint document library shows another fundamental shift in how MS is approaching the collaboration market. Traditionally, the sharing of documents was done with e-mail, and shared network drives at the expense of security, searchability, and re-use. For example, documents and files that relate to a particular project that crosses departments, usually cause trouble since network file shares are setup departmentally. This scenario usually ends with the creation of some public share where everyone can see the information.
Domino developers have had the document library template for almost 10 years, and although it may not have all the features that the SP document library has, what’s the big deal? Well, the biggest advantage is the integration with MS Office products. Using a MS Office product, I can check-out a document directly from the library, and nobody can make any changes to that document until I check-in. Some other features extend alot of power directly to the user, that would require an additional product (like Quickplace) to replicate in Notes.
Another feature of the Sharepoint document library is the direct hook into Windows Workflow Foundations (WWF). WWF is an article unto itself, but it is a centralized, visual workflow engine that is also built into the Sharepoint solution. With each individual document you can create a routing workflow, feedback collection workflow, or use an exsiting mapped workflow. For each document you can then view the details of its current workflow. No more embedding workflow logic inside buttons and agents, this is like having script libraries that can be shared and managed from a single location.
(document library screenshots)




Like the Sharepoint list, the document library can be customized to track additional fields along with the document. In addition, using Visual Studio 2005, the document libraries can be extended with additional coding efforts.
Sharepoint does store all of these documents/files in a SQL database which facilitates content searching, and better security.
Keep in mind that these are not individual elements, but pieces of every default sharepoint site. These sites can be programmatically created and managed by using the aforementioned templates to provision each site. The Sharepoint API is extensive and very well documented.
Getting back to the individual pieces of a default Sharepoint site, let’s look into Discussions. These are your typical discussion boards where topics are created and responded to. Since they are built into each site, the control of these boards can be handed off to non-IT staff. Not much to say on these since most people are pretty familiar with them.
Next would be Surveys. Not much to discuss here either. Like creating lists, you specify the question, the answer types, the different answers, and away you go.
All of these pieces can be displayed in multiple ways, but a typical method to show these pieces (and a few others), is to list them all in the left navigation pane like this Personal Site template (picture at left).
My initial impression of all this was “where is the kitchen sink”? I felt that MS had gone overboard and just through all this junk together and called it a site. Yet, when we started to look at it from a business perspective, suddenly they came together.
For example: Let’s create a default site to help manage a large cross-department project (there is a project management template, but this is only an example). All of these individual site elements are used solely within the context of this project. The documents that are uploaded, the discussions, surveys amongst the participants, phone number lists, etc.. are all created and stored in one site dedicated to the project. Participants that are added to the project can be given permissions to all or part of the site. All of this created by 5 clicks.
How about this example: Create a site for each customer of your business. Signed documents, contact information, and e-mail threads (discussions), all stored and organized in a very intuitive way.
Want to do everything from scratch without all this baggage? Just create a new site from a blank template.
These pieces that I have described really only scratch the surface of what can be done in a Sharepoint site. Below is a screenshot of the “Create Page” menu where you select what you want to create. While looking at this, keep in mind that this is not programming, but merely configuration and customization, with the potential for programming only if you need it. All of these are built-in parts of a typical Sharepoint site.
Next installment I’ll talk about Site Collections, the built-in full text search, and some of the additional templates available for download.

November 29th, 2006 at 9:24 am
Wonderful !! wating for the next . If you don’t mind ,will you blog some days about your transition to .net or (other tech for that matter) ? I belive that will inspire a hell lota people. You said you were 38 when you moved to ms platform. To my mind that’s a BIG acomplishment .Hats off !!!!
December 8th, 2006 at 4:12 pm
Thanks. Sharepoint keeps coming up, so much so that we implemented it and are taking a serious look at how we could integrate our products with it and develop consulting services around it. I found the terminology hard to follow. Really helps with you do things like link Views and Lists. The Domino context is great.
February 2nd, 2007 at 9:27 am
Great stuff!