Archive

Archive for the ‘SharePoint’ Category

SharePoint 2007/WSS3 Deployment Downloads

When deploying SharePoint it’s a lot of updates, additions and tools which should be downloaded and installed. To make it a bit more convenient, I’ve put together a list of recommended updates and additions.

All downloads are pointed to x86 platform releases. If the x64 platform is required, follow the links and choose the x64 download on the download page instead.

Supported platforms are any edition of Windows Server 2003 R2 with Service Pack 2 and Windows Server 2008. Requires Internet Information Server and ASP.NET installed and configured prior to deployment.

Please note that several security updates and other minor updates may be released and not available through this list. Please visit Microsoft Download sites for more information.

PREREQUISITES

SHAREPOINT CORE COMPONENTS

  • Windows SharePoint Services (WSS) 3.0 with SP2
    The SharePoint edition which is free with a Windows Server license including Service Pack 2. English version.
  • WSS 3.0 Service Pack 2
    The latest service pack for SharePoint Services 3.0 which is required for quite a few features. The patch is not required if WSS 3.0 is installed with SP2 (the link above). Must be installed even if MOSS is installed with the latest service pack.
  • WSS 3.0 Language Packs
    All the language packs available for WSS 3.0, including my native language (Norwegian).
  • WSS 3.0 Language Pack Service Pack 2
    The latest service pack for the language packs. Must be installed even if MOSS is installed.
  • Microsoft Office SharePoint Server (MOSS) 2007 Trial
    The 30 day trial of Microsoft Office SharePoint Server Enterprise Edition, which includes all enterprise features such as forms and Excel services. English version. A pre-installed virtual machine is also available for download at Microsoft’s download center.
  • Office Servers Service Pack 2
    The latest service pack for all Office Servers including SharePoint Server. Requires WSS SP2 before installation.
  • Office Servers Language Packs
    All the language packs available for all Office Servers, including SharePoint Server.
  • Office Servers Language Packs Service Pack 2
    The latest service pack for all language packs for all Office Servers. Requires MOSS SP2 installed prior to installation.

SQL SERVER COMPONENTS

DEVELOPMENT & CUSTOMIZATION

DOCUMENTATION

SAMPLES

RECOMMENDED SOLUTIONS

RECOMMENDED TOOLS

  • Sushi
    A free-prog binary tool for everyday SharePoint maintenance. Published under the MPL agreement.
  • SharePoint Manager
    A free-prog binary tool for exploring and managing SharePoint content. A must for SharePoint administrators.

RECOMMENDED RESOURCES

 

N’Joy"!

Advertisements

Desired SharePoint Solutions

April 21, 2009 1 comment

In many cases there’s a need for a set of default web parts and solutions for SharePoint to give the user a better experience, and designers tools to create nice web solutions. I’ve been working with SharePoint for quite a few years, and during this time my experience is that the following basic web parts and solutions often are required.

If anyone have solutions for these needs or would like to develop them as Open Source projects, please let me know. In addition to the solutions specified below, I think the following solutions might be just as relevant, but will generate quite a lot of work:

  • Organization chart based on user profiles
  • Basic graphical charts, typically as included in .NET FrameWork 3.5, similar to the ChartPart for SharePoint or the Charting for SharePoint projects at Codeplex
  • Phone Book/List view of the profile database (not  just people search)
  • LDAP directory lookup and search
  • Customized list forms with a forms designer
  • File explorer with delegated permissions
  • PowerPoint mini-viewer web part to display a PPT in a small web part (Silverlight)
  • Rolling info screen presentation based on SharePoint content (Silverlight)
  • User self service with AD property modification, password resets and more
  • Server side Power Shell script execution
  • Corporate CV database based on the user profiles shared service

In general all solutions should be flexible in terms of deployment scope, languages, WSS/MOSS and highly configurable.

Content Tagging with Tag Clouds

This solution is more or less the same as any standard tagging feature, but for some reason it’s not included in SharePoint. The solution should cover as many of the following requirements as possible:

  • Tagging of any content type in any site within a site collection
  • Dynamically storing all used tags in a configurable tags list
  • Auto complete lookup towards the configured tags list (Ajax)
  • Highly customizable rendering

The SPTags project at Codeplex is a possible solution to cover this need.

Cross Site List Aggregator and Rollup

This solutions should be able to aggregate information from a specified list type in different sites and display the aggregated result. The solution should be able to use all Sharepoint view features, such as the default list view, calendar, Gantt charts and more.

A possible solution for this is the Portal Solutions SharePoint Toolbox project at Codeplex.

Advanced Lookup Field

The standard lookup field in Sharepoint is very limited. It’s not possible to use this field cross site or towards any other data source other than a Sharepoint list. In addition, it’s not very user friendly, especially with a large number of entries returned to the user.

Some of the basic features of this solutions should be:

  • If the input field is free text, it should be possible to enable auto complete as the user types. Typically implemented as Ajax.
  • It should be possible to use more or less any data source as a lookup source.
  • The lookup should be able to filter and sort the returned results based on configurable options.
  • It should be possible to enable dynamically connected lookup fields which filters the selection list based on a value in another field.
  • Both multi select and single select must be configurable
  • The rendering of the selection alternatives must be configurable

The SharePoint Filtered Lookup Field project at Codeplex covers the need for filters in a lookup field, but it’s not possible to combine this feature with other solutions such as dynamic/connected and auto complete lookup fields.

The SharePoint Connected Lookup project at Codeplex covers basic needs for dynamically connected lookup fields, but again it’s not possible to combine this feature with other solutions.

Multi RSS Feed Reader

The MOSS RSS feed reader does not support WSS and multiple feeds, and in many cases it’s desirable to have multiple feeds combined as one. It’s also important to have a good RSS reader for WSS.

The best solution I’ve found so far is the Smiling Goat RSS Reader, but there are several issues with this solution. Among other things, the solution has problems with non-English characters and the formatting is poor. For commercial use it’s not preferable to have author branding as the web part icon.

Content Rating

This solution should be able to rate any content on a SharePoint site or site collection regardless of content type (libraries, lists and pages). The rating should be configurable as both strings and numbers as well as the presentation such as images, strings or other visual effects.

The SharePoint Tool Basket project at Codeplex contains a solution which might cover this need, but I’ve not been able to try this out yet.

Mini Calendar View

On most intranets and public internet sites, where a schedule is an important part of the business, it’s often requested to have a tiny calendar on the front page which highlights the dates in a month with content and displays the entries when a user hovers over the date. Each date in the mini calendar view should be linked to a calendar and the appropriate date.

I know that Bamboo Solutions have some commercial alternatives, but I haven’t been able to test them yet.

Calculated Icon Field Type

Lists in SharePoint is often used as an alternative to Excel spreadsheets, but there’s one important feature missing which is conditional formatting, especially icons to visualize status of the rows.

I’ve seen some solutions at Codeplex, but these solutions are limited in use. Among other things, it’s not possible to configure which images to use and the criteria/rules are limited to specific values or ranges. It should be possible to define SharePoint formulas as the criteria and custom images based on the result of the formula.

Based on a tip from one of my associates, I’ve manage to accomplish this by altering the fldtypes.xml file on the server, but I don’t think hacks are the way to go in a commercial production environment.

In addition it would have been nice to have conditional formatting in any list similar to conditional formatting in Excel 2007.

User Poll

This solutions is a quite straight forward User Poll, but it should be possible to use the Poll both as an authenticated user and as an anonymous user. It should be configurable if the user may respond several times or not, and if the user may see the results of the poll.

Some projects at Codeplex covers some of the needs, but anonymous poll is not supported and the configurability and styling is very poor.

What’s New and What’s Hot

This is actually two different solutions which is closely related. The What’s New web part should display the newest items on a site or site collection with the ability to filter on specific lists. It should be customizable how the result is displayed and how many items to return.

The What’s Hot web part should display the top x items on a site or site collection. The solutions should be able to exclude some pages/entries, such as the home page of the site, and the information returned or displayed should be customizable.

Web Capture Web Part

In SharePoint Portal Server 2003 (SPS) Microsoft shipped a web part called "Web Capture" which grabbed parts of any web page and displayed the result in a web part. With Office Systems 2007 the feature disappeared, including the client side ActiveX control required to browse and select elements for the targeted web page.

Since it’s lots of web sites and web applications which doesn’t support any kind of data aggregation or integration, this solutions was great. However, it’s gone.

I deployed the SPS web part on WSS/MOSS and the web part it self works fine, but it’s required to use Office 2003 to have the ability to browse and select which element to grab. In addition, the old web part only supports table tags, and the div tags are more commonly used and the W3C recommended tag for layout purposes.

Ticker Web Part

The Ticker should be able to display content from lists, web services and RSS feeds as a scrolling text, both vertically and horizontally, similar to the stock ticker you might find on any financial web page. The web part should be able to use both JavaScript and Silverlight or flash as client side presentation.

Possibilities beyond comparison

December 3, 2008 Leave a comment

The CKS:EBE solution is one of the best solutions available for SharePoint and “Web 2.0” type web site. This entire site is based on WSS3 and EBE 2.5 (and some other minor additions) and includes several of the required web 2.0 features. Among other things, the site has basic functionality such as:

  • Anonymous comments posting
  • Taxonomy tagging
  • True RSS feeds
  • Modular themes
  • Trackbacks and permalinks
  • Forms based feedback/contact

…and features are still being added to the solution.

A special thanks goes to the author ‘The Kid’ and contributors.

Read more about this site and the solution behind it in the about pages.

N’Joy!

Kerberos authentication and NLB clusters

November 24, 2008 Leave a comment

When you use Kerberos as the authentication mechanism with Sharepoint and want to configure NLB for load balanced front-end servers you will have to configure an extra SPN for the NLB cluster name. This is caused by the fact that Kerberos uses the hostname as a part of the Kerberos Ticket request, even if the URL used is something different. This is described in detail in Microsoft KB929650.

With the following scenario, set the SPN names accordingly:
NLB server A: SPServerA.MyDomain.com
NLB server B: SPServerB.MyDomain.com
NLB Cluster Name: SPNLB.MyDomain.com
Web Application Account: MyDomain\SharepointApp

SPN commands for NLB with Kerberos for the described scenario:
setspn.exe /A HTTP://SPServerA.MyDomain.com MyDomain\SharepointApp
setspn.exe /A HTTP://SPServerB.MyDomain.com MyDomain\SharepointApp
setspn.exe /A HTTP://SPNLB.MyDomain.com MyDomain\SharepointApp

Please note that all computer and application accounts must be enabled as trusted for delegation!

N’Joy!

CKS:EBE 2.5 Review

November 23, 2008 Leave a comment

I’ve been using the Community Kit for Sharepoint Enhanced Blog Edition 2.5 Beta for a couple of weeks and is quite impressed. Even if there’s several features that does not work, and the solution is somewhat unstable, I think this is the best addition to Sharepoint regardless of FreeProg or commercial wares.

I’ve posted some requests and questions on the authors web site (The Kid), which I hope will be implemented in the next final release, and I certainly hope the final release of 2.5 is somewhat close by.

I will recommend this solution to anyone with a public WSS3 site which they want to make a bit more user friendly and appealing to the user.

My rating: 10 of 10!

N’Joy!

iFrame page template for MOSS

November 17, 2008 Leave a comment

As you all know, the web page viewer web part included in Sharepoint does not support dynamic sizing of the iFrame it creates. Because of this, I found the need for a page template which users might use to create a Sharepoint page with external content. The following code is the entire page template, which might be used as is by anyone it might suit.

Please not that the javascript variable FooterHeight has to be set according to the whitespace you would like at the bottom the page. The height of 30 pixels is based on the footer height of the default collaboration master included in Sharepoint 2007.

<%@ Page language="C#" Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" %>
<%@ Register Tagprefix="SharePointWebControls" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="PublishingNavigation" Namespace="Microsoft.SharePoint.Publishing.Navigation" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>   <asp:Content ContentPlaceholderID="PlaceHolderPageTitle" runat="server">
   <SharePointWebControls:FieldValue id="PageTitle" FieldName="Title" runat="server"/>
</asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderPageTitleInTitleArea" runat="server">
   <SharePointWebControls:TextField runat="server" id="TitleField" FieldName="Title"/>
</asp:Content>
<asp:Content contentplaceholderid="PlaceHolderAdditionalPageHead" runat="server">
   <PublishingWebControls:editmodepanel runat="server" id="editmodestyles">
     <!-- Styles for edit mode only-->
     <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/zz2_editMode.css %>" runat="server"/>
   </PublishingWebControls:editmodepanel>
   <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/rca.css %>" runat="server"/>
   <SharePointWebControls:FieldValue id="PageStylesField" FieldName="HeaderStyleDefinitions" runat="server"/>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderTitleBreadcrumb" runat="server">
   <div class="breadcrumb">
     <asp:SiteMapPath ID="siteMapPath" Runat="server" SiteMapProvider="CurrentNavSiteMapProviderNoEncode" RenderCurrentNodeAsLink="false" SkipLinkText="" CurrentNodeStyle-CssClass="breadcrumbCurrent" NodeStyle-CssClass="ms-sitemapdirectional"/>
   </div>
</asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderMain" runat="server">
   <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/pageLayouts.css %>" runat="server"/>
   <table id="MSO_ContentTable" cellpadding="0" cellspacing="0" border="0" width="100%">
     <tr>
        <td>
           <div class="pageContent">
             <PublishingWebControls:RichHtmlField id="content" FieldName="PublishingPageContent" runat="server"/>
           </div>
        </td>
     </tr>
     <tr>
        <td style="padding-top: 5px;">
     <WebPartPages:WebPartZone runat="server" FrameType="None" AllowPersonalization="false" Title="<%$Resources:sps,LayoutPageZone_BottomZone%>" ID="MiddleLeftZone" Orientation="Vertical" QuickAdd-ShowListsAndLibraries="false" allowlayoutchange="false"><ZoneTemplate></ZoneTemplate></WebPartPages:WebPartZone> <!-- _locID@Title="L_MiddleLeftZone_Title" -->
        </td>
     </tr>
   </table>
   <PublishingWebControls:editmodepanel runat="server" id="editmodepanel1">
     <!-- Add field controls here to bind custom metadata viewable and editable in edit mode only.-->
     <table cellpadding="10" cellspacing="0" align="center" class="editModePanel">
        <tr>
           <td>
             <PublishingWebControls:RichImageField id="ContentQueryImage" FieldName="PublishingRollupImage" AllowHyperLinks="false" runat="server"/>
           </td>
           <td width="200">
             <asp:label text="<%$Resources:cms,Article_rollup_image_text%>" runat="server" />
           </td>
        </tr>
     </table>
   </PublishingWebControls:editmodepanel>
<script language="JavaScript">
  <!--
    function resizeFrame() {
      objFrame = document.getElementsByTagName("iframe").item(0);
      windowHeight = document.body.offsetHeight;
      headerHeight = absoluteTop(objFrame);
      iframeHeight = windowHeight - (headerHeight + footerHeight);
      if (iframeHeight >=0) { objFrame.style.height = iframeHeight};
      objFrame.style.border = "1px solid gray";
      objFrame.style.margin = "0px";
    }       function absoluteTop(objNode) {
      var currentNode=objNode;
      var sumTop=0;
      while(currentNode.tagName!="BODY"){
        sumTop+=currentNode.offsetTop;
        currentNode=currentNode.offsetParent;
      }
    return sumTop;
    }       function getFooterHeight() {
      objPlaceHolder = document.getElementById("ctl00_MSO_ContentDiv");
      footH = document.body.offsetHeight - (absoluteTop(objPlaceHolder) + objPlaceHolder.offsetHeight);
      return footH;
    }       var footerHeight = 30;
    window.attachEvent ("onresize", resizeFrame);
    window.attachEvent ("onload", resizeFrame);
  //  resizeFrame();
  //  footerHeight = getFooterHeight();
  // -->
</script>
</asp:Content>  

N’Joy!

Resizing an iFrame to it’s parent

November 17, 2008 Leave a comment

In some cases it’s not possible to use the style tags width and height to define the size of an object on a web page. This is typically the case when an inline frame is placed within a placeholder such as a <div> or a <td>. My approach to resolve this is to include a javascript which resizes the iframe based on it’s parents width and height.

The script is based on a Sharepoint 2007 collaboration page template and has a static reference to the page footer. If this should be used elsewhere, please modify the static object references in the code.

function resizeFrame() {
   objFrame = document.getElementsByTagName("iframe").item(0);
   windowHeight = document.body.offsetHeight;
   headerHeight = absoluteTop(objFrame);
   iframeHeight = windowHeight - (headerHeight + footerHeight);
   if (iframeHeight >=0) { objFrame.style.height = iframeHeight};
   objFrame.style.border = "1px solid gray";
   objFrame.style.margin = "0px";
}

function absoluteTop(objNode) {
   var currentNode=objNode;
   var sumTop=0;
   while(currentNode.tagName!="BODY"){
      sumTop+=currentNode.offsetTop;
      currentNode=currentNode.offsetParent;
   }
   return sumTop;
}   function getFooterHeight() {
   objPlaceHolder = document.getElementById("ctl00_MSO_ContentDiv");
   footH = document.body.offsetHeight - (absoluteTop(objPlaceHolder) + objPlaceHolder.offsetHeight);
   return footH;
}

var footerHeight = 30;
window.attachEvent ("onresize", resizeFrame);
window.attachEvent ("onload", resizeFrame);

N’Joy!

%d bloggers like this: