Oct30

System Center Operations Manager is more than just for Monitoring SharePoint

 Categories:

It also provides valuable reporting capability.

The critical conditions that the SharePoint Management Pack monitors are summarized in the following reports that can be easily viewed through the System Center reporting console. Rules can be defined to alter how and when data is gathered, influencing the contents of these reports.

 

  • Alerts Report
  • Most Common Alerts Report
  • Event Analysis Report
  • Most Common Events Report
  • .NET CLR Data Performance Report
  • .NET CLR Memory Performance Report
  • ASP .NET Applications Performance Report
  • Indexing Service Performance Report
  • Logical Disk Performance Report
  • Memory Performance Report
  • MOSS Search Performance Report
  • Network Interface Performance Report
  • Paging File Performance Report
  • Physical Disk Performance Report
  • Process Performance Report
  • Processor Performance Report
  • System Performance Report
  • Web Service Performance Report across your SharePoint environments.

To help SharePoint teams meet and report on service level targets, the Service Level Dashboard for Operations Manager, a solution accelerator available as a download, provides the ability to monitor availability and performance for the entire SharePoint service from both the user's perspective and from a backend perspective. Top-level views and drill down capabilities let administrators investigate and resolve problems before they affect service levels.

 

If you want assistance with Monitoring Service for SharePoint 2007 with System Center Operations Manager 2007 might be what you need. (OK, I am an MCS consultant but I'm not desperate for work, just letting you this option is available;-)

 
Oct27

Creating a SharePoint Page Layout to play video content

 Categories: SharePoint

There is so much video content available now days that can be used as a source of content for your web site (Internet or Intranet).

This article shows you how to create a SharePoint Publishing Layout page that supports authoring a web page with the following features:

  • display a preview image which when clicked will start playing the video
  • works with Firefox

SharePoint Page Layout to play video content
We start by creating a new Content Type in the publishing site from the Site Actions>All Site Settings>Site content types
New Site Content Type 

It is important that the new content type is based on the "Page" parent content type and that you save the new content type into the "Page Layout Content Types" group so that you will be able to find it in SharePoint Designer when it comes time to create a Layout Page.

We now have a basic publishing page content type with the standard publishing fields...
Content Type Columns

Select "Add from existing site columns" to add the following content fields:

  • Byline
  • Page Content
  • Page Image

The Page Image field will be used to store the image that will be displayed in place of the media player until the user clicks on it.
Add Columns

Now we need to create a new field to hold the media file link. We use a plain text field so that either a http or mms link. Select "Add from new site column" to add the Video field and make it a type of "Single line of text".

Create Column

Now we move to SharePoint Designer to create a Page Layout template from the New Menu...
New Page Layout

"URL Name" is just the name of the template file that will be saved in the _catalogs/masterpage library.
"Title" is the text that will displayed next to the Content Type name when a user creates a page based on the Video content type (there can be multiple templates available for a content type).

We now have a page layout based on the default master page...
Blank page layout

The Page Fields and Content Fields can now be dragged into the PlaceHolderMain area and any HTML/CSS formatting applied.

I have based my Video page on the layout provided by the ArticleLeft.aspx template with the following changes:

  • Change the TD for the PublishingPageImage field to support an onclick event that will replace the image with the media player object

<td width="480" valign="top" onclick="videoCreate()">
<div id="Player">
<PublishingWebControls:RichImageField id="ImageField" FieldName="PublishingPageImage" runat="server"/>
</div>
</td>

 

  • Add the Video field to the Edit Mode Panel

<PublishingWebControls:editmodepanel runat="server" id="editmodepanel1">
<SharePointWebControls:TextField FieldName="Video" runat="server"></SharePointWebControls:TextField>

 

  • Add the following javascript after the </PublishingWebControls:editmodepanel> tag which will create the media player object when the user clicks on the image.

<script type="text/javascript">
function wmpCreate(url) {
var str = "";
var agt = navigator.userAgent.toLowerCase();
var is_ie = (agt.indexOf("msie") != -1);
if (is_ie) {
// create the WMP for IE
str = '<object id="contentPlayer" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="480" height="320">';
} else {
// create it for FF.
str = '<object id="contentPlayer" type="application/x-ms-wmp" data="'+url+'" width="480" height="320">';
}
str += '<param name="url" value=""/>';
str += '<param name="uiMode" value="full">';
str += '<param name="autoStart" value="-1" />';
str += '<param name="stretchToFit" value="-1" />';
str += '<param name="windowlessVideo" value="0" />';
str += '<param name="enabled" value="-1" />';
str += '<param name="enableContextMenu" value="-1" />';
str += '<param name="fullScreen" value="0" />';
str += '</object>';
return str;
}
function videoCreate() {
var VideoSource = '<SharePointWebControls:FieldValue runat="server" id="MediaURLValue" FieldName="Video"/>';
document.getElementById('Player').innerHTML = wmpCreate(VideoSource);
var wmp = document.getElementById 'contentPlayer');
wmp.URL = VideoSource;
wmp.controls.play();
}

(I found this media player script somewhere on the internet and have lost the reference but credit to who ever created it)

The <SharePointWebControls:FieldValue...> allows us to use the content of a field without the html formatting that would otherwise be applied by SharePoint. We could use this method to get other page parameters such as video size etc.

Our page layout template should now look something like this...
Formatted page layout

Now we can save the page, check it in and publish it (this can be a tedious process during development so I often disable approval and require checkout on the Master Page library in a development environment).

Now we must enable the Vide Page content type in the Pages library.
Enable Content Type

We can now create a new Video page.
New Page

To create the preview image for the page layout, go to _catalogs/masterpage/Forms/AllItems.aspx and edit the properties of page layout where you can enter the path to the preview image. This image should be saved in the _catalogs/masterpage/en-us/preview images folder.

Create Page

View a demo of this page here http://templates.wssdemo.com/sites/wcm/Pages/imm.aspx

This page layout will only be available in the site collection in which it has been created in. You can turn this into a SharePoint Feature so that it can be activated in any site collection without having to go through these steps for each site collection. A good article on how to this can be found here...
http://weblogs.asp.net/jimjackson/archive/2007/11/05/create-a-new-page-layout-in-sharepoint-2007-feature-based.aspx

 
 
Oct15

How to measure the performance of your SharePoint site

 Categories: SharePoint

Ed Robinson the CEO of Aptimize has written this paper with guidance for measuring the performance of SharePoint Intranet and Internet sites. Aptimize produces the Runtime Page Optimizer (http://www.getrpo.com) – a software component that instantly speeds up web pages, applying Yahoo’s rules of Exceptional Performance  to ASP.NET and MOSS/SharePoint 2007 sites. 
 
I use it on WSSDemo and have been impressed with the product and the level of support provided by the Aptimize team.
 
Ed is no stranger to SharePoint – he was a program manager for Microsoft Visual Studio .NET, CMS and SharePoint, and now concentrates website performance software for the Microsoft platform.
 
 
Oct9

SharePoint Custom Code Acceptance Checklist

 Categories:

Microsoft has provided a good sample checklist for organizations to evaluate a custom or 3rd party SharePoint solution against.
http://technet.microsoft.com/en-us/library/cc707802.aspx

The one thing I think it fails to mention is evaluating the impact on being able to upgrade your SharePoint farm to v.next (MOSS 2009?). Why is this important? We may only be 12-18 months away from the next version I'm sure organizations will be chomping at the bit to take advantage of all the cool new features coming in the next version (sorry, no spoiler here).

Customizations range in scope from:

  • very simple – a web part that uses only SharePoint API to display list information
  • medium – a feature that changes some default behaviours of SharePoint
  • complex – an ISV application that leverages SharePoint as a platform but delivers entirely new functionality

This range of customizations should be expanded and a weighting added to each giving a cost/risk to upgrade/migrate in the future.

One area that I would be careful about is using custom site definitions. These were available in WSS 2.0 and virtual discovered by the development community by reverse engineering soon after RTM. This approach to SharePoint customization lead to some documentation and even some sample site templates being released but then along came WSS 3.0 and only OOTB site definitions were upgraded automatically. WSS 3.0 also offers new feature and solution deployment options which can help you to add functionality to the out-of-the-box site definitions in a supported way. I suspect the OOTB site definition + Features may provide a cleaner upgrade path for you in the future (assuming your feature meets the evaluation criteria in the Code Acceptance Checklist ;-)

If your SharePoint farm is used for multiple applications, both OOTB and custom, such as Intranet Publishing, collaboration and a 3rd part project management solution, I would use the Code Isolation design principal by installing the 3rd party solution in its own SharePoint Web Application with a dedicated IIS Web Application Pool. If, in the future, you find that the 3rd party solution is not supported and can't be upgraded to v.next, you can migrate it off to another (smaller) SharePoint farm (at the cost of the department who selected this solution in the first place) and get on with upgrading the main farm.

 
 
Oct7

Hot Desking

 Categories:

Over the last 28 years of my professional career, I've always had a desk to call my own.

This was what it looked like this morning

My Desk

And this is what it looks like now...

Hot Desk

(I got a concession to leave the PC on the desk. Trying to get power and an ether net connection into my locker was going to be a problem ;-)

 
 
Oct4

New Site Permissions for SharePoint Visio model

 Categories: SharePoint

You will find this very helpful when trying to explain permissions to site administrators.

Download it from http://go.microsoft.com/fwlink/?LinkID=73118&clcid=0x409

Here is a sample of some of the content...

SharePoint Site Permissions

SharePoint Permission Assignments

 
 
Oct3

SharePoint Administration Toolkit Batch Site Manager (BSM)

 Categories:

The Admin toolkit is a fully support Microsoft extension for WSS and MOSS and should be part of your standard server build.

x64: http://www.microsoft.com/downloads/details.aspx?FamilyId=F8EEA8F0-FA30-4C10-ABC9-217EEACEC9CE
x86: http://www.microsoft.com/downloads/details.aspx?FamilyId=263CD480-F6EB-4FA3-9F2E-2D47618505F2

Several people have asked to see screen shots of the BSM feature so here they are.

Step1

Step2

Lock

 
 
Oct3

Sysinternals Process Monitor v2.0 released

 Categories:

I have used this tool to troubleshoot so many problems. I suspect my next need for it will be on a customer's SharePoint farm to see what impact their OS based anti-virus solution has and ensure that we have the correct exclusions in place.

Download from here... http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

 
 
Oct2

Another step closer to the 100% scripted SharePoint installation with DcomPerm.exe

 Categories:

I have just completed my most recent MOSS scripted install which included a slipstream install of the IU + latest hot fixes as described here. One of the few things that I still have to do manually is fix the DCOM errors that seem to very consistent.
SharePoint DCOM error 10016
According to http://support.microsoft.com/kb/920783 the 10016 & 7 errors do not impact SharePoint operation but I don't like to see any errors in the Windows Event Logs so today I set about finding a solution to automate the manual dcomcnfg.exe tasks required to fix this error (annoying when you have 9 MOSS servers in the solution) and succeeded. The solution was in a Windows SDK sample application http://msdn.microsoft.com/en-us/library/aa242178(VS.60).aspx

Thanks to one of my colleagues who compiled the c++ code for me, you can now add a command to your build script to fix this problem.

C:\Software\SharePoint>dcomperm -al {61738644-F196-11D0-9953-00C04FD919C1} set YourDomain\svc-moss-ssp permit level:l

Download dcomperm from here http://cid-62b84429c3a8a991.skydrive.live.com/self.aspx/SharePoint/DComPerm.zip

Syntax: dcomperm <option> [...]
Options:

Modify or list the machine access permission list
-ma <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r"]
-ma list

Modify or list the machine launch permission list
-ml <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r,ll,la,rl,ra"]
-ml list

Modify or list the default access permission list
-da <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r"]
-da list

Modify or list the default launch permission list
-dl <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r,ll,la,rl,ra"]
-dl list

Modify or list the access permission list for a specific AppID
-aa <AppID> <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r"]
-aa <AppID> default
-aa <AppID> list

Modify or list the launch permission list for a specific AppID
-al <AppID> <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r,ll,la,rl,ra"]
-al <AppID> default
-al <AppID> list

level: 
    ll - local launch (only applies to {ml, dl, al} options) 
    rl - remote launch (only applies to {ml, dl, al} options) 
    la - local activate (only applies to {ml, dl, al} options) 
    ra - remote activate (only applies to {ml, dl, al} options) 
    l - local (local access - means launch and activate when used with {ml, dl, al} options) 
    r - remote (remote access - means launch and activate when used with {ml, dl, al} options)