<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>SharePoint Magazine &#187; Jeremy Thake</title>
	<atom:link href="http://sharepointmagazine.net/author/jthake/feed" rel="self" type="application/rss+xml" />
	<link>http://sharepointmagazine.net</link>
	<description>SharePoint Magazine is an online Magazine dedicated to the world of SharePoint</description>
	<lastBuildDate>Mon, 05 Jul 2010 09:14:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Part 6 &#8211; Lessons learnt from Leveraging the SharePoint Platform</title>
		<link>http://sharepointmagazine.net/technical/development/part-6-lessons-learnt-from-leveraging-the-sharepoint-platform</link>
		<comments>http://sharepointmagazine.net/technical/development/part-6-lessons-learnt-from-leveraging-the-sharepoint-platform#comments</comments>
		<pubDate>Thu, 23 Apr 2009 14:30:14 +0000</pubDate>
		<dc:creator>Jeremy Thake</dc:creator>
				<category><![CDATA[Customisation]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=3115</guid>
		<description><![CDATA[There are plenty of people trying to take the SharePoint Development approach and using Solution Packages to deploy to the farm.]]></description>
			<content:encoded><![CDATA[<p><a href="../technical/news/technical/development/leveraging-the-sharepoint-platform-part-1">Part  1 &#8211; What is the SharePoint Platform</a><br />
<a href="../technical/news/news/analysis/leveraging-the-sharepoint-platform-part-2">Part  2 &#8211; What capabilities to start with</a><br />
<a href="../technical/news/analysis/leveraging-the-sharepoint-platform-part-3">Part  3 &#8211; How to start with the SharePoint Platform</a><br />
<a href="../technical/news/analysis/leveraging-the-sharepoint-platform-part-4">Part  4 &#8211; Levels of leveraging the SharePoint Platform</a><br />
<a href="http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-5-why-use-sharepoint-as-a-development-platform">Part 5 &#8211; Why use  SharePoint as a Development Platform</a><br />
Part 6 &#8211; Lessons learnt from Leveraging  the SharePoint Platform</p>
<p style="margin: 0in 0in 0in 0in;">
<p style="margin: 0in 0in 0in 0in;">There are quite a lot of people in the SharePoint community flying the SharePoint Development flag high<span> </span>and proudly. The SharePointDevWiki.com is growing steadily each week and I&#8217;m extremely pleased that<span> </span>there are more and more community members submitting content on there.</p>
<p>There are plenty of people <span style="font-weight: bold;">trying</span> to take the SharePoint Development approach and using Solution<span> </span>Packages to deploy to the farm. But more and more I am seeing this scenarios below.</p>
<p style="margin: 0in; font-weight: bold;">
<p style="margin: 0in; font-weight: bold;">Scenario One</p>
<ul>
<li><span>The development team sit down      with the client and get the requirements for their new      &#8220;Intranet&#8221;</span></li>
<li>Start off with a Solution Package and buildingSite Fields, Content Types, Lists, Pages, Web Parts androlling this into a UAT environment (or worse Production)</li>
<li><span>The &#8220;Intranet&#8221; in      UAT then gets a review from the client</span></li>
<li><span>Changes are requested by the      client, but the client also wants to have a &#8220;play&#8221; with the UAT      environment</span></li>
<li><span>Developers start off on the      right foot and add a few extra Site Fields, amend the List Templates and      have<span> </span>tested it in their Development      environment</span></li>
<li><span>The Dev team are then ready      to deploy this to UAT&#8230;but the client has done more than &#8220;play&#8221;      in this<span> </span>environment and wants this      content in there when the Developers release the changes.</span></li>
</ul>
<p><span style="font-weight: bold;">FIRST TIP</span>: ensure they are aware that anything they do in UAT is not making it to production! UAT is<span> </span>very different from content STAGING<span> </span>environments.</p>
<ul>
<li><span>So the Dev team release the      new .wsp solution package to the farm and then run a script to delete      the<span> </span>current site collection and      create a new one using the new templates and scripts&#8230;this obviously      deletes<span> </span>any content that was in      there.</span></li>
<li><span>This gets a tick in the box      and the site goes into Production</span></li>
<li><span>Content is authored in the      new production site and they want to add a new Site Field to a list that      is<span> </span>commonly used across multiple      department sites within the Intranet</span></li>
<li><span>Changing the List Template in      the Solution Package and redeploying to the farm will not amend the<span> </span>instances of the List already created.      So the Dev manually makes these changes and so the spiral of pain<span> </span>starts&#8230;</span></li>
</ul>
<p>Take this scenario 6 months down the line, the Dev no longer bothers updating the solution package as<span> </span>he is doing it all manually in production anyway and no need to go back and change it in source<span> </span>control&#8230;&#8221;that&#8217;s not used anymore anyway&#8221;.</p>
<h2>Scenario Two</h2>
<p>Scenario two steps in where Devs originally deployed style sheets to the Style Sheets library using<span> </span>Solution Packages and then someone gets hold of SharePoint Designer and ignores the warnings and<span> </span>modifies the style sheet here. Lots of changes are made&#8230;but not put back into the source style sheet in<span> </span>the solution package.<br />
<span> </span>Later that month a web part C# file changes and a new style is added to the style sheet in the Solution<span> </span>package. The new package is redeployed&#8230;guess what, it&#8217;s going to redeploy the style sheet but not<span> </span>overwrite the one in the site because it&#8217;s broken its ties with the original source! So the web part will not<span> </span>find that style and not render properly.</p>
<p><img class="alignnone size-full wp-image-3116" src="http://sharepointmagazine.net/wp-content/uploads/2009/04/update.png" alt="update" width="778" height="391" /></p>
<p><span style="font-weight: bold;">TIP 2</span>: lock down files deployed with solution packages so that they can only be changed via<span> </span>deployment. Do this via &#8216;sealing&#8217; elements and also via permissions on items.</p>
<p><span style="font-weight: bold;">TIP 3</span>: don&#8217;t let developers near the production and UAT boxes. Don&#8217;t let their dirty fingers anywhere<span> </span>near the 12 hive directly! Get administrators to deploy to UAT and Production using WSPs and change<span> </span>scripts.</p>
<p style="margin: 0in; font-weight: bold;">
<p style="margin: 0in; font-weight: bold;">
<h2>Why does all this happen?</h2>
<p>The biggest problem is that developers want to be able to automate the entire setup process especially in<span> </span>a build server scenario and this is why everything initially ends up being deployed via a Solution Package.</p>
<p><span style="font-weight: bold;">TIP 4</span>: draw a line between what is development and what is customisation.</p>
<p>Either do everything in Development or do everything in customisation for an element e.g. don&#8217;t build<span> </span>your event receivers in a dll and package with a WSP, and have a List Template in the wsp, but then<span> </span>manually use a tool like Event Receiver Manager to add the event receiver! On creating the list via a Site<span> </span>Definition or via a Feature, use a Feature Receiver to attach the event receiver there and then! It&#8217;s self<span> </span>documenting that way!</p>
<p>Whatever you do, document where each type of element sits and where it will be found: in a WSP, update script, command line up, manual steps etc.</p>
<p>Below is an example table that shows the boundaries between elements. Note this is by no means complete, but just to give you an idea&#8230;plenty of things in Development may sit in Customisation for a lot of teams. You can also give this to external integrators your team may use for implementations to make sure EVERYONE works the same way.</p>
<div style="direction: ltr;">
<table style="border: 1pt solid #a3a3a3; direction: ltr; border-collapse: collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">
<p style="margin: 0in; font-weight: bold;">DEVELOPMENT</p>
</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;">
<p style="margin: 0in; font-weight: bold;">CUSTOMISATION</p>
</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;">
<p style="margin: 0in; font-weight: bold;">CONTENT</p>
</td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Web Parts with   code</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;">Site Instances</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;">Page Instances</td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Stylesheets</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;">List Instances</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;">List Item   Instances</td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Content Types</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;">Initial Page   Instances e.g. Default.aspx</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;">Workflow Instances</td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Site Fields</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">List Templates   (for fixed lists)</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Master Pages</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Page Layouts</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Style Sheets</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Master Page/Page   Layout/Style sheets Images</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Site Templates</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Webtemp files</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Custom Controls</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">JavaScript files</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Web.config changes</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Event Receivers</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Feature Receivers</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Features</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">Workflow</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
<tr>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.3326in;">InfoPath   (Administrative Templates)</td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 2.6034in;"></td>
<td style="border: 1pt solid #a3a3a3; padding: 4pt; vertical-align: top; width: 1.9708in;"></td>
</tr>
</tbody>
</table>
</div>
<p><span style="font-weight: bold;">TIP 6</span>: Remember that changing elements won&#8217;t affect their instances e.g. List Templates, Site Templates,<span> </span>Workflow Instances. All the other elements are referenced and linked and will be automatically updated<span> </span>once pushed out into the Farm.</p>
<p>To modify existing instances you will need to provide update scripts using the object model either as<span> </span>custom window console application or powershell script.</p>
<p><span style="font-weight: bold;">TIP 7</span>: Get your dev team to first off create a script that deletes the site collection and recreates the<span> </span>site collection (using custom Site Defintion if approach taken) and then run the scripts to populate<span> </span>content required. Use this script when in own Dev Virtual Machine AND Shared Development<span> </span>Environment AND Build Server.</p>
<p><span style="font-weight: bold;">TIP 8</span>: Always keep UAT and Production one change step away from each other. Always deploy to<span> </span>UAT and Prod using WSPs, but also use update scripts rather than deleting Site collection and creating it<span> </span>again! Have the ability to take the approach of Updating in Shared Dev environment (by taking snapshot<span> </span>of UAT/Prod) to test update scripts before going to UAT.</p>
<p><strong>Conclusion</strong></p>
<p>Well this is the end of this 6 part series on Leveraging the Platform. Hopefully it&#8217;s been useful to you. Very shortly I will be placing some more ideas up on the <a href="http://www.sharepointdevwiki.com">SharePointDevWiki.com</a> around these change control processes to help SharePoint Server teams with these tasks!</p>
]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/technical/development/part-6-lessons-learnt-from-leveraging-the-sharepoint-platform/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leveraging the SharePoint Platform (Part 5) &#8211; Why use SharePoint as a Development Platform?</title>
		<link>http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-5-why-use-sharepoint-as-a-development-platform</link>
		<comments>http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-5-why-use-sharepoint-as-a-development-platform#comments</comments>
		<pubDate>Mon, 09 Mar 2009 15:59:36 +0000</pubDate>
		<dc:creator>Jeremy Thake</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[CAML]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=2760</guid>
		<description><![CDATA[We are coming near the end of this 6 part series, but don't worry, it's not the last you'll hear of me! This part focuses on 'Why develop leveraging the SharePoint Platform?'. This is really targeted at ASP.NET developers specifically, but also other web application developers from other walks of life also. Or anyone currently working with Vanilla SharePoint and wanting to dig a little deeper!]]></description>
			<content:encoded><![CDATA[<p><a href="../news/technical/development/leveraging-the-sharepoint-platform-part-1">Part  1 &#8211; What is the SharePoint Platform</a><br />
<a href="../news/news/analysis/leveraging-the-sharepoint-platform-part-2">Part  2 &#8211; What capabilities to start with</a><br />
<a href="../news/analysis/leveraging-the-sharepoint-platform-part-3">Part  3 &#8211; How to start with the SharePoint Platform</a><br />
<a href="../news/analysis/leveraging-the-sharepoint-platform-part-4">Part  4 &#8211; Levels of leveraging the SharePoint Platform</a><br />
Part 5 &#8211; Why use  SharePoint as a Development Platform<br />
Part 6 &#8211; Lessons learnt from Leveraging  the SharePoint Platform</p>
<p>We are coming near the end of this 6 part series, but don&#8217;t worry, it&#8217;s not  the last you&#8217;ll hear of me! This part focuses on &#8216;Why develop leveraging the  SharePoint Platform?&#8217;. This is really targeted at ASP.NET developers  specifically, but also other web application developers from other walks of life  also. Or anyone currently working with Vanilla SharePoint and wanting to dig a  little deeper!</p>
<h2>Development Languages</h2>
<p>As discussed in the <a href="../technical/development/leveraging-the-sharepoint-platform-part-1">Part  1</a>, SharePoint leverages ASP.NET and NET WF among other languages such as  XHTML, CSS, XSLT, XML and JavaScript. Most ASP.NET developers will already be  proficient with these languages making the learning curve pretty much around the  Framework itself. The Collaborative Application Markup Language (CAML) is about  the only new language that is new to SharePoint Developers which is used to  build queries in XML.</p>
<h2>The SharePoint Framework</h2>
<p>One of the first things to remember is that SharePoint is a Platform and NOT  a Product. SharePoint is there to be leveraged. It is pretty much useless  vanilla out of the box from a fresh installation as an end user. It needs  customisation and development implementations for a Solution to be usable and  successful.</p>
<h3>Functionality already there</h3>
<p>As discussed in <a href="../news/technical/development/leveraging-the-sharepoint-platform-part-1">Part 1</a> and <a href="../news/technical/development/leveraging-the-sharepoint-platform-part-2">Part 2</a>, there is a lot of functionality out of the box and it is worth being aware what this is to see if you can get any wins out of reusing this in your solution implementations.</p>
<h3>Plumbing already there</h3>
<p>SharePoint provides lots of plumbing out of the box that you&#8217;d typically be  writing yourself or plugging together a bunch of components. Common bits you  have to put together are: User interface Framework, Windows Services, SQL  Databases, Persistence Layers, CRUD UI screens, Security, Workflow engines, File  Upload, Deployment Framework etc. All this is there at you disposal with a few  lines of code or clicks in the User Interface. This saves a significant amount  of time up front.</p>
<h3>Learn the Framework</h3>
<p>Like the .NET Framework, some things are hidden away in various namespaces  and often you&#8217;ll find developers writing functions that already exist. There&#8217;s  plenty of content out there to ensure you don&#8217;t make this mistake. I personally  find <a href="http://msdn.microsoft.com/en-us/office/aa905503.aspx">MSDN</a> currently a bit dry as the structure is based on each object in the object model  hierarchy and it’s methods and properties. Often these don’t fit into a scenario  where you’d use them in isolation. The scenario based examples are littered all  over the blogosphere and more recently being structured on the <a href="http://www.sharepointdevwiki.com/">SharePointDevWiki.com</a>. MSDN do have  these scenarios, but they are just written into one long list of articles with  no structure which makes it hard to discover what you’re looking for. <a href="http://www.sharepointdevwiki.com/">SharePointDevWiki.com</a> gives you the  best of both worlds.</p>
<h3>More than one way to do things</h3>
<p>As I discussed in <a href="../news/analysis/leveraging-the-sharepoint-platform-part-4">Part  4</a>, there is more than one way to skin a cat in SharePoint and it is  important to agree on a standard approach within each SharePoint environment for  consistency. Being aware of each approach and it’s strengths and weaknesses is  just the start of the implementation process!</p>
<h3>Infrastructure Handled for You</h3>
<p>SharePoint is becoming more and more common across IT infrastructure and you  can bet your bottom dollar it&#8217;ll only get more common as time marches on. The  platform allows you to build solutions and not have to focus on things such as:  Scalability, Disaster Recovery, Performance, Interface Design Frameworks,  Security and Deployment. All this stuff is part of the plumbing of  SharePoint Infrastructure and managed by your Infrastructure team and propeller  head Architects. More often than not, they&#8217;ll be a few guidelines to follow when  building your solution and that&#8217;ll be the last you hear of them! Please don’t  get into the habit of doing this stuff as well as development, see my recent  post on ‘<a href="http://wss.made4the.net/archive/2009/02/15/the-sharepoint-implementation-market-needs-to-grow-up.aspx">The  SharePoint Implementation Market needs to grow up!</a>’ to find out more on  this.</p>
<h3>Frameworks Evolve</h3>
<p>One thing to remember with Frameworks is that they evolve over time.  SharePoint has already gone through 3 major versions with another just around  the corner in Q1 2010 (SharePoint 14). When you implement your solutions on top  of SharePoint, without any extra effort (if you&#8217;ve done things <strong><a href="http://wss.made4the.net/archive/2008/05/26/solution-development-in-sharepoint-2007.aspx">correctly</a></strong>)  you get a whole heap of extra functionality when you upgrade to the next major  version.</p>
<h3>Extend the Framework</h3>
<p>You&#8217;ll find people rewriting functionality because it doesn&#8217;t work &#8220;quite  right&#8221;, but realistically people should be <strong>extending</strong> the  framework. Often this is purely down to the skill level as a .NET Developer or  in Power Users case…no skill level at all. If you rewrite or hack the current  functionality, you&#8217;ll find that updates will overwrite your changes, extending  the framework ensures they still exist. You&#8217;ll probably have to do some  integration testing to ensure your extensions still work on top of the new  version. This is happening more and more as Power Users find ways to work around  the Development approach with tools such as jQuery, see my post on ‘<a href="http://wss.made4the.net/archive/2009/02/23/jquery-the-sharepoint-band-aid.aspx">jQuery:  the SharePoint Band Aid</a>’ for more information on this.</p>
<h2>Maturity of the SharePoint Dev Community</h2>
<p>As I <a href="http://wss.made4the.net/archive/2009/02/15/the-sharepoint-implementation-market-needs-to-grow-up.aspx">mentioned  recently</a> the SharePoint Development community has got a long way to grow to  be respected. I would recommend reading that post to get a deeper understanding  of what I mean. I&#8217;ll cover off a few things here that are relevant to the  objective of this post:</p>
<h3>Rapid Application Development</h3>
<p>Like any platform, SharePoint is great a rapidly building applications and is  therefore great for Prototyping. Be extremely careful to set the expectations to  the End User that these are Prototypes and not the real thing. You will need to  build the end solution with a lot more rigour than throwing components together  to get an end to end solution running to pilot.</p>
<h3>Agile Methodology</h3>
<p>Because you can rapidly build solutions you will find development teams  having very short iterations producing extremely rich functionality. This lends  itself well to an Agile approach to development, which is where the Development  Market should really be, moving away from the traditional Software Development  Lifecycle (SDLC).</p>
<h3>Test Driven Development (TDD)</h3>
<p><a href="http://www.21apps.com/">Andrew Woodward</a> is leading the charge  with SharePoint and TDD. There is also ongoing documentation on the community  happenings around this on the <a href="http://www.sharepointdevwiki.com/display/public/SharePoint+Development+with+Unit+Testing">SharePointDevWiki.com</a>.  <a href="http://www.binarywave.com/blogs/eshupps/Lists/Posts/Post.aspx?ID=179">Eric  Shupps</a> has just posted an anti-TDD SharePoint post here which has caused a  lot of discussion around the whole paradigm. I take the stance that it is  suitable in certain scenarios, those of which I have not had time to define yet,  but will do on the SharePointDevWiki.com shortly. If you are currently in th  e.NET space and using TDD, the community would welcome your feedback as it is  still in limbo!</p>
<h3>Source Control</h3>
<p>A lot of implementations can be done without writing a single line of code  and some can be written with a few. Often it is just all too hard to keep a  repository of these &#8220;little&#8221; changes..but we&#8217;ve all seen an avalanche right?  Don&#8217;t be fooled by teams that say you can&#8217;t use source control with SharePoint  Implementations or by those who say SharePoint does it for you! That is not  totally true! You should place as much in source control as possible outside of  the SharePoint environment and it is completely feasible!</p>
<h3>Development Tools</h3>
<p>Unfortunately the Development tools aren&#8217;t what they should be for such a  used Platform, so much so that the community has had to lend a hand! I advise  you to get familiar with the tools that are <a href="http://www.sharepointdevwiki.com/display/public/Solution+package+development+tool+comparisons">available  and their limitations</a>. I also advise you to take a look at what could be  possible in the future with a community project to build the <a href="http://www.sharepointdevwiki.com/display/public/The+Ultimate+SharePoint+Development+Tool">Ultimate  SharePoint Development tool!</a></p>
<p>There has been some sneak peeks into <a href="http://blogs.msdn.com/somasegar/archive/2009/02/19/sharepoint-tools-support-in-visual-studio.aspx">VS2010</a> (and  VS2010 <a href="http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx">UI  look and feel</a>) as well as the introduction of <a href="http://blogs.msdn.com/pandrew/archive/2009/02/20/vsewss-1-3-feb-2009-ctp-released.aspx">VSeWSS  1.3 CTP</a> which has come along way from VSeWSS 1.2. But the community still  seems to be backing WSPBuilder very strongly due to the limitations of the  VSeWSS product paradigm where it doesn’t conform to the 12 Hive structure like  WSPBuilder and STSDev.</p>
<h2>Community Content</h2>
<p>As discussed in a <a href="http://wss.made4the.net/archive/2009/02/15/sharepoint-community-content-where-to-find-it.aspx">recent  blog post</a>, the SharePoint community is simply unprecedented against any  other platform out there! I have never seen a community so eager to share their  knowledge. Go to Google and do a search for OpenText &#8216;RedDot CMS&#8217; or &#8216;SAP&#8217; or  &#8216;Business Objects&#8217; and see how much information is online to help the community  on implementing that platform. There are 500+ blogs, forums, the <a href="http://www.sharepointdevwiki.com/">SharePointDevWiki.com</a>, podcasts and  webcasts, I listed a few below but keep up to date with this list <a href="http://www.sharepointdevwiki.com/display/public/SharePoint+Community">here</a>.</p>
<h3>Blogs</h3>
<p>At a minimum you should read these blogs to keep up with SharePoint  Customisation and Development:</p>
<ul>
<li><a href="http://blogs.msdn.com/sharepoint">Microsoft SharePoint Team  Blog</a></li>
<li><a href="http://blogs.msdn.com/sharepointdesigner">SharePoint Designer Team  Blog</a></li>
<li><a href="http://andrewconnell.com/blog">Andrew Connell (WCM)</a></li>
<li><a href="http://heathersolomon.com/blog">Heather Soloman (CSS/UI)</a></li>
<li><a href="http://www.sharepointjoel.com/">Joel Oleson (Architecture)</a></li>
<li><a href="http://sharepoint.microsoft.com/blogs/mikeg/default.aspx">Mike  Gannotti</a></li>
<li><a href="SharePointDevWiki.com">SharePointDevWiki.com</a></li>
<li><a href="../">SharePointMagazine.net</a></li>
<li><a href="http://www.endusersharepoint.com/">EndUserSharePoint.com</a></li>
</ul>
<h3>Podcasts</h3>
<ul>
<li><a href="http://sharepointpodshow.com/">SharePointPodShow.com</a> – <a href="http://wss.made4the.net/archive/2008/12/15/my-sharepoint-development-best-practices-sharepointpodshow-interview-is-live.aspx">click  here listen to my interview</a></li>
<li><a href="http://www.mossgonewild.com/">MOSS Gone Wild</a></li>
</ul>
<h3>Webcasts</h3>
<ul>
<li><a href="http://channel9.msdn.com/tags/Sharepoint/">Channel 9 &#8211; SharePoint </a></li>
<li><a href="http://sharepoint.microsoft.com/blogs/mikeg">Mike Gannotti  (Webcasts)</a></li>
</ul>
<h3>Forums</h3>
<ul>
<li><a href="http://social.technet.microsoft.com/Forums/en-US/category/sharepoint/">MSDN  SharePoint Forums</a></li>
</ul>
<h3>Twitter</h3>
<ul>
<li><a href="http://twitter.grader.com/search?Term=sharepoint">Twitter Grade |  SharePoint</a> – note to SharePoint Twitterers – make sure you mention  SharePoint in your profile!</li>
</ul>
<h2>Training Opportunities</h2>
<p>There is an enormous amount of options with regards to training in SharePoint  Customisation/Development.</p>
<h3>Classroom Based</h3>
<p>Classroom based training is spreading like wildfire with a variety of options  in most countries across the World. These courses tend to focus on the Framework  fundamentals currently rather then leveraging the tools to give Developers a  grounding&#8230;without this, and knowledge just of the tool would mean that  debugging code would be incomprehensible.</p>
<h3>Online Based</h3>
<p>Microsoft along with other Vendors are providing lots of rich online  training, including Virtual Labs. As a trainer myself, I find that online  training is not suitable for everyone and that class room training supported by  a trainer who knows the platform inside out is a lot more valuable.</p>
<p>As I&#8217;ve <a href="http://wss.made4the.net/archive/2008/11/10/sharepoint-developer-resources-not-to-be-missed-not-just-a-repeat-announcement-of-sharepoint-guidance-.aspx">mentioned  before</a> there are some <a href="http://www.sharepointdevwiki.com/display/public/Online+Learning">great  places</a> to start learning:</p>
<ul>
<li><a href="http://www.microsoft.com/click/SharePointDeveloper/">Do Less, Get  More, Develop on SharePoint</a></li>
<li><a href="http://msdn.microsoft.com/en-us/rampup/dd221355.aspx">Ramp Up</a></li>
<li><a href="http://www.microsoft.com/spg">Patterns &amp; Practices: SharePoint  Guidance</a></li>
<li><a href="http://www.sharepointdevwiki.com/">SharePointDevWiki.com</a></li>
</ul>
<p>There are paid labs too:</p>
<ul>
<li><a href="http://www.microsoft.com/learning/sharepoint/2007/default.mspx">Microsoft  e-Learning: SharePoint</a></li>
<li><a href="http://www.tedpattison.net/">Ted Pattison Group</a></li>
</ul>
<h3>Books</h3>
<p>It seems every time I check Amazon there is another SharePoint book being  released. They are getting more and more specific to the particular capability  areas of SharePoint such as BDC, Workflow, InfoPath which allows Developers to  deep dive into the areas they are trying to implement.</p>
<p>Check out <a href="http://www.amazon.com/s?ie=UTF8&amp;tag=mozilla-20&amp;index=blended&amp;link_code=qs&amp;field-keywords=sharepoint&amp;sourceid=Mozilla-search">Amazon  for SharePoint</a> or the <a href="http://www.sharepointdevwiki.com/display/public/Books">SharePointDevWiki.com  book list</a>.</p>
<h2>The Cool Stuff to play with in the Toy Box</h2>
<p>There is plenty of cool activity in the development space to keep us  Developers happy and challenged&#8230;which will obviously need keep passionate  about the Platform. It is also a great way to differentiate yourself in the  SharePoint Community as mentioned when listing the bloggers out there.</p>
<h3>Silverlight</h3>
<p>Silverlight is making inroads into the Internet with its powerful Video  Streaming technology but also because of the implementation process that  separates Design from Development. There has been <a href="http://www.diigo.com/user/jthake/sharepoint+silverlight">some posts  already</a> surfacing on integrating Silverlight into SharePoint and also  rumours of SharePoint 14 improving the UI using Silverlight.</p>
<h3>TDD</h3>
<p>As mentioned above, TDD is a hot topic, and would also be a great area to  focus your existing skills on and apply them to SharePoint Implementations. I  encourage you to check out the <a href="http://www.diigo.com/user/jthake/tdd+sharepoint">posts around on  TDD</a>.</p>
<h3>WCF</h3>
<p>WCF is still relatively new and with those long horrible xml configuration  files going to take a while for the majority of Developers to move away from  standard .NET Web Services. SharePoint doesn’t support WCF out of the box but  there are <a href="http://www.diigo.com/user/jthake/wcf+sharepoint">posts out  there on this</a>.</p>
<h3>Azure</h3>
<p>A post for Developers wouldn’t be ‘cool’ if I didn’t mention Cloud Computing  <img src='http://sharepointmagazine.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  SharePoint Online is SharePoint in the Cloud. There are <a href="http://www.diigo.com/user/jthake/sharepoint+cloud">plenty of post</a> on  it and what you can/can’t do if the platform is hosted up in the cloud.</p>
<h3>jQuery</h3>
<p>So I caused a bit of a storm in a teacup with my ‘jQuery: the SharePoint Band  Aid’ post. <a href="http://www.diigo.com/user/jthake/sharepoint+jquery">jQuery +  SharePoint</a> is not going to go away and there are some great examples of how  powerful it can be. Microsoft have picked up jQuery and are running with it for  SharePoint 14 also.</p>
<h3>PowerShell</h3>
<p>PowerShell (PoSH) is another scripting language that seems to have taken the  SharePoint world by storm. If you are a PoSH wizard, then you should start  showing off your stuff by manipulating the SharePoint Object model. Check out  these <a href="http://www.diigo.com/user/jthake/powershell+sharepoint">PoSH  posts</a> to see what others are already doing. SharePoint 14 will also have a  lot of PoSH stuff going on for you to leverage.</p>
<h1>Conclusion</h1>
<p>So hopefully this gives you a feel for what SharePoint can do for you as a  Customiser/Developer and also where to find more information to help you.</p>
<p>I encourage everyone who is going down this path to help collaborate on the <a href="http://www.sharepointdevwiki.com">SharePointDevWiki.com</a> to make experiences for new people moving in this direction easier in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-5-why-use-sharepoint-as-a-development-platform/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Leveraging the SharePoint Platform (Part 4)</title>
		<link>http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-4</link>
		<comments>http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-4#comments</comments>
		<pubDate>Mon, 16 Feb 2009 17:50:55 +0000</pubDate>
		<dc:creator>Jeremy Thake</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[governance]]></category>
		<category><![CDATA[infopath]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[stsadm]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=2517</guid>
		<description><![CDATA[It’s been a long while since I wrote the last part and had to find myself reading through all three parts again to realize how much my SharePoint knowledge has matured since then. This is something familiar to a lot of people in the SharePoint community that are evolving at a rate of knots with the Platform.]]></description>
			<content:encoded><![CDATA[<p><a href="../technical/development/leveraging-the-sharepoint-platform-part-1">Part 1 &#8211; What is the SharePoint Platform</a><br />
<a href="../news/analysis/leveraging-the-sharepoint-platform-part-2">Part 2 &#8211; What capabilities to start with</a><br />
<a href="http://sharepointmagazine.net/news/analysis/leveraging-the-sharepoint-platform-part-3">Part 3 &#8211; How to start with the SharePoint Platform</a><br />
Part 4 &#8211; Levels of leveraging the SharePoint Platform<br />
Part 5 &#8211; Why use SharePoint as a Development Platform<br />
Part 6 &#8211; Lessons learnt from Leveraging the SharePoint Platform</p>
<p><span lang="EN-AU">It’s been a long while since I wrote the last part and had to find myself reading through all three parts again to realize how much my SharePoint knowledge has matured since then. This is something familiar to a lot of people in the SharePoint community that are evolving at a rate of knots with the Platform.</span></p>
<p class="MsoNormal"><span lang="EN-AU">You may already be aware that I have started a SharePoint Development Wiki that I am encouraging the entire community to contribute to. You can anonymously add comments to any wiki page content or can sign up for free and instantly create/edit new wiki pages. I will reference various wiki pages in this article and encourage you to add comments or content if you have things you’d like to contribute.</span></p>
<h1><span lang="EN-AU">The ‘Leveraging Levels’</span></h1>
<p class="MsoNormal"><span lang="EN-AU">This part will try and identify the main levels of leveraging the SharePoint Platform. As discussed in Part 3, there are plenty of different SharePoint People/Roles out there which are broken down into how you interface with SharePoint:</span></p>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">SharePoint Site Web User Interface </span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">SharePoint Designer Interface</span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">InfoPath Designer Interface</span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Visual Studio Interface </span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">SharePoint Central Admin User Interface</span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">STSADM Interface</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">PowerShell Interface (direct to Object Model)</span></p>
<p class="MsoNormal"><span lang="EN-AU">As I highlighted in Part 2, there are plenty of “quick wins”, medium term and long term solutions that can Leverage the SharePoint Platform. You may notice that the “quick wins” can all be implemented using the Web Interface, albeit they are made easier by SharePoint Designer and STSADM in some circumstances (mainly for simplified/wizard development interface and automated deployment respectively).<br />
One thing to point out is although it might make deployment more manageable, it does require significantly more skills and more importantly more liberal access to servers. </span></p>
<h1><span lang="EN-AU">Limitations of the ‘Leveraging Levels’</span></h1>
<p class="MsoNormal"><span lang="EN-AU">I came across a great quote on Twitter the other day which stated that “he spent all his time coding around the limitations of the SharePoint Platform”. I follow the same train of thought as many others on this one and that is that SharePoint is a Platform that is there to be leveraged. It is the building blocks to create solutions and it is not meant to provide full enterprise solutions out of the box on installation. I think this is where a lot of Organisations perceptions of SharePoint are incorrect, as Organisations do not realise the effort that is required to get a full blown solution operational in SharePoint. Organisations overestimate the Platform out of the box functionality and underestimate its complexities and do not provide the correct level of training to the administrators, developers, power users and end users.</span></p>
<p class="MsoNormal"><span lang="EN-AU">On the SharePointDevWiki.com there is a wiki page that outlines the </span><a href="http://www.sharepointdevwiki.com/display/public/SharePoint+Implementation+Approach+Comparison+Chart"><span lang="EN-AU">different Levels that you can Leverage the SharePoint Platform</span></a><span lang="EN-AU"> and highlights what can be done and can’t be done. What this highlights is that there is significantly more “leveraging” available when you start getting into Solution Packages (.wsp’s) and the Object Model. Please keep in mind that this is only available in the Visual Studio and PowerShell interface (or with </span><a href="http://stsadm.blogspot.com/"><span lang="EN-AU">Gary LaPointe’s</span></a><span lang="EN-AU"> STSADM extensions and other 3<sup>rd</sup> Party Products).</span></p>
<p class="MsoNormal"><span lang="EN-AU">When deciding on which ‘Leveraging Level’ you choose, please take into account the limitations &#8211; as this will lead to dead ends in your project where you simply can’t push the Solution any further without changing paths and using another ‘Leveraging Level’. Sometimes dead ends can be mitigated by hacking away at the ‘edges of the Earth’ around the ‘Leveraging Level’ you have chosen for the project, but be aware of the risks of these hacks with regards to upgradeability of the Platform. Another useful wiki page is the </span><a href="http://www.sharepointdevwiki.com/display/public/Comparisons+on+Implementation+Approaches"><span lang="EN-AU">Comparisons of Implementation Approaches</span></a><span lang="EN-AU"> which highlights the pros and cons of using each ‘Leveraging Level’.</span></p>
<p class="MsoNormal"><span><!--[if gte vml 1]&gt;                    &lt;![endif]--><!--[if !vml]--><!--[endif]--></span><a href="http://sharepointmagazine.net/wp-content/uploads/2009/01/featurechart.jpg"><img class="alignnone size-medium wp-image-2518" src="http://sharepointmagazine.net/wp-content/uploads/2009/01/featurechart-251x300.jpg" alt="" width="251" height="300" /></a><br />
<span lang="EN-AU"> Source: SharePointDevWiki.com &#8211; </span><a href="http://www.sharepointdevwiki.com/display/public/Comparisons+on+Implementation+Approaches"><span lang="EN-AU">SharePoint Implementation Approach Comparison Chart</span></a></p>
<h2><span lang="EN-AU">SharePoint Development vs SharePoint Customisation</span></h2>
<p class="MsoNormal"><span lang="EN-AU">Another interesting area that has been discussed recently is related to the ‘Leveraging Levels’ which dictates what the difference is between Development and Customisation. </span><a href="http://www.sharepointdevwiki.com/display/public/Target+Audience?focusedCommentId=1310800#comment-1310800"><span lang="EN-AU">Mark Miller</span></a><span class="nobr"><span> </span></span><span lang="EN-AU">put it well by saying anything that can be done without touching the SharePoint server, for instance, not modifying the 12 hive, inetpub or GAC is a customization. </span><a href="http://www.endusersharepoint.com/"><span lang="EN-AU">EndUserSharePoint.com</span></a><span lang="EN-AU"> focuses on this approach in their articles.</span></p>
<p class="MsoNormal"><span lang="EN-AU">A lot of organizations do not want to run the risk of going further than customization due to the complexities of configuration management. Be aware of the limitations of going down this route. Another common reasons to do it is because of skill sets, when Organisations bring in external expertise to implement a solution, they often want to take on the support internally. This will obviously mean sticking to the skill set of the internal staff which has its limitations also. This is covered in more detail on the </span><a href="http://www.sharepointdevwiki.com/display/public/Defining+SharePoint+Development"><span lang="EN-AU">Defining SharePoint Development</span></a><span lang="EN-AU"> wiki page.</span></p>
<h1><span lang="EN-AU">The People and the ‘Leveraging Levels’</span></h1>
<p class="MsoNormal"><span lang="EN-AU">As discussed in Part 3, I have found that the People tend to grow with the layers:</span></p>
<table class="MsoTableLightShadingAccent5" style="collapse;" border="1" cellspacing="0" cellpadding="0" width="666">
<tbody>
<tr>
<td style="82.6pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;"> </span></strong></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">End Users</span></strong></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">Power Users</span></strong></p>
</td>
<td style="82.7pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">Site Template Developers</span></strong></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">Administrators</span></strong></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">Solution Package   Developers</span></strong></p>
</td>
</tr>
<tr>
<td style="82.6pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">SharePoint Site Web User   Interface </span></strong></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">X</span></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">X</span></p>
</td>
<td style="82.7pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
</tr>
<tr>
<td style="82.6pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">SharePoint Designer   Interface</span></strong></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">X</span></p>
</td>
<td style="82.7pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
</tr>
<tr>
<td style="82.6pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">InfoPath Designer   Interface</span></strong></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="82.7pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
</tr>
<tr>
<td style="82.6pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">Visual Studio Interface </span></strong></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="82.7pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
</tr>
<tr>
<td style="82.6pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">SharePoint Central Admin   User Interface</span></strong></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="82.7pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
</tr>
<tr>
<td style="82.6pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">STSADM Interface</span></strong></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="82.7pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
</tr>
<tr>
<td style="82.6pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><strong><span style="#31849b;">PowerShell Interface   (direct to Object Model)</span></strong></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="78.2pt;" width="104" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="82.7pt;" width="110" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;"> </span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
<td style="88.8pt;" width="118" valign="top">
<p class="MsoNormal" style="normal;"><span style="#31849b;">x</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-AU"> </span></p>
<p class="MsoNormal"><span lang="EN-AU">From this table you can see that the skills required for each Person outlined in Part 3 varies significantly. This is just one way of slicing through the implementation approaches and its complexities, so please don’t underestimate the intricacies of the Platform.</span></p>
<h1><span lang="EN-AU">The ‘Leveraging Levels’ in more detail</span></h1>
<h2><span lang="EN-AU">SharePoint Site Web User Interface </span></h2>
<h3><span lang="EN-AU">Requirements</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Local Access to SharePoint Site via Web Browser</span></p>
<h3><span lang="EN-AU">Skills Required</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Understanding of SharePoint Site Collection Architecture</span></p>
<h3><span lang="EN-AU">Limitations</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Manual stepsrequired, so in a scenario where you want to add a web part to 50 internal Site home pages, the user is going to have to repeat the steps 50 times, once for each Site within an instance of a Site Collection.<br />
</span></p>
<h3><span lang="EN-AU">Examples of use</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> Creating Sites within an instance of a Site Collection</span></span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Adding Web Parts to pages within a Site that is part of an instance of a Site Collection<br />
</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Creating List Templates, Content Types, Site Columns in an instance of a Site Collection<br />
</span></p>
<h2><span lang="EN-AU">SharePoint Designer Interface</span></h2>
<h3><span lang="EN-AU">Requirements</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">SharePoint Designer Client installed locally</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Local Access to SharePoint Site via Web Browser</span></p>
<h3><span lang="EN-AU">Skills Required</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Understanding of SharePoint Site Collection Architecture</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">CSS, XHTML, ASP.NET (Page Layouts, Master Pages)</span></p>
<h3><span lang="EN-AU">Benefits</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> The User Interface is a lot more powerful and easier to operate than the Web User Interface and more options exposed.<br />
</span></span></span></p>
<h3><span lang="EN-AU">Limitations</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Manual steps required, so in a scenario where you want to add a workflow to a List within 50 Sites, the user is going to have to repeat the steps 50 times, once for each List within a Site within an instance of a Site Collection.<br />
</span></p>
<h3><span lang="EN-AU">Examples of use</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Creating a new Page Layout and Master Page for an instance of a Site Collection<br />
</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> Creating a </span></span></span><!--[endif]--><span lang="EN-AU">Basic Workflow on an instance of a List within a Site that is part of an instance of a Site Collection<br />
</span></p>
<h2><span lang="EN-AU">InfoPath Designer Interface</span></h2>
<h3><span lang="EN-AU">Requirements</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">InfoPath client installed locally</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Local Access to SharePoint Site via Web Browser</span></p>
<h3><span lang="EN-AU">Skills Required</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">InfoPath development</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">VB Script experience</span></p>
<h3><span lang="EN-AU">Benefits</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> Lots of functionality that is typically required for Business Forms and extremely fast to prototype forms rather than traditionally writing ASP.NET forms.<br />
</span></span></span></p>
<h3><span lang="EN-AU">Limitations</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Often the forms created require extra functionality that is not available without heavily working around the features of InfoPath.</span></p>
<p><!--[endif]--><span lang="EN-AU"><span>·</span> Manual steps required, so in a scenario where you want to add the Travel expense form in a List to each of the 30 Department sites, you will need repeat the steps to create the List and deploy the InfoPath form for each Site within an instance of a Site Collection.<br />
</span></p>
<h3><span lang="EN-AU">Examples of use</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Creating Business Forms e.g. ‘Leave Request Form’</span></p>
<h2><span lang="EN-AU">Visual Studio Interface </span></h2>
<h3><span lang="EN-AU">Requirements</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Requires access to SharePoint Server to install Visual Studio on directly (recommend a </span><a href="http://www.sharepointdevwiki.com/display/public/Building+a+SharePoint+Development+Environment"><span lang="EN-AU">Development Virtual Machine</span></a><span lang="EN-AU">)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Requires WSS SDK and MOSS SDK</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Remote Access to SharePoint Server required (for deployment)</span></p>
<h3><span lang="EN-AU"><span> </span>Skills Required</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">C#/VB.NET and XML experience</span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Understanding of the SharePoint Object Model</span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Understanding of the SharePoint Solution Package API</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Optional: CAML, XSLT, CSS, XHTML, Web Services</span></p>
<p class="MsoListParagraph" style="-0.25in;">
<h3><span lang="EN-AU">Benefits</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> Repeatability and automation<br />
</span></span></span></p>
<p><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> Self documenting automated scripts and versions of these scripts. Especially useful in a Solutions Integrator where they may repeat the same steps at each client site.</span></span></span></p>
<h3><span lang="EN-AU">Limitations</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> To do what you can manually do in the Web UI or SharePoint Designer often takes a lot longer to construct in a Solution Package within Visual Studio.</span></span></span></p>
<h3><span lang="EN-AU">Examples of use</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Advanced Workflow</span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Creating Feature Receivers to provisioning elements e.g. in a Site</span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Creating Custom Actions to modify user interface of a Site</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Creating List Templates, Content Types, Site Columns programmatically</span></p>
<h2><span lang="EN-AU">SharePoint Central Admin User Interface</span></h2>
<h3><span lang="EN-AU">Requirements</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Local Access to Central Admin Interface via Web Browser</span></p>
<h3><span lang="EN-AU">Skills Required</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Understanding of SharePoint Architecture and Topology</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Experience with SQL, Active Directory, Networking , DNS, Firewalls</span></p>
<h3><span lang="EN-AU">Examples of use</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Configuring SharePoint Farm</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Configuring Shared Service Providers for Enterprise Search, My Sites, BDC, Excel Services</span></p>
<h2><span lang="EN-AU">STSADM Interface</span></h2>
<h3><span lang="EN-AU">Requirements</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Remote Access to SharePoint Server required</span></p>
<h3><span lang="EN-AU">Skills Required</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Same as ‘SharePoint Central Admin User Interface’</span></p>
<p class="MsoListParagraphCxSpMiddle" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Experience with command prompt and .bat files</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Understanding of STSADM commands available</span></p>
<h3><span lang="EN-AU">Benefits</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> Repeatability and automation<br />
</span></span></span></p>
<p><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> Self documenting automated scripts and versions of these scripts. Especially useful in a Solutions Integrator where they may repeat the same steps at each client site.<br />
</span></span></span></p>
<h3><span lang="EN-AU">Examples of use</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Configuring SharePoint Farm</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Configuring Shared Service Providers for Enterprise Search, My Sites, BDC, Excel Services</span></p>
<h2><span lang="EN-AU">PowerShell Interface (direct to Object Model)</span></h2>
<h3><span lang="EN-AU">Requirements</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Remote Access to SharePoint Server required</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">PowerShell installed on Server (included in Windows Server 2008)</span></p>
<h3><span lang="EN-AU">Skills Required</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Experience with PowerShell scripting</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Understanding of SharePoint Object Model</span></p>
<h3><span lang="EN-AU">Benefits</span></h3>
<p class="MsoListParagraph" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> Repeatability and automation<br />
</span></span></span></p>
<p><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> Self documenting automated scripts and versions of these scripts. Especially useful in a Solutions Integrator where they may repeat the same steps at each client site.</span></span></span></p>
<h3><span lang="EN-AU">Examples of use</span></h3>
<p class="MsoListParagraphCxSpFirst" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Programmatically adding Web Parts to Pages in a Pages Library</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;"><!--[if !supportLists]--><span style="Symbol;"><span>·<span style="&quot;Times New Roman&quot;;"> </span></span></span><!--[endif]--><span lang="EN-AU">Programmatically adding Files to a Document Library from a File Store Directory with Meta Data into the Columns of the List Item</span></p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;">
<p class="MsoListParagraphCxSpLast" style="-0.25in;">You can see from the limitations that are listed that it highlights the issues of constructing complexed Sites with forms, lists and workflows as one scenario. It immediately highlights the benefits of using Solution Packages within Visual Studio for repeatability and automation of construction of these sites. One thing to take into consideration which comes up immediately with Organisations with more than one environment (e.g. Dev, Test, Pre-Prod, Prod) is the time it takes to do things manually over having these things automated and repeatable.</p>
<h1><span lang="EN-AU">In Summary</span></h1>
<p>Hopefully you&#8217;ll have an idea of the different leveraging levels in SharePoint Platform now. Next month I will place this content on the wiki page to allow others to contribute to the requirements, skills and examples as I&#8217;m sure there are many more. This is just a starting block.</p>
<p class="MsoListParagraphCxSpLast" style="-0.25in;">
<p class="MsoNormal"><span lang="EN-AU"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-4/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Leveraging the SharePoint Platform (Part 3)</title>
		<link>http://sharepointmagazine.net/news/analysis/leveraging-the-sharepoint-platform-part-3</link>
		<comments>http://sharepointmagazine.net/news/analysis/leveraging-the-sharepoint-platform-part-3#comments</comments>
		<pubDate>Tue, 07 Oct 2008 12:35:30 +0000</pubDate>
		<dc:creator>Jeremy Thake</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[approaches]]></category>
		<category><![CDATA[governance]]></category>
		<category><![CDATA[roles]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=1267</guid>
		<description><![CDATA[This the third post of a six part series on Leveraging the SharePoint Platform. In the last post I explained some of the great things that can be implemented. In this post I will introduce the Governance, the People and the Approach that needs to surround SharePoint.]]></description>
			<content:encoded><![CDATA[<p><a href="http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-1">Part 1 &#8211; What is the SharePoint Platform</a><br />
<a href="http://sharepointmagazine.net/news/analysis/leveraging-the-sharepoint-platform-part-2">Part 2 &#8211; What capabilities to start with</a><br />
Part 3 &#8211; How to start with the SharePoint Platform<br />
Part 4 &#8211; Levels of leveraging the SharePoint Platform<br />
Part 5 &#8211; Why use SharePoint as a Development Platform<br />
Part 6 &#8211; Lessons learnt from Leveraging the SharePoint Platform</p>
<p>This the third post of a six part series on Leveraging the SharePoint Platform. In the last post I explained some of the great things that can be implemented. In this post I will introduce the Governance, the People and the Approach that needs to surround SharePoint.</p>
<p>I hope from reading the first two parts you are under no illusions on the scale of the SharePoint Platform. With this post I hope to point to some great resources out there both from Microsoft and the awesome SharePoint Community.</p>
<p><strong>The Governance</strong></p>
<p>Microsoft defines<a href="http://technet.microsoft.com/en-us/library/cc263356.aspx"> Governance</a> as &#8220;the set of policies, roles, responsibilities, and processes that you establish in an enterprise to guide, direct, and control how the organization uses technologies to accomplish business goals.&#8221;.</p>
<p>You&#8217;ll notice from a lot of the references I use in the post are all 2008, the reason I point this out is because the latest version of SharePoint has been out since November 2006 and it has taken this long for Microoft to raise their game and provide assistance in this area. SharePoint could quite easily become the next SAP behemoth platform that people talk about and never witness being rolled out nto Production (apologies for any SAP lovers out there &#8211; I&#8217;m sure you say the same thing about SharePoint).</p>
<p>There seem to be a collection of sites dotted among the Microsoft network regarding SharePoint Governance:</p>
<ul type="circle">
<li><a href="http://www.codeplex.com/governance">Code Plex</a></li>
<li><a href="http://sharepoint.microsoft.com/gearup/Pages/Governance.aspx">SharePoint GearUp</a></li>
<li><a href="http://technet.microsoft.com/en-us/library/cc263341.aspx">TechNet</a></li>
<li><a href="http://office.microsoft.com/en-us/sharepoint">Office.Microsoft.Net</a></li>
<li>and more from the entire Internet at <a href="http://www.diigo.com/user/jthake/governance+sharepoint">diigo.com/user/jthake/</a></li>
</ul>
<p>Microsoft have published a great <a href="http://technet.microsoft.com/en-us/library/cc261826.aspx">SharePoint Governance Checklist Guide</a> that offers a lot of information around the Platform. They also have provided a template <a href="http://technet.microsoft.com/en-us/library/cc262943.aspx">Governance Plan</a> that can be used at the initiation of the project.</p>
<p>There&#8217;s plenty of information in the links I&#8217;ve listed above and rather than me regurgitate it all here I&#8217;ll let you read these at your leisure.</p>
<p><strong>The People</strong></p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/lego_man_glasses.jpg"><img class="alignnone size-medium wp-image-1302" src="http://sharepointmagazine.net/wp-content/uploads/2008/10/lego_man_glasses.jpg" alt="" width="150" height="259" /></a></p>
<p>This is an area that is covered by the Plans and Checklists that Microsoft provide, but I don&#8217;t believe they are realistic. The problem I have had with most engagements I have been involved with or witnessed around me is that SharePoint is treated in isolation to the rest of the Technologies around it. To emphasise this point further, most environments I have been in even have a separate SQL Server instance just for SharePoint Databases rather than leveraging existing server infrastructure due to the uneasy nature of DBAs not knowing what SharePoint does because Microsoft state that you shouldn&#8217;t touch the Database Schema in ANY way.</p>
<p>With this isolation also becomes resource islands and the common pattern is that the person/role who installs SharePoint, also becomes the person who supports it and keeps it operational. Now in a perfect World, and in Microsoft Plans and Checklists, this would be divided up into separate resources and transitions would occur at various phases to make up a &#8216;Tactical Team&#8217;.</p>
<p>As I highlighted in my first part in this series, SharePoint spans <a href="http://sharepointmagazine.net/wp-content/uploads/2008/08/infrastructure.jpg">multiple Tiers</a>, so immediately, you can see there&#8217;s a lot of specialists skills required that span multiple Microsoft Technologies which alone have their own sophisticated exams and certifications. Various bloggers out there have tried to define this:</p>
<ul type="circle">
<li><a href="http://www.shareesblog.com/?p=194">Sharee English</a></li>
<li><a href="http://www.sharepointblogs.com/mosslover/archive/2007/10/12/key-sharepoint-business-roles-part-2-with-definitions.aspx">Becky Isserman</a></li>
<li><a href="http://www.ericharlan.com/Moss_SharePoint_2007_Blog/sharepoint-projects-roles-and-responsibilities-a108.html">Eric Harlan</a></li>
</ul>
<p>(Please add more in the comments of this post)</p>
<p>All of these approaches are valid and some take it from the Roles and Responsibilities approach and others take it from the Technical Background. Sharee&#8217;s approach in my mind gives the breakdown I have seen naturally evolve in various SharePoint roll outs I&#8217;ve witnessed.</p>
<p>The biggest problem I&#8217;ve seen with the isolation and break down of personnel is that SharePoint always takes the blame, because although it is in isolation, there are some shared resources because it shares resources such as the underlying network, Exchange, ISA, Backup and Active Directory. Also, it just isn&#8217;t a full time role for each isolated tier such as SQL, ForeFront, SMTP and Windows Server.</p>
<p>What do I mean by &#8220;taking the blame&#8221;&#8230;so a User submits a support call to say the Company Intranet is running slowly  (typically they even know it&#8217;s SharePoint and say it&#8217;s SharePoint running slowly), this immediately points the blame at SharePoint. Looking at the tiers in the diagram you can see that potentially it might be the underlying architecture that is the issue. This will involve various experts getting involved and working as a team to resolve the issue. So many times I&#8217;ve had experts in particular areas going &#8220;everything is fine&#8221; to later find out that their area was the reason, because other experts have invested hours of time proving to the nth degree it isn&#8217;t their technology.</p>
<p>This &#8216;Tactical Team&#8217; would also include Developers who as Microsoft put it:</p>
<p style="center;"><em>&#8220;Technically talented people both willing and able to customize, personalize, and use SharePoint in a manner that fulfils the business opportunities as identified by the strategy team. This team is a loosely-knit community of developers with varying degrees of proficiency in software development. Members can range from highly skilled programmers to technically savvy end users in charge of personalizing departmental team sites. Skilled developers will handle large change requests, new features, and program management while ensuring adherence to standards.&#8221;</em></p>
<p>This did make me laugh and also made me feel very self important. I&#8217;m going to cut and paste this into my Profile for future reference! In all seriousness, I don&#8217;t believe that having &#8216;Developers&#8217; is breaking this role up enough. As mentioned in my <a href="http://wss.made4the.net/archive/2008/05/26/solution-development-in-sharepoint-2007.aspx">personal blog</a> there is more than one way to skin a cat in SharePoint. Most of the approaches set SharePoint Developers apart from each other, these are (and not limited to):</p>
<ul type="circle">
<li>Web User Interface Developers &#8211; everything is done within the User Interface using OOTB Web Parts, JavaScript and done directly into production environment.</li>
<li>Site Template Developers &#8211; slightly more advanced than above, involving packaging up Site Templates that can be reused.</li>
<li>SharePoint Designer Developers &#8211; everything is done from with SharePoint Designer and migrated using Content Deployment API or similar tools.</li>
<li>Visual Studio Developers &#8211; everything is a Solution with Features and Powershell automated build scripts</li>
</ul>
<p>There&#8217;s been quite a bit of discussion on the best approach to actually &#8216;skinning the cat&#8217; and Chris O&#8217;Brien has put some <a href="http://www.sharepointnutsandbolts.com/2008/09/sharepoint-dev-strategies-it-not-all.html">great points forward on the table</a>.</p>
<p>I also believe that with these customisations there is some relevance to what was discussed in the last two posts around the SharePoint Capabilities. Most of the SharePoint MVPs have a specialist area within the Platform and may understand the other areas principles but never implemented them. With this in mind I think it is wise to understand the risks of putting a fresh SharePoint Developer onto their first Business Data Catalogue or Enterprise Search project. The current <a href="http://sharepoint.microsoft.com/readiness/pages/search.aspx">SharePoint certifications</a> really don&#8217;t go deep enough into each capability and I&#8217;d like to see more specialisation in each of these with a core WSS Development exam.</p>
<p>Project Managers and Development Team Leaders should be aware of the strengths of their SharePoint Developers and try and identify the gaps in their team based on the requirements of the Organisation. This is further confused by the lack of resources in general in the SharePoint market and the push from recruitment firms and misleading CVs with unexperienced Developers.<a href="http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=90"> Joel Oleson</a> makes some valid points about this issue which also has a HUGE <a href="http://discuss.joelonsoftware.com/default.asp?joel.3.681605">discussion thread</a>. Microsoft are also trying to combat this problem by <a href="http://mssharepointdeveloper.com/">encouraging</a> existing ASP.NET developers to get onboard, this site is a great resource for people ramping up on SharePoint.</p>
<p>Basically, if you have one thing to take away from this section, please be aware of the multitudes of Developers out there and what type is going to suit your sized rollout whether bringing them in-house or outsourcing.</p>
<p><strong>The Approach</strong></p>
<p><a href="http://www.sharepointjoel.com/default.aspx">Joel Oleson</a> is one of the greatest SharePoint Community Members out there in my opinion and has some great posts around this whole area. Way back in October 2007 he announced the <a href="http://blogs.msdn.com/sharepoint/archive/2007/10/05/office-sharepoint-server-deployment-plan-sample.aspx">MOSS Deployment Plan sample</a>.  Before you open it, bear in mind that this has the kitchen sink of tasks in there, but also keep your eyes open as this project plan has a total of 6452 hours split between 10 different resources. Again this break down doesn&#8217;t seem to align with the other Microsoft Plans and Checklists which isn&#8217;t going to make this very easy to use without some work.</p>
<p>Again, with all the references I&#8217;ve linked to, I just want to highlight two main core approaches to rolling out SharePoint into the Organisation. You have the traditional <a href="http://en.wikipedia.org/wiki/Waterfall_model">Waterfall model</a> and the <a href="http://en.wikipedia.org/wiki/Agile_software_development">Agile model</a>. The  Agile model attracts a more iterative approach, which works well with SharePoint due to the features you get out of the box and the speed in which you can get things up and running compared to a more traditional project where you are building everything from the ground up (I will discuss this more in the next part in this series).</p>
<p>As with any Requirements Gathering exercise, Business Users think they KNOW what they want from a system, but often need pushing to be able to explain EXACTLY what they WANT and also sometimes need to be RECOMMENDED what they NEED. <a href="http://erikswenson.blogspot.com/2008/09/gathering-brand-requirements-its-like.html">Erik Swenson</a> does a great job of highlighting some possible decisions that need to be made simply on the User Interface, before you even start getting into functionality requirements of a particular sub system.  My fellow Perth blogger <a href="http://www.cleverworkarounds.com/">Paul Culmsee</a> also offers some advice with a great sense of humour and bitterness on this.</p>
<p>By following an iterative process, where you deliver in small chunks what a Business User asks for produces more responsive and early feedback. This allows the system to evolve as the Business User sees the interface working for them with their data. These prototypes can then be taken away to give them stability and shelf life to go into production.</p>
<p>This iterative approach does not lend itself well to the Waterfall method where there is a more formalised process up front of: gather requirements; documenting these into a Functional Design Document; then handing this to someone to produce a Detailed Design of how it will be implemented by the SharePoint Platform.<br />
Traditionally Business Users don&#8217;t actually get to see or interact with anything until well after the Detailed Design is complete and the Implementation is in full swing. From here, it is likely that requirements change and scope creep occurs and then Functional and Detailed Design documents are immediately out of date.<br />
A lot of SharePoint projects are very poorly documented due to the ease of which it is implemented and changed and this is something to highlight early on to the entire team&#8230;that Documentation is required! It is important to treat Releases as strict as you would a ASP.NET project for various reasons:</p>
<ul>
<li>Developers can look in source control and see what&#8217;s in Test/Production at any given time;</li>
<li>A sense of achieving a goal if you have specific release dates;</li>
<li>Formalised testing done as part of release process;</li>
<li>If things are packaged and automated properly, SharePoint Admins can be handed the package to run in Test and then once approved run in Production&#8230;rather than Developers getting involved;</li>
<li>Producing an As Built Document of the release, so that if a new team comes in to support it, they don&#8217;t have to go digging through code, environments and e-mails to work out what it is doing;</li>
<li>All of which encourages a formal transition to support for the release.</li>
</ul>
<p>I would recommend treating the installation of SharePoint as a completely separate project to any Solution you wish to deliver to the Organisation. The main reason for this is that it often involves very different resources than those involved with creating the Solutions on top of this Platform.</p>
<p>The Waterfall methodology does work well when it comes to the Infrastructure and Setup of the Environments. Many Integrators out there repeatedly do this for new customers who have purchased SharePoint licenses and have formalised approaches for this. I would strongly agree using an Integrator, rather than doing this internally as a self learning exercise, due to the complexities of the setup. It may look like a simple Wizard you run, but there are plenty of minor details that can cause all sorts of havoc later down the track. As mentioned before about the isolation, this is mainly due to the complexities of the platform which runs a risk of having more applications servers running on the environment leading to too many permutations when it comes to fixing a problem.</p>
<p><strong>Scenario</strong></p>
<p>At this point I&#8217;d like to raise a scenario which I&#8217;m sure most SharePoint Integrators reading this will nod their head repeatedly at.</p>
<p>So Microsoft have finally managed to persuade you to purchase the MOSS 2007 Standard/Enterprise license and the IT Manager has the media in his hands. The various technical whitepapers have been read and hardware has been purchased for a Database server and a Application server.</p>
<p>The Server Admin is sent off to install Windows Server on the two servers. The database server is then handed off to the DBA to install SQL. The thumbs up occurs and the SharePoint Admin installs MOSS on the Application server. The SharePoint Admin gives the thumbs up and they all get together to ensure that everything is being backed up.</p>
<p>A quick company logo is added to the header of the OOTB Blue SharePoint Theme and team sites are created for company divisions: Public Relations, Human Resources, IT and Finance. Division Managers are given full control of their Division Team Site and all members of the Division governed by Active Directory are given Contribute access.</p>
<p>Over the course of 3 months, various ad-hoc projects occur:</p>
<ul type="circle">
<li>Custom Web Parts have been added to particular Divisions;</li>
<li>modifications are made to the look and feel using SharePoint Designer;</li>
<li>InfoPath forms are suddenly replacing Word Documents for Time Sheets and Annual Leave forms with custom SharePoint Designer workflow;</li>
<li>Columns have been added to certain Division Document Libraries;</li>
<li>And the list of Business  Users with Power goes on&#8230;</li>
</ul>
<p>6 months later, Users start complaining:</p>
<ul type="circle">
<li>Users can&#8217;t find documents in the search; and</li>
<li>inconsistencies in how Document Libraries are set up make it hard for Users to know what to do;</li>
<li>Users don&#8217;t know the most appropriate Document Library to use because the person who set them all up has left the organisation;</li>
<li>Users want extra functionality out of the Web Parts/InfoPath Forms that have been installed, but the person who installed them has left;</li>
<li>Also, Patches are released for SharePoint that need to be put on and fears around customisations that have been created being lost occur.</li>
</ul>
<p>So a SharePoint Development Team is brought in-house or outsourced to follow up on these requirements. Immediately the team require a Development environment and the Project Manager wants a Test Environment for testing the updates and deployments before they go into Production. Issues are raised on the best ways to get Deployments from Development to Test to Production and also how to get Content from Production down to Test down to Development to give some realistic working data to test on (more on this coming on my blog).</p>
<p>18 months later, the CIO starts to raise concerns about how all this is being controlled and wants to start rationalising what people can and can&#8217;t do (from the list above) without going through a formalised process. This in my opinion is too little too late.</p>
<p>What I am trying to illustrate here is that if you put SharePoint into an Organisation you have to start Governing it straight away and take Roles and Responsibilities seriously. To the point where it is defined in Job Roles throughout the organisation and part of the Handover process when personnel move or leave the Organisation. The OOTB permissions that are giving to an &#8220;Owner&#8221; of the Division is far too much and should be giving to Owners at the IT Departments discretion.</p>
<p><strong>In Conclusion</strong></p>
<p>At this point, it is also worth mentioned that there is a programme that Microsoft have put together called the <a href="https://iwsolve.partners.extranet.microsoft.com/sdps/">SharePoint Deployment Planning Services</a> program. Basically Microsoft will pay its Partners to deliver a qualifying SharePoint deployment plan to their customers through on-site consulting sessions. The clients must have Software Assurance and the length of the session (one, three, five, ten or fifteen) depends on the agreement. So if you have Software Assurance please speak to your Microsoft representative and make the most of this opportunity.</p>
<p>Microsoft have also released this PDF on <a href="http://www.microsoft.com/downloads/details.aspx?familyid=b72ef7b3-0291-4c15-b669-e94c685b00ba&amp;displaylang=en&amp;tm">Risk and Health Assessment for MOSS Server</a> by Microsoft as part of their Premium Support package. This again is probably to combat those environments that just aren&#8217;t set up correctly, for example hitting 100% CPU with 5 users or Maxing out on RAM.</p>
<p>The recent success of the <a href="http://www.sharepointbestpractices.com/home">Best Practices Conference</a> in the US last month also pays testament on the awareness being raised within the Community. I have also noticed that plenty of training companies out there are also offering specific SharePoint Planning and Governance courses such as <a href="http://www.tedpattison.net/Courses/SPG301.aspx">Ted Pattison</a> , <a href="http://www.setfocus.com/partners/training/governance.aspx">Set Focus</a>, <a href="http://www.sharepointplan.com/mark_schneiders_sharepoin/2008/07/sharepoint-gove.html">Mark Schneider</a> (please add more in comments below).</p>
<p>The next part in the series will talk more in detail about the tools out there and how to leverage them.</p>
<p>Until next time,</p>
<p>Jeremy Thake</p>
<p><a href="http://wss.made4the.net/">http://wss.made4the.net/</a> | <a href="http://www.readify.net/">http://www.readify.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/news/analysis/leveraging-the-sharepoint-platform-part-3/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Leveraging the SharePoint Platform (Part 2)</title>
		<link>http://sharepointmagazine.net/news/analysis/leveraging-the-sharepoint-platform-part-2</link>
		<comments>http://sharepointmagazine.net/news/analysis/leveraging-the-sharepoint-platform-part-2#comments</comments>
		<pubDate>Tue, 02 Sep 2008 07:50:58 +0000</pubDate>
		<dc:creator>Jeremy Thake</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[records]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=668</guid>
		<description><![CDATA[This the second post of a six part series on Leveraging the SharePoint Platform. In the first post I introduced at a high level the Capabilities, the Editions, the Infrastructure and the API of the SharePoint Platform. In this post I will give my own opinion on what capabilities to start with and what ones to use Open Source/Partner Solutions with or to wait for SharePoint 2009.]]></description>
			<content:encoded><![CDATA[<p><a href="http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-1">Part 1 &#8211; What is the SharePoint Platform</a><br />
Part 2 &#8211; What capabilities to start with<br />
Part 3 &#8211; How to start with the SharePoint Platform<br />
Part 4 &#8211; Levels of leveraging the SharePoint Platform<br />
Part 5 &#8211; Why use SharePoint as a Development Platform<br />
Part 6 &#8211; Lessons learnt from Leveraging the SharePoint Platform</p>
<p>This the second post of a six part series on Leveraging the SharePoint Platform. In the <a href="http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-1">first post</a> I introduced at a high level the Capabilities, the Editions, the Infrastructure and the API of the SharePoint Platform. In this post I will give my own opinion on what capabilities to start with and what ones to use Open Source/Partner Solutions with or to wait for SharePoint 2009.</p>
<p>I&#8217;d like to point out up front that this is my <strong>own</strong> opinions on what capabilities to start with. All organizations may start with a particular Solution in mind which has got them the budget to go ahead and implement what they require using the SharePoint Platform. These recommendations demonstrate the maturity of the Capabilities of the Platform and it&#8217;s complexity/immaturity in others.</p>
<p>In terms of leveraging Open Source and Partner Solutions on top of SharePoint Platform, I&#8217;d also like to point out that this series is by no means going to be a full listing of available options. When I stated &#8216;best of breed&#8217; solutions in my previous post, I wasn&#8217;t intending to include all of them. The Solutions that I listed are the ones in my mind that are getting exposure in the 300+ blog feeds that I read every week as well as in case studies and the local Australian marketplace.</p>
<p>OK, so now that I&#8217;ve covered my bases on those points, lets get started I guess. As I discussed in the previous post Microsoft try and make SharePoint out to be everything to everyone. Reading through their six Capability areas it pretty much covers off most things you&#8217;d want to implement in your business. What Microsoft don&#8217;t really tell you is what is there &#8220;out of the box&#8221; with a little configuration, and what takes a degree of effort, to fulfil your needs. This extra effort can involve considerable planning utilizing the OOTB technology or having to expand on top of what is there with custom development involving specialists resources.</p>
<p>As I have quoted in many user group presentations and client meetings&#8230;SharePoint is not best of breed in a lot of the areas it markets itself in and only really &#8216;ticks the box&#8217; in terms of functionality in some, the big advantage is that it is a unified Platform. The unified Platform argument doesn&#8217;t really stand up for itself as well as it used to though when you think of Wikipedia, Digg, Twitter, Blogger and other consumer platforms that happily coexist and also with the large Enterprise push on Service Orientated Architecture.</p>
<p>I will try and elaborate and provide sources of information by breaking up the capabilities and their sub areas with reference to various case studies and articles. As with most organizations that invest in a technology they wish to see results and fast&#8230;so as well as highlighting the strengths of the platform I will also highlight the &#8216;Quick Wins&#8217; of each capability area to further point your rollouts towards a high &#8216;SharePoint Adoption&#8217; with visible Return on Investment.</p>
<p>I&#8217;ve also added some star ratings in the Quick Wins to show what I would say are the easiest things for an Organization to plan and configure based on no experience in SharePoint with someone who can follow instructions. 1 star is easy and 5 stars is most complex and really needs someone with SharePoint experience. In later parts in this series I will elaborate more on this, it basically gives you a more realistic view of what is something Business Users can do over what requires &#8220;SharePoint Ninjas&#8221;.</p>
<p><a href="/Documents%20and%20Settings/thajer1/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/89a4a990-b128-4bb4-b6d3-7c19fac97cc4/image5.png"></a></p>
<p><strong>Collaboration and Social Computing</strong></p>
<p><strong>Quick Wins</strong></p>
<p><em>Project Site <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>There&#8217;s no story more compelling than &#8220;<a href="http://en.wikipedia.org/wiki/Eat_one%27s_own_dog_food">eating you&#8217;re own dog food</a>&#8221; so why not use SharePoint to plan and manage your SharePoint rollout? Obviously this does entail some prior planning to get the hardware and installing it somewhere. It doesn&#8217;t stop you having a small WSS 3.0 instance on a Windows Server 2003 machine with it&#8217;s own Db to start with and migrating it later. There are lots of advantages to this, the one that comes to mind the most for me is that it gets you and the team rolling out SharePoint as consumers to the platform rather than understanding the technology and never actually using it day to day. For instance, one thing that I realized very quickly is that OOTB SharePoint Calendar&#8217;s don&#8217;t aggregate in the web interface, but Outlook 2007 has a way to load up multiple calendars and overlay them.</p>
<p><em>Incoming E-mail <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>E-mail integration is a very powerful way of collecting information and can automate a lot of processes where a Admin Assistant would be taking received email and saving the attached files to a file share/document library. Once you have incoming email configured on your server at installation and set up delegation in Active Directory it&#8217;s once configuration step away from any list in SharePoint acting as a drop box for email.</p>
<ul>
<li><a href="http://www.diigo.com/user/jthake/sharepoint%2Bemail+configuration?tab=250">Incoming Emails</a></li>
</ul>
<p><em>Surveys <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>As well as running the SharePoint rollout project within SharePoint, there are other technologies you can leverage early on to gain feedback. SharePoint Surveys for Quick Polls are extremely easy to setup and report on. I will point out here though that the rendering of these surveys are very very limited and please don&#8217;t think this will replace tools such as Survey Monkey with branched questions etc.</p>
<ul>
<li>A <a href="http://www.sharepointblogs.com/ggill1970/archive/2008/04/02/creating-custom-views-on-surveys.aspx">useful article</a> on customizing views on Surveys</li>
</ul>
<p><em>Famous 40 Templates <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>If someone can point me to a SharePoint blog anywhere that doesn&#8217;t have a post about the Famous 40 Templates I&#8217;ll buy them a beer! It&#8217;s pretty much where all &#8220;dabblers&#8221; start off. These templates are not only a good way to kick start a particular themed solution, but for developers are a great way to look under the hood and see how it&#8217;s all hooked together.</p>
<ul>
<li><a href="http://www.microsoft.com/sharepoint/templates.mspx">Microsoft SharePoint Templates</a></li>
</ul>
<p><strong>Medium Term</strong></p>
<p><em>People and Groups </em></p>
<p>The ability to have Groups within SharePoint containing Users (AD Users or AD Groups) and allowing End Users to manage them is a large jump. Management of Active Directory is a beast of it&#8217;s own and this is typically controlled by Operations&#8230;so why would this be any less scary? Unless you can have extremely clear guidelines on this it will turn ugly and will lead to a phenomena not far from Facebook &#8220;Friends&#8221;. How many of you just permanency add Facebook Users you see but never actually go back and look at their profiles etc. These people can see your entire profile, imagine that concept internally to an Owner of a Site that has Information there and has control of who can and can&#8217;t see it by adding Users and Groups at their disposal. I would recommend keeping Operations control over security and permissions of SharePoint based on AD groups and roles until the Information Architecture matures and stabilizes.</p>
<ul>
<li><a href="http://www.diigo.com/user/jthake/sharepoint+security+planning">Security Planning</a></li>
</ul>
<p><strong>Long Term</strong></p>
<p><em>Presence </em></p>
<p>Presence is something that if you&#8217;re a early adopter of Unified Communications, this is a great Quick win, but more likely this will be something to further leverage the SharePoint Platform when your organization finally gets approval to roll out UC.</p>
<p><strong>What to wait to mature</strong></p>
<p><em>Wikis </em></p>
<p>The Wiki technology in SharePoint is one of the biggest features I would claim is a &#8220;tick in the box&#8221;. In comparison to most other Wiki platforms out there this is extremely week. The HTML editing and ability to insert pictures/objects into pages pushes people away to using other platforms or Microsoft tools such as OneNote. I would recommend either waiting for this to improve or looking at 3rd Party Products.</p>
<ul>
<li><a href="http://www.diigo.com/user/jthake/sharepoint+wiki">Wiki</a></li>
</ul>
<p><em>Blogs </em></p>
<p>This is another &#8220;tick in the box&#8221; for me, yes you can have multiple blogs and yes they&#8217;ll support RSS feeds like all SharePoint lists, but OOTB you cannot get RSS feeds for categorised posts and you can&#8217;t have more than one category per post.</p>
<ul>
<li><a href="http://www.codeplex.com/CKS/Release/ProjectReleases.aspx?ReleaseId=5134">CodePlex CKS:Enhanced Blog Edition</a></li>
</ul>
<p><em>Tagging + Rating </em></p>
<p>Pushing further on blog posts and multiple categories is the whole social space around tagging items. Take digg, diigo, de.li.cious as good examples of this technology at work. OOTB SharePoint doesn&#8217;t cater for this but fortunately the Open Source community at CodePlex have started to offer solutions.</p>
<ul>
<li><a href="http://www.diigo.com/user/jthake/sharepoint+tags">Tags</a></li>
<li><a href="http://www.codeplex.com/spdocrating">CodePlex Rating</a></li>
</ul>
<p><strong>What to avoid early on</strong></p>
<p><em>Wikis + Blogs</em></p>
<p>Not just from a limited functionality perspective, but also from a paradigm&#8230;these technologies are not something that will be easily adopted in an organisation. My suggestion would be to get people comfortable from the move away from File Shares and E-mails for storing Information before suggesting anything as &#8220;high-tech&#8221; as wikis and blogs.</p>
<p><a href="/Documents%20and%20Settings/thajer1/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/89a4a990-b128-4bb4-b6d3-7c19fac97cc4/image8.png"></a></p>
<p><strong>Portals</strong></p>
<p><strong>Quick Wins</strong></p>
<p><em>Intranet &#8211; Phase 1 <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>It is important to set very tight scopes of work when creating your Intranet and not to try and produce the masterpiece in your first attempt. I would recommend starting with the usual: HR site as a like Employee Self Service Information pages; Corporate Affairs posting Organization news; and then a very basic site template with a homepage for each individual Business Unit where they can upload Static Documents, that have been approved externally to SharePoint, that may be used by the Organization e.g. Finance for Expense Claim forms etc.</p>
<p><em>Mobile workforce <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>This is a great quick win for any Organization with a mobile workforce. All the SharePoint interfaces will work on a mobile operating system, and especially so on Windows Mobile Platform (no surprise there). Admitted it isn&#8217;t the best interface in the world, but at least the information is out there for these devices to consume.</p>
<p><em>Document Aggregation Web Parts <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>Not for one minute am I saying that Document Aggregation Web Parts are the answer to your Document Management issues, but in the sense that you can use them to show views of multiple areas within the Intranet in one location will make findability that much easier.</p>
<p><em>3rd Party Web Parts <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>Most Organization will have a bucket full of systems and most major systems now have some sort of integration with SharePoint and they don&#8217;t currently, are racing away in the developer dungeons to get some. This again, is a great way of presenting information in a unified place without too much effort required.</p>
<p><strong>Medium Term</strong></p>
<p><em>Intranet &#8211; Phase 2</em></p>
<p>After the initial phase is ticking over nicely and you have Business Stakeholders in place for your specific areas (dependent on the taxonomy you go for), you can now start to increase the functionality available to them. I would start by allowing them to make requests for particular systems to be migrated underneath their areas such as Image Libraries, specific Custom Lists to store information usually stored statically in Excel spreadsheets etc.</p>
<p><em>MySites Phase 1</em></p>
<p>I think the general consensus is that most people out there now are comfortable with Facebook and the concepts behind having a profile. MySites give Users their own profile within SharePoint. I would start by giving all individuals in the Organization a MySite and limiting their Site Allowance to an agreed Mb allocation. They can then go in and utilize the area to update their profile information, groups and colleagues from here. Providing a simple Document Library will also give them an area to start to get comfortable with the process of working on documents within the SharePoint platform rather than within their specific area site visible by everyone.</p>
<ul>
<li><a href="http://blogs.msdn.com/markarend/archive/2008/02/22/mysite-pages-and-architecture.aspx">MySite Architecture</a></li>
<li><a href="http://blogs.msdn.com/sharepoint/archive/2007/03/22/customizing-moss-2007-my-sites-within-the-enterprise.aspx">Customising Look and Feel</a></li>
</ul>
<p><strong>Long Term</strong></p>
<p><em>MySites Phase 2</em></p>
<p>Once Users are comfortable with editing their profile you can start opening up the functionality available to them to creating their own sub sites/workspaces and ability to create multiple pages. These sites can then be opened up and Users given control of who can see their sub sites/workspaces to allow them to collaboratively work together and take ownership of the areas.</p>
<p><em>Role Specific Sites</em></p>
<p>As with the Famous 40 Templates, there are some example Roles based templates available. These give you a great indication of the power of having Roles based views of Information. The reason I say these are long term solutions is that it takes a large understanding of your User base and Organization to come up with segments and views of Information that will be valuable and worth investing time to develop.</p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8248ab85-3ef7-4dd2-a5a6-2615683f6f6d&amp;DisplayLang=en">Roles-Based Templates for SharePoint My Sites &#8211; Under the Hood</a></li>
</ul>
<p><em>Extranet Portals</em></p>
<p>Not for the feint hearted because of all the dependencies on Firewalls, HTTPs, Certificates etc., but can be extremely beneficial to expose Information that is stored internally to the Organization to external parties. There is serious consideration needed here on how this is implemented as there are so many scenarios.</p>
<p><strong>What to wait to mature</strong></p>
<p><em>&#8220;Colleagues and Membership&#8221;</em></p>
<p>This to me is another &#8220;tick in the box&#8221; area of SharePoint where they wanted to get something similar to LinkedIn and Facebook but just didn&#8217;t quite get anywhere near it. I would definitely hold off for SharePoint vNext because I&#8217;m sure this will be pushed harder with stronger functionality about the connections with colleagues and also how groups communicate with each other in Team Sites. For now, it gives the ability to add yourself to a group and link to colleagues for everyone else to see.</p>
<p><strong>What to avoid early on</strong></p>
<p><em>&#8220;Biting off more than you can chew&#8221;</em></p>
<p>Global domination within SharePoint is only recommended to the fully trained SharePoint Ninja&#8217;s of the World. My only advice here is to start small and tackle one problem at a time rather than pitching SharePoint as the answer to every problem in your organisation. Small goals will lead to small rewards that are tangible and occur quickly, large goals may take years and with little visibility of results until they are fully implemented.</p>
<p><a href="/Documents%20and%20Settings/thajer1/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/89a4a990-b128-4bb4-b6d3-7c19fac97cc4/image2.png"></a></p>
<p><strong>Enterprise Search</strong></p>
<p><strong>Quick Wins</strong></p>
<p><em>People Search Phase I <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>By far the easiest win out there is the People Search when you already have Active Directory in place. This can replace your Company Phone list. It is great for finding people by location, department, role or title. One warning though is that it will highlight issues with AD information that may not have surfaced before to End Users!</p>
<ul>
<li><a href="http://blog.henryong.com/2007/03/14/how-to-customize-people-search-results/">Customise People Search Results</a></li>
</ul>
<p><em>Federated Search <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>SharePoint&#8217;s ability to crawl content sources and provide a federated search across all of them is another powerful way of bringing all the Organizations Information together. This information can be web sites (existing Intranets/Internets, custom systems, public Internet sites) and file stores.</p>
<p><strong>Medium Term</strong></p>
<p><em>Search Results</em></p>
<p>SharePoint search can also allow you to customize how the search is rendered. This is great if you want to display more properties in your results without the Users having to click into the actual found item to see information on it.</p>
<p><em>Tailored Searches</em></p>
<p>Start to provide some tailored Advanced Searches as custom Web Part forms to users that can find those Minutes for a Sales Meeting last month where &#8220;Fred&#8221; attended. There is a lot of power in presenting different ways of discovering Information in SharePoint.</p>
<p><strong>Long Term</strong></p>
<p><em>BDC Search</em></p>
<p>Expose information from external sources via the linked in search capabilities of BDC. It allows Users to be able to get at information that would normally mean logging into another system with another set of credentials. It also means that the  Organization doesn&#8217;t have to roll out the thick-click application to all Users machines if there is enough Information exposed via the SharePoint web interface.</p>
<p><strong>What to wait to mature</strong></p>
<p><em>Faceted Searches</em></p>
<p>This is an area that crept in during the SP1 upgrade and started life as a sub project on CodePlex and wrapped up into the update. I would suggest not pitching this as the killer app within SharePoint just yet, it&#8217;s got some great features that will no doubt continue to mature with the passion behind who&#8217;s developing it in future releases.</p>
<p><strong>What to avoid early on</strong></p>
<p><em>Information Overload</em></p>
<p>One thing that I&#8217;ve noticed on various implementations so far is that often people Index too much information. You may be saying &#8220;there&#8217;s no such thing&#8221;&#8230;but there is. Users will use very open ended searches, like they do in Google, and find too much Information. As an Organization you have to be responsible for training Users on finding Information via Advanced Searches and Scoped Searches. There is a lot of great syntax you can add to trim down your results without a advanced search screen. Try and work out some key scenarios of what Users will want to search for.</p>
<ul>
<li>Box Fox is in the middle of a great set of <a href="http://masteringsharepoint.com/blogs/bobmixon/archive/2008/08/03/sharepoint-findability-and-your-intranet-series-registration-available.aspx">web casts on Findability</a> which tries to tackle this.</li>
</ul>
<p><a href="/Documents%20and%20Settings/thajer1/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/89a4a990-b128-4bb4-b6d3-7c19fac97cc4/image11.png"></a></p>
<p><strong>Enterprise Content Management</strong></p>
<p><strong>Quick Wins</strong></p>
<p><em>Document Management Phase 1 <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>With a simple Site created you get a Document Library that you can upload Documents to. To familiarize your Users I would recommend starting off with something this simple without complicating the issue with too much with asking for MetaData. Get the Users comfortable with uploading and editing Documents in a web interface rather than a File Share. Organisations often assume that Users will pick all this up quickly but this is not always the case.</p>
<p><em>WCMS Phase 1 <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>The ability to create an Intranet/Portal and provision various inter-related sub sites comes hand in hand with managing the Content on the pages of these sites. The Web Content Management System functionality migrated from MCMS 2003 have taken full advantage of the Master Page/Page Layout architecture of ASP.NET 2.0 as discussed in Part 1. The ability for Users to use the Page Editing Toolbar to edit pages in designated Web Part Zones can let them go for Gold adding Content. The Users can be as creative as they like by using a Rich Text Editor Control in a Editable Content Area on a Page Layout or they can add a variety of other Web Parts from the Gallery. I would recommend training Users on the basic of Page Editing and showing them how to utilize the basic Web Parts and Editable Content Areas of Page Layouts. Unfortunately there is no easy way to control what Roles of Users can see what Web Parts in the Gallery, it&#8217;s all or nothing. I would also limit the Users in Page Creation here and hold this control at Operational level to let them make the decision of whether it&#8217;s a page, sub site or existing item etc.</p>
<p>One thing that people do take for granted is the fact that you can integrate WCMS functionality with DMS functionality which is rare in most other competing products such as Documentum and Opentext. This is a great advantage to end Users as the same system training can cover both applications. It almost fuse them as one which is a lot easier for Users because other systems seem frustrating to them with such clear separation where they want to link the two.</p>
<ul>
<li><a href="http://www.diigo.com/user/jthake/sharepoint%2Bwcm?tab=250">SharePoint WCM</a></li>
<li><a href="http://www.google.com.au/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.andrewconnell.com%2Fblog%2F&amp;ei=QRC0SKahLIGKtALVwLmXBw&amp;usg=AFQjCNGC7FdZ8X46yVJQbXmsAbApyxRMQA&amp;sig2=VQYJeVM0sTtdsG6LfMS0aw">Andrew Connell&#8217;s blog</a> is the best place to start for WCM</li>
</ul>
<p><strong>Medium Term</strong></p>
<p><em>WCMS Phase 2</em></p>
<p>Once the Users are comfortable with WCMS basic functionality you can start opening up the Page Layouts to give them more options. Developing customized Web Parts for displaying videos and flash can give Users a more interactive experience. You will find that giving the Users specific training in further Web Parts available to them will empower them to develop more complex Content Pages&#8230;these Web Parts have always been available to them but the majority of Users won&#8217;t be comfortable &#8220;playing&#8221; until they&#8217;re shown.</p>
<p><em>Document Management Phase 2</em></p>
<p>SharePoint has extremely powerful integration with the Microsoft Office 2007 product line. For instance, when opening a word document, the metadata stored for the Document in the SharePoint List is integrated in the same window, rather having a separate web or windows interface for filling it out. Checking in and checking out documents and other workflow tasks can also be done without reaching back to the web interface.  With this integration it can make moving towards storing Metadata for documents as well as introducing Workflows a slightly smaller step. Again, phasing metadata and workflow separately can also help the learning curve.</p>
<p><strong>Long Term</strong></p>
<p><em>Information Rights Management </em></p>
<p>This is definitely something you just don&#8217;t turn on. It needs some planning, ownership and control around it. This is something that really should only apply where the functionality is required and lends itself to Records Management which I discuss next.</p>
<p><strong>What to wait to mature</strong></p>
<p><em>Records Management</em></p>
<p>It is widely documented and I agree that Records Management was another &#8220;tick in the box&#8221; for SharePoint to get the Enterprise Content Management capability in play. With no OOTB functionality for Transmittals and Compound Documents you will find most Records Managers not wanting to touch SharePoint with a barge poll. There has been some work to get DoD certification, but this has not been publicly released.</p>
<ul>
<li><a href="http://technet.microsoft.com/en-us/library/cc262578.aspx">Records Management Guide for MOSS 2007</a></li>
</ul>
<p><em>Document Imaging</em></p>
<p>OOTB SharePoint does not have any components that handle Document Imaging. There are plenty of Products out there on the market that can handle SharePoint Document Libraries being the repository for the scanned images and processing them. I think this is an area that Microsoft will want to get into though at some stage.</p>
<p><em>Multi-Lingual </em>Web Sites</p>
<p>Multinational organizations wanting a full WCMS platform often require Multi-Lingual sites and SharePoint has not got a fully versed answer for this with its Variations functionality in my mind. This functionality will mature in time and come to be more competitive to other stronger WCM products out there.</p>
<p><strong>What to avoid early on</strong></p>
<p><em>Accessible Web Sites</em></p>
<p>There are plenty of public Internet web sites out there on the SharePoint Platform but a lot of them have accessibility problems and if they don&#8217;t are certainly not using the OOTB JavaScript, Web Parts, Master Pages and Page Layouts provided. There is considerable work involved in getting an accessible web site out of SharePoint currently.</p>
<ul>
<li><a href="http://www.diigo.com/user/jthake/sharepoint%2Baccessibility?tab=250">SharePoint Accessibility</a></li>
</ul>
<p><em>High Load Web Sites </em></p>
<p>As stated above, there are plenty of public Internet web sites out there now and a lot of them have sub second response times. There is significant work involved in getting these rendering times down this low and mean not using a lot of the OOTB technology. There are various Caching approaches in the Platform that can aide here, but this will only take you so far.</p>
<p><em>Large File Document Repositories </em></p>
<p>I remember when the SharePoint 2007 was released and the Database Administrators (DBA&#8217;s) of the World were up in arms over the proposal of storing everything in a SQL Database. BLOBS have always been a contentious issue between Developers and DBA&#8217;s and this didn&#8217;t help the matter. There are plenty of White Papers out there on this, but it really needs considerable planning and effort to ensure that performance of 10Mb+ documents are close to User expectations. With the abilities of SharePoint Search, it is not necessary to store ALL your information in SharePoint and this is something definitely worth bearing this in mind.</p>
<ul>
<li><a href="http://office12.blogspot.com/2007/06/sharepoint-and-large-files-1gb-in.html">SharePoint and Large Files</a></li>
<li><a href="http://blogs.msdn.com/sharepoint/archive/2007/01/02/is-the-file-server-dead.aspx">Is the file server dead?</a></li>
<li><a href="http://blog.gavin-adams.com/2007/06/28/configuring-large-file-support/">Configuring Large File Support</a></li>
</ul>
<p><a href="/Documents%20and%20Settings/thajer1/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/89a4a990-b128-4bb4-b6d3-7c19fac97cc4/image14.png"></a></p>
<p><strong>Business Process and Forms</strong></p>
<p><strong>Quick Wins</strong></p>
<p><em>Data Capture with Simple Web Forms <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>InfoPath is a great tool for getting Developers to build Data Capture Forms quickly. Organization tend to start with simple forms such as: Annual Leave Forms, Time Sheets and Safety Reports. With InfoPath Forms Services it allows these forms to be hosted as a web page rather than being reliant on InfoPath Client. This stops the reliance of a roll out of InfoPath to occur. One thing to bear in mind is you don&#8217;t necessarily have to keep the submitted InfoPath form xml in a Form Library, instead you can push data directly into SharePoint List or external data system via web services etc. So the InfoPath Form is simply a dumb entry screen that submits the information collected in a validated way.</p>
<ul>
<li><a href="http://www.diigo.com/user/jthake/infopath+sharePoint+development">InfoPath Development</a></li>
</ul>
<p><strong>Medium Term</strong></p>
<p><em>Workflow based forms</em></p>
<p>Once you&#8217;re comfortable with capturing information using InfoPath forms you can take the next step into modeling your Business Processes using workflow using SharePoint Designer. This allows you to control the statuses of a form submission such as the Annual Leave form from the Employee to the Line Manager, then to Payroll. The trick here is to keep these processes simple and not to overcook them! Utilizing the creation of tasks in task lists can also prevent the reliance on workflow emails as the only way for people to track what responsibilities they have in the process.</p>
<ul>
<li><a href="http://www.diigo.com/user/jthake/infopath+sharePoint+workflow">InfoPath Workflow</a></li>
</ul>
<p><strong>Long Term</strong></p>
<p><em>Empowering Users to Create Forms</em></p>
<p>With InfoPath comfortably in the Organisation and Users aware of where it can be powerful you can start empowering Users to generating their own InfoPath Forms for their Business Areas.</p>
<p><em>Visual Studio Workflows</em></p>
<p>Visual Studio workflows are basically .NET 3.5 Workflow Foundation technology and are a little more involved than SharePoint Designer workflows, requiring .NET Development experience. This allows more controlled deployments of workflows and the ability to extend process steps to do such things as call off to web services or store things in databases that aren&#8217;t available with the out of the box SharePoint Designer Workflow Activities.</p>
<ul>
<li><a href="http://www.diigo.com/user/jthake/sharepoint%2Bworkflow?tab=250">SharePoint Workflow</a></li>
</ul>
<p><strong>What to wait to mature</strong></p>
<p><em>Methodology for version management of forms</em></p>
<p>As mentioned above, .NET 3.5 Workflow Foundation technology is at the core of workflows and can be considerably scary when it comes to version management. For instance, imagine you have 50 annual leave forms submitted and the business decide to add another approval step&#8230;does this mean that all existing instances of the workflow need to have this step or just new ones? These kinds of decisions take some &#8220;tweaking&#8221; when you deploy the package and are things not often thought about until they occur. Some prior planning and waiting for some best practices to come out around this space will assist in the future.</p>
<p><em>SharePoint Designer Custom Workflows</em></p>
<p>A drawback with the power of allowing Users to create their own workflows in SharePoint Designer is that they&#8217;re not portable and are attached to an individual Form Library List for an individual Site Collection. So designing these workflows in one environment and deploying to another is not possible. This doesn&#8217;t fit very well with Enterprise rollouts where testing is required, especially when modifying workflows that are in Production!</p>
<ul>
<li><a href="http://www.schaeflein.net/blog/PermaLink,guid,0f8f103a-871a-490c-be4e-e732a5fc0e70.aspx">Porting a SharePoint Designer (SPD) Workflow to Visual Studio.Net &#8211; Part 1</a></li>
</ul>
<p><strong>What to avoid early on</strong></p>
<p><em>Complex Processes &amp; Large Forms</em></p>
<p>One thing to bear in mind is that there are limitations of what you can do in InfoPath, simple forms are easy to put together&#8230;but more complex forms aren&#8217;t! There is certain functionality that doesn&#8217;t work when hosted as web services. Also, large scale InfoPath forms can have rendering performance issues and you may want to consider breaking down the data capture over a number of forms rather than one large one. These kind of things take some experience and more than likely some bad experience.</p>
<ul>
<li><a href="http://office12.blogspot.com/2007/06/infopath-web-forms-vs-aspx.html">InfoPath Forms vs. ASPX Pages in SharePoint Designer</a></li>
</ul>
<p><em>Transactional Processes</em></p>
<p>SharePoint does not have built in support for Transactional processing as a Platform. It is common for various Business Processes to require this especially in Commerce type Systems. It is recommended to leverage a Platform purposely built for this, such as Commerce Server 2007 and simply use SharePoint as a presentation layer which interfaces to trigger such external processes.</p>
<ul>
<li>Microsoft have <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=2AEB1A5E-43B8-483B-8CB2-86C0E82BF0AB&amp;displaylang=en">published a White Paper</a> on Configuring and Integrating MOSS 2007 and Commerce Server 2007</li>
</ul>
<p><em>High load business Systems</em></p>
<p>As discussed in the first part of this series, SharePoint can scale out onto multiple servers to allow specific Roles to be isolated and to spread the load of web requests to Sites. Microsoft is building more and more information around this area, but it is recommended that you speak to a Microsoft Partner with experience in this area to ensure that you get the full potential out of your SharePoint Farm.</p>
<ul>
<li><a href="http://technet.microsoft.com/en-us/library/cc263261.aspx">Planning and Monitoring SQL Server Storage for Office SharePoint Server: Performance Recommendations and Best Practices</a> and <a href="http://go.microsoft.com/fwlink/?LinkId=95450&amp;clcid=0x409">Working with Large Lists in Office SharePoint Server 2007</a></li>
<li>Joel Oleson has some <a href="http://blogs.msdn.com/joelo/archive/2007/07/09/capacity-planning-key-links-and-info.aspx">great articles</a> around this space.</li>
</ul>
<p><a href="/Documents%20and%20Settings/thajer1/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/89a4a990-b128-4bb4-b6d3-7c19fac97cc4/image17.png"></a></p>
<p><strong>Business Intelligence</strong></p>
<p><strong>Quick Wins</strong></p>
<p><em>Excel Services <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>Have you ever worked somewhere where Excel spreadsheets seem to store the most important Information? Have you ever found they get sent round in e-mails and multiple versions start cropping up and suddenly it&#8217;s in a mess? Excel services allows you to web-enable Excel using Excel services. This is an extremely powerful tool and can often simplify who actually needs the ability to change formulas etc in the spreadsheets and who is just a consumer to them. Simple Web Parts can be added to Pages that point to spreadsheets hosted in Document Libraries.  This is a very quick and easy way of getting those Dashboards that all Sales people are talking about these days. Excel services is new in 2007, so expect a host of new features in vNext and therefore expect limitations in how far you can push current functionality.</p>
<p><em>Filter Web Parts <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /><img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>Filters can be placed on Pages where the Excel services Web Parts are and this will allow End Users to dynamically add filters to the Information be reported on within the spreadsheets hosted in SharePoint.</p>
<p><strong>Medium Term</strong></p>
<p><em>Key Performance Indicators (KPIs)</em></p>
<p>Just because the SharePoint Platform can handle generating lots of KPI dashboards, doesn&#8217;t mean you should start throwing them together. This needs a true expert in the area of Business Intelligence to ensure that the data is accurate and doesn&#8217;t mislead people with incorrect wording. The last thing you want is for your CEO to start quoting how wonderful sales are going, to find out later that the dashboards were taking into account various variables because implementing this was too complicated.</p>
<p><strong>Long Term</strong></p>
<p><em>BDC Data Web Parts</em></p>
<p>The Business Data Catalogue not only has hooks into the Search capabilities of SharePoint, but also has functionality for CRUD (create, retrieve, update, delete) type operations with external mapped sources such as ODBC databases. It allows you to display views of data and empowers the User to be able to operate on this data within the SharePoint interface. This means that rather than developing a ASP.NET/Win Forms custom interface with Business Layer and Data Layer type approach, you can leverage the BDC repeatedly for each data source.</p>
<ul>
<li>Sahil Malik has a great <a href="http://blah.winsmarts.com/2007-4-SharePoint_2007__BDC_-_The_Business_Data_Catalog.aspx">introduction to BDC</a></li>
</ul>
<p><strong>What to wait to mature</strong></p>
<p>Business Data Catalogue</p>
<p>The concept behind BDC is great, unfortunately it is a lot of &#8220;heavy lifting&#8221; to get the XML up and going for this. Fortunately there are some 3rd Party products out there to help you in this space. I&#8217;m sure that Microsoft are busy working in the background to make this easier to work with.</p>
<ul>
<li><a href="http://www.bdcmetaman.com/knowledge%20base/MOSS%20BDC%20-%20getting%20started.aspx">BDC Metaman</a> has some great articles as well as a strong Product in this space.</li>
</ul>
<p><strong>What to avoid early on</strong></p>
<p><em>BDC &#8211; Large/Multiple Repositories</em></p>
<p>When looking at BDC to target multi large repositories of Information and aggregate this within the Search or connecting to it using the Data Web Parts you will have to be cautious. I would advice starting off with some smaller scoped repositories before trying to consume/manage Information from large back-end sources. It is worth bearing in mind that BDC was designed for &#8220;Knowledge workers&#8221; and not full developers and therefore is not designed to scale or handle complex situations.</p>
<ul>
<li>Further Information on a more complex and scalable alternative to BDC is <a href="http://office12.blogspot.com/2007/03/custom-protocol-handler-vs-bdc.html">blogged about here</a>.</li>
</ul>
<p><a href="/Documents%20and%20Settings/thajer1/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/89a4a990-b128-4bb4-b6d3-7c19fac97cc4/image20.png"></a></p>
<p><strong>Platform Services</strong></p>
<p><strong>Quick Wins</strong></p>
<p><em>Custom Lists <img src="http://sharepointmagazine.net/images/icons/star_48.png" alt="" width="24" height="24" /></em></p>
<p>Custom Lists have a lot of functionality that can often enforce structured content for data capture. These features are available in all Editions of SharePoint and can act as a great quick win within an organization. Think of how many &#8220;lists&#8221; are currently stored in unstructured forms, Excel spreadsheets and Access databases. This can be replaced by SharePoint Lists with Content Types&#8230;for securer, versioned, permission based, workflow driven, single source of truth of Information.</p>
<p><strong>Medium Term</strong></p>
<p><em>Site Provisioning</em></p>
<p>Many a Developer has spent nights writing code that SharePoint does out of the box to build team sites. Large Enterprise Software houses have also tried to create these, but none are quite as extensible as SharePoint and also don&#8217;t leverage the powers of ASP.NET to the level that SharePoint does. This in itself can be a huge advantage to leveraging SharePoint for this type of functionality.</p>
<p><strong>What to wait to mature</strong></p>
<p><em>Security and Permissions</em></p>
<p>As discussed previously, the security model can easily get out of hand in SharePoint and one thing you&#8217;ll find happening quickly in your Service Desk is support calls raising issues about access to Sites etc. The OOTB tools for discovering permissions for a particular User based on their SharePoint Group Memberships and Permissions applied to these as well as Active Directory Groups is extremely limited. Fingers are crossed that this will be adjusted in vNext, but just be aware of the issues around this and try and keep to a very strict basic security model to save these pressures.</p>
<ul>
<li>There are some great tools to help in this space such as <a href="http://www.barracudatools.com/">Barracuda Tools</a> and <a href="http://www.idevfactory.com/">Universal SharePoint Manager</a>.</li>
</ul>
<p><strong>What to avoid early on</strong></p>
<p><em>Heavy Customization of Master Pages / Page Layouts</em></p>
<p>There is plenty of Information out there on how to customize the SharePoint look and feel. I would recommend when you start not worrying too much about making it &#8220;not look like SharePoint&#8221; internally within the Organisation. The main reasons for this is that a lot of the End User training for SharePoint available on the Internet will be easily to relate if the interface is similar to the screen shots in the material they are reading.</p>
<ul>
<li>There is no better place to start than <a href="http://www.heathersolomon.com/">Heather Solomon&#8217;s</a> blog on SharePoint Design</li>
</ul>
<p><strong>Until Next Time&#8230;</strong></p>
<p>Ben Bradley&#8217;s post on &#8216;<a href="http://sharepointmagazine.net/news/what-is-your-firms-sharepoint-balance">What is YOUR Firm&#8217;s SharePoint Balance?</a>&#8216; touched on some great issues around what I would call &#8216;SharePoint Adoption&#8217; and the balance of &#8216;SharePoint Power&#8217; between the &#8216;End Users&#8217; and &#8216;Administrators&#8217; of the system that is running on top of the SharePoint Platform. In Part 3 I will be explaining in more detail the array of &#8216;SharePoint Roles&#8217; and in Part 4, I will explain the different &#8216;SharePoint Powers&#8217; that can be given to these Roles.</p>
<p><a href="http://wss.made4the.net/">http://wss.made4the.net</a> <a href="http://www.readify.net/">http://www.readify.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/news/analysis/leveraging-the-sharepoint-platform-part-2/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Leveraging the SharePoint Platform (Part 1)</title>
		<link>http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-1</link>
		<comments>http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-1#comments</comments>
		<pubDate>Thu, 14 Aug 2008 08:26:41 +0000</pubDate>
		<dc:creator>Jeremy Thake</dc:creator>
				<category><![CDATA[Customisation]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[capabilities]]></category>
		<category><![CDATA[introduction]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=424</guid>
		<description><![CDATA[After reading this six part series hopefully you'll have a clearer understanding of what the SharePoint Platform can offer to you and your organization. It will also provide some direction in using the SharePoint Platform.]]></description>
			<content:encoded><![CDATA[<p>After reading this six part series hopefully you&#8217;ll have a clearer understanding of what the SharePoint Platform can offer to you and your organization. It will also provide some direction in using the SharePoint Platform. I have broken the series down as follows:</p>
<ul>
<li>Part 1 &#8211; What is the SharePoint Platform</li>
<li>Part 2 &#8211; What capabilities to start with</li>
<li>Part 3 &#8211; How to start with the SharePoint Platform</li>
<li>Part 4 &#8211; Levels of leveraging the SharePoint Platform</li>
<li>Part 5 &#8211; Why use SharePoint as a Development Platform</li>
<li>Part 6 &#8211; Lessons learnt from Leveraging the SharePoint Platform</li>
</ul>
<p><strong>What is the SharePoint Platform?</strong></p>
<p>The SharePoint 2007 Platform has been sending a buzz round the IT industry now since November 2006 when it was launched, I won&#8217;t go through the <a href="http://www.diigo.com/user/jthake/sharepoint+history" target="_blank">history</a> of SharePoint in this series, but it is beneficial to understand how the platform has evolved since it&#8217;s introduction in 2001. Marc Andreessen, of Netscape fame, <a href="http://blog.pmarca.com/2007/09/the-three-kinds.html" target="_blank">defines a Platform succinctly</a>:</p>
<p align="center"><em>&#8220;A &#8220;platform&#8221; is a system that can be programmed and therefore customized by outside developers &#8212; users &#8212; and in that way, adapted to countless needs and niches that the platform&#8217;s original developers could not have possibly contemplated, much less had time to accommodate.&#8221;</em></p>
<p>This definition is very much targeted at cloud based platforms in the consumer market such as Facebook, Amazons&#8217; S3 and Ning. I think it is a very fitting to description of SharePoint&#8230;the amount of times I have been asked &#8220;can SharePoint do x?&#8221; and thought quietly in my head&#8230;&#8221;well yes&#8230;but it depends how far you want to go with it&#8230;&#8221;. In this series I hope to get people thinking in structured ways of how they can leverage the SharePoint Platform with some experience and advice to point people in the right direction.</p>
<p><strong>The six SharePoint &#8220;Pillars&#8221; / Capabilities</strong></p>
<div id="attachment_423" class="wp-caption aligncenter" style="width: 310px"><a href="http://sharepointmagazine.net/wp-content/uploads/2008/08/capabilities.jpg"><img class="size-medium wp-image-423" src="http://sharepointmagazine.net/wp-content/uploads/2008/08/capabilities-300x240.jpg" alt="SharePoint Capabilities" width="300" height="240" /></a><p class="wp-caption-text">SharePoint Capabilities</p></div>
<p>The six core pillars/capabilities of SharePoint are a good basis to start thinking about what the Platform has to offer. The <a href="http://www.microsoft.com/sharepoint/capabilities/default.mspx" target="_blank">Microsoft SharePoint site</a> describes the platform in these sections and has case studies focused around them. Below I&#8217;ve covered them off in less sales speak and in terms that people outside of Microsoft terminology will understand with direct comparisons to commonly know consumer platforms.</p>
<p><strong>Collaboration and Social Computing</strong></p>
<p style="center;"><span style="#808080;"><em>Real time presence; Standard Site Templates; Wikis; Blogs; People and Groups; Calendars; Email Integration; Task coordination; Surveys; Document Collaboration; Issue Tracking; </em><em>Social Networking</em></span></p>
<p>With all the buzz around about Web 2.0, since the evolution of the consumer Internet with platforms such as WordPress, Blogger and Wikipedia, it is no surprise that Microsoft have bet on Enterprise 2.0 being the next big thing. Each of the areas of this capability are by no means &#8220;best of breed&#8221;, but do cover basic functions expected. The issue here is the expectation of the user base exposed to more feature rich consumer platforms and also the take up of these without mature enough governance.</p>
<p><strong>Portals</strong></p>
<p align="center"><em><span style="#808080;">Mobile Device Support; Office 2007 Suite integration; My Site personal sites; Content syndication; Privacy and security; Site Directory; User Profiles and the Profile Store; Audience Targeting; Site Manager; Portal Site Templates; SharePoint Sites and Document Aggregation Web Parts; Colleagues and Membership Web Parts</span></em></p>
<p>As with the social computing aspects of the first capability, consumer Platforms such as Facebook, MySpace and iGoogle are leading the way here. This area focuses on the Personalization and Customization features commonly found in Portal technology products by providing the ability to create personalized spaces for users. These spaces can be driven by roles based rules, as well as user behavior and user preferences.</p>
<p><strong>Enterprise Search</strong></p>
<p align="center"><em><span style="#808080;">User Interface; Search results; Enterprise content sources; Relevance; Administration and Management; Indexing controls; Security; People search; Business data search</span></em></p>
<p>Enterprise Search has been a large talking point for generations of Platforms. The frustrations around the assumptions that Internet Search Engines find information so easily from millions of pages online when Enterprise equivalents fail miserably. The SP1 and Infrastructure Updates extend these capabilities further with faceted searches and a more advanced administrative web control panel. It also leverages core base platforms such as Active Directory with People Search functionalities.</p>
<p><strong>Enterprise Content Management</strong></p>
<p align="center"><em><span style="#808080;">Business document workflow support; Document management site templates; Integration with Microsoft Information Rights Management; Document Information Panel; Document Action Bar; Retention and auditing policies; Records repository; Email content as a records; Legal Holds; Navigation controls; Content authoring; Content publishing and deployment; Site templates; Page layouts; Site variations; WYSIWYG Web Content Editor; Slide libraries; Policies, auditing and compliance</span></em></p>
<p>Enterprise Content Management has been the driver behind a lot of the major players in the Document Management space swallowing up their smaller competitors such as: IBM with Filenet; OpenText with Hummingbird; and EMC with Documentum. This capability covers three main areas: Document Management; Records Management and Web Content Management.</p>
<p><strong>Business Process and Forms</strong></p>
<p align="center"><em><span style="#808080;">Browser based forms; Centralized forms management and control; Design once development model; Form Import Wizard; Integrated deployment model for &#8220;no code&#8221; forms; Comparability checker</span></em></p>
<p>Business Process and Forms capabilities focus around InfoPath Forms being hosted within the Office Forms Services as web pages. There are some features of InfoPath Forms that mean that they won&#8217;t host as web pages, but this is an extremely powerful way to build basic forms fast and integrate them within SharePoint Lists and therefore fully utilize the Platform Services. Remembering the InfoPath Forms store data in an XML format, it allows powerful manipulation of collections of forms and the ability to use this XML data within the List Column data (metadata).</p>
<p><strong>Business Intelligence</strong></p>
<p align="center"><em><span style="#808080;">Integrate, flexible spreadsheet publishing; share, manage and control spreadsheets; web based business intelligence using Excel Services; Data Connection Libraries; Business Data Catalogue; Business Data Web Parts; Business Data actions; Integrated Business intelligence dashboards; Report Center; Key Performance Indicators; Filter Web Parts</span></em></p>
<p>The Business Intelligence capability focuses around the hosting of Excel spreadsheets online. This has been a feature that really hasn&#8217;t made too many &#8216;blog&#8217; headlines as yet, but once the product has matured I&#8217;m 100% positive that it will be a highly used capability of the platform. The Key Performance Indicators (KPIs) and integration with SQL Reporting Services allows for Executive Dashboards makes for a compelling platform of choice.</p>
<p><strong>Platform Services</strong></p>
<p align="center"><em><span style="#808080;">Configuration management; Administration user interface; Delegation; Re-parenting; Provisioning; Usage analytics; Monitoring; Alert Notifications; RSS Feeds; Rights trimmed user interface; Automated bread crumb; Quick launch bar; Top Navigation bar; Accessibility; Recycle bin; Backup/restore support; Document Libraries; Metadata; Content Types; Application templates; Object Model; Web Services; Change Logs; Job Service; Feature Framework; Solution Deployment Model; Single Sign On</span></em></p>
<p>The base Platform of which all these capabilities surround has been extended significantly from SharePoint 2003. The core of which surrounds itself around the SharePoint Object Model of Site Collections, Sites and Webs and the security around these objects. The base concepts of the Platform Services area are where most people will find themselves configuring and creating instances of objects for their solutions. I will be focusing a lot of this series around these core concepts.</p>
<p><strong>The three SharePoint Editions</strong></p>
<p><a href="/Documents%20and%20Settings/Administrator/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/2ef11a3d-d1bc-49bb-990b-f47140832a5b/image[5].png"></a></p>
<div class="mceTemp mceIEcenter">
<div class="mceTemp mceIEcenter">
<div class="mceTemp mceIEcenter">
<div id="attachment_432" class="wp-caption aligncenter" style="width: 510px"><a href="http://sharepointmagazine.net/wp-content/uploads/2008/08/editions1.jpg"><img class="size-full wp-image-432" src="http://sharepointmagazine.net/wp-content/uploads/2008/08/editions1.jpg" alt="SharePoint Editions" width="500" height="297" /></a><p class="wp-caption-text">SharePoint Editions</p></div>
</div>
</div>
</div>
<p>The above diagram illustrates the difference in capabilities at each Edition of SharePoint. Windows SharePoint Services (WSS) 3.0 is available as an installation for Windows Server 2003 for free. Microsoft Office SharePoint Server (MOSS) 2007 Standard and Enterprise Editions are based on a licensing model (which I will not go into here&#8230;best place to start is to talk directly with <a href="http://www.microsoft.com/licensing/mla/" target="_blank">Microsoft on this one</a>). Microsoft has a more <a href="http://office.microsoft.com/en-us/products/FX101758691033.aspx?ofcresset=1" target="_blank">detailed page</a> describing the granular differences between each Edition. To summarize, Enterprise Edition allows Business Intelligence and Business Process and Forms.</p>
<p>Later on in the series I will be referring to these capabilities and when they are typically utilized during the maturity of the implementation of the Platform. One thing to bear in mind is that because WSS 3.0 is free, you do get a significant set of capabilities to leverage that would typically take weeks to build in ASP.NET/SQL traditional development platform. So you don&#8217;t necessarily have to jump straight into the large edition to get the functionality you require, that said, to scale your farm out from a one server role to multiple roles requires a MOSS Edition.</p>
<p><strong>SharePoint Architecture</strong></p>
<p><a href="/Documents%20and%20Settings/Administrator/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/2ef11a3d-d1bc-49bb-990b-f47140832a5b/clip_image00184.jpg"></a></p>
<div class="mceTemp mceIEcenter">
<div id="attachment_444" class="wp-caption aligncenter" style="width: 510px"><a href="http://sharepointmagazine.net/wp-content/uploads/2008/08/infrastructure.jpg"><img class="size-full wp-image-444" src="http://sharepointmagazine.net/wp-content/uploads/2008/08/infrastructure.jpg" alt="SharePoint Infrastructure" width="500" height="375" /></a><p class="wp-caption-text">SharePoint Infrastructure</p></div>
</div>
<p>This diagram illustrates the architectural structure of the SharePoint Platform. SharePoint is simply another layer built on top of the .NET Framework and as with any typical dynamic ASP.NET web site, it runs within the Internet Information Services (IIS) 6.0 and connects to a SQL Server 2005 database. Both of which are hosted on a Windows Server 2003 machine.</p>
<p>This series talks about how you can leverage SharePoint and in doing so leverage ASP.NET 2.0 technologies such as Master Pages, Page Layouts and Web Parts that the Platform implements. It also leverages the Windows Workflow Foundations of the .NET 3.0 Framework with a custom SharePoint persistence database. This allows Microsoft professionals to become familiar with the environment based on experience around these technologies, although there aren&#8217;t many of us out there who are well rounded in all of the technologies in this architecture. This series will hopefully give you some understanding of the issues in the marketplace of sourcing SharePoint people and also getting the correct fit for the task at hand.</p>
<p><strong>The SharePoint Object Model</strong></p>
<p>Without going too far into the realms of the Object Model, I just wanted to promote the fact that most of the capabilities mentioned above basically are developed using it&#8217;s own Object Model which is made up of SharePoint Sites, SharePoint Webs, SharePoint Lists and SharePoint List Items. Thinking in these four terms you can start to structure your solutions to advantage of the methods and events available out of the box of each and also extend them if necessary. In this series I will be describing solutions and how they fit into these four simple objects &#8211; trust me it&#8217;s not as complicated as 1st Normal Form Database Design!</p>
<div class="mceTemp mceIEcenter">
<div class="mceTemp mceIEcenter">
<div class="mceTemp mceIEcenter">
<div id="attachment_443" class="wp-caption aligncenter" style="width: 488px"><a href="http://sharepointmagazine.net/wp-content/uploads/2008/08/sharepoint-object-model.jpg"><img class="size-full wp-image-443" src="http://sharepointmagazine.net/wp-content/uploads/2008/08/sharepoint-object-model.jpg" alt="SharePoint Object Model" width="478" height="374" /></a><p class="wp-caption-text">SharePoint Object Model</p></div>
</div>
</div>
</div>
<p><a href="/Documents%20and%20Settings/Administrator/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/2ef11a3d-d1bc-49bb-990b-f47140832a5b/image[10].png"></a></p>
<p><strong>Trying to be everything to everybody</strong></p>
<p>From reading this first part, you will probably realize that the SharePoint Platform is trying to be everything to everybody just like the other juggernauts in this space such as Oracle, SAP, IBM, EMC Documentum, OpenText and open source vendors such as Alfresco. This is a big jump from the previous 2003 version that was simply a Portal/Collaboration application and has now incorporated the ASP.NET 2.0 Framework, as well as amalgamating the Microsoft Content Management Server technologies. SharePoint vNext will surely mature some of the new entries into the WSS 3.0/MOSS 2007 version such as Business Forms, Business Intelligence and Search.</p>
<p>As I have mentioned before in my previous posts around the capabilities some of them are simply no where near the best of breed applications that focus on one core capability. Microsoft Partners will continue to build successful solutions on top of the SharePoint Platform to further extend the capabilities such as K2 for Workflow, Nintex for Reporting, Bamboo Solutions for Portal Web Part enhancements, Colligo for Offline Document Management, NewsGator for RSS Readers and Atlassian for WIkis.</p>
<p>The next part in the series will talk more in detail about the out of the box (OOTB) capabilities and how leverage them.</p>
<p>Until next time,</p>
<p>Jeremy Thake<br />
<a href="http://wss.made4the.net/">http://wss.made4the.net/</a> | <a href="http://www.readify.net/">http://www.readify.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/technical/development/leveraging-the-sharepoint-platform-part-1/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
