Saturday, September 29, 2007

Service Pack 3 available for SharePoint Portal Server 2003

SP3 is basically a roll up of all fixes since the release of SPS - for a complete description of the fixes - see Description of SharePoint Portal Server 2003 SP3

Download SharePoint Portal Server 2003 SP3

 

Tuesday, September 25, 2007

Tafiti with Halo3 skin

Apparently they updated the skin of the Tafiti search experience (built using Silverlight) with a Halo3 theme.

 

PS Unfortunately I can't see it myself since I have a newer version of Silverlight installed and Tafiti needs the 1.0 version.

Technorati tags: , , , ,

Monday, September 17, 2007

Ten things you should know about SharePoint master pages

Here are some random interesting notes about master pages in SharePoint Server 2007 and Windows SharePoint Services 3.0:

  1. The first thing you should know about how master pages work in SharePoint is how the "default.master" is used. Default.master is found in the 12 Hive underneath TEMPLATE\GLOBAL\default.master. An instance of this file is created everytime a new site is created in SharePoint.
  2. Content pages are referring to a master page using 2 different types of tokens: dynamic tokens and static tokens. About dynamic tokens: developers can modify variables in code that change the location of the master page - by changing the MasterUrl (~masterurl/default.master) or CustomMasterurl (~masterurl/custom.master) property. Static tokens point to a certain location where you master page should be found - ~site/custom.master - points to the master page gallery of the current website. ~sitecollection/custom.master - points to the master page gallery of the current site collection. For more info take a look at Customizing master pages in Windows SharePoint Services.
  3. Administration pages such as  viewlsts.aspx, create.aspx etc ...  use  a different masterpage called application.master which resides in the _layouts folder and so therefore occurs once per installation of SharePoint. So, you will not be able to modify this one on a per site basis
  4. When you need to create a new master page, start off from one of the minimal master pages - remember though that  there is a difference  between the master pages for publishing sites and collaboration sites (they have different placeholders- use the Minimal or Base Master Pages guide from Heather Solomon or  How to: Create a minimal master page)
  5. There are a number of ways you can add your own master pages to MOSS - the most modular and flexible approach is by using feature. The nice thing here is that you can create a feature callout event which allows you to change the SPWeb.MasterUrl property from default.master to your custom master page. 
  6. The master page for a Meeting Workspace is a little different then the one for other WSS sites - it uses 3 special controls which are used to display the tab controls.
  7. Did you know that you can link a master page to a specific site definition? You can do this by specify the MasterUrl property of the Configuration node in ONET.XML  e.g. <Configuration ID="1" Name="Blank" MasterUrl="_catalogs/masterpage/custom.master">. Remember that you will also need to provision the master page at site creation by using the Modules section in ONET.XML -  <Module Name="CustomMasterPage" List="116" Url="_catalogs/masterpage" RootWebOnly="FALSE"> <File Url="custom.master" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" /> </Module>
  8. Be carefull of using inline code blocks in master pages. The code blocks will work fine as long as your masterpage does not get customized. Once it gets customized (e.g. by using SharePoint Designer) it will run in safemode which does not allow inline code. You can override this setting by altering the web.config and adding an extra PageParserPath - <PageParserPath VirtualPath="/sitedirectory/marketing/_catalog/masterpage/*" IncludeSubFolders="true" CompilationMode="Always" AllowServerSideScript="true" />
  9. Have you seen the mysterious SharePoint DelegateControl in a lot of master pages? These define regions in your master page for which you can substitute the content with your own controls. You can replace what is shown in a delegate control by define a Control element within a feature for more info take a look at Use your ASP.NET webcontrol in MOSS 2007 with SharePoint delegate control.
  10. There is a feature for WSS 3.0 which you can download from CodePlex to manage your Master Page as well - take a look at Stramit SharePoint 2007 Master Picker.

Some extra white papers and reference material

TechNet evening - How to deploy the next generation Office and Windows Client using the Microsoft Solution Accelerator

Arlindo just reminded about this next session - definitely something for IT Pros:

TechNet Evening: How to deploy the next generation Office and Windows Client using the Microsoft Solution Accelerator Tools

 

When & Where : Wednesday, October 03, 2007 6:00 PM at Utopolis Mechelen

Language(s):  English. 
Product(s):  Office and Windows Vista. 
Audience(s):  IT Professionals, Partner and Technology Decision Maker. 

Event Overview

Are you facing challenges in your desktop deployment planning and deployment projects?
In this session you will learn about the different tools available to help you during the Assesment & Deployment process. Johan Loos will demonstrate the latest Business Desktop Deployment Kit and the Windows Vista Hardware Assessment tools. You will learn all about WIM files, the System Image Manager and answer files.

Click here to register.

Thursday, September 13, 2007

OBA Link love

If you don't know about OBAs (Office Business Applications) take a look at www.obacentral.com - there's a nice video. Here's the excerpt which describes OBA's.

Office Business Applications are an emerging class of applications that helps business unlock the value of their line-of-business (LOB) systems and turn document-based  processes into real applications.

OBACentral groups different solutions which are currently being built by Microsoft partners which are defined as OBAs.

 

Other posts about OBA:

External Links:

Thursday, September 06, 2007

Microsoft Hotfix request web submission form

Just a mental note - if you need to request a hotfix, this is an easy way - http://blogs.technet.com/stefan_gossner/archive/2007/07/27/eway-to-request-hotfixes-from-microsoft-support.aspx

Technorati tags: , ,

BIWUG session about guidelines and best practices for SharePoint deployment

A new year has started for BIWUG and starting from September we are organizing again our monthly meetings. We are happy to announce the first one on September 25th in the U2U offices with the following agenda:

18:00 – 18:30 Registration and Welcome

18:30 – 20:15 Session 1: Guidelines and Best Practices for a Successful SharePoint Deployment within Your Organization

Join this session if you are looking for answers to questions like ‘When is it appropriate to use SharePoint within the organization?’, ‘What are the weak and strong points of SharePoint?’, ‘What are the pitfalls?’, ‘What kind of resources do I need the level of infrastructure but also people (both admins as well as designers and devs)?’, ‘What are the options to make SharePoint do what why business wants it to do? And what effort is that going to take?’. There are of course plenty of other related questions that can be discussed during this session. Patrick Tisseghem and other BIWUG board members will be more than happy to share their experience during an interactive discussion. The session is planned to be high-level and especially interesting for project managers, technical sales, architect and design folks.

20:15 – 20:30 Break

20:30 – 21:15 Session 2: Overview of Microsoft PerformancePoint Server 2007 - (Speaker: Nico Verheire, Dolmen)

This session will give you an overview of how Microsoft PerformancePoint Server 2007 can help you in your organization to help improve performance by integrating monitoring, analysis, and planning into a single application (of course based on WSS 3.0 and integrated with MOSS 2007). As with the first session, the level will be 100-200 with plenty of demonstrations of the product capabilities.

Register for this event

 

Important: I have 5 copies to give away from the book "First Look 2007 Microsoft Office System" by Katherine Murray - if you want one - register for the BIWUG event and add a comment to this blogpost about a topic which you want to talk about at one of the next BIWUG events.

 

Generating Office 2007 documents in C#

So, you want to start generating Office 2007 documents - I have good news for you - there seems to be an abundance of articles and sample code out there on the web. In this next blogpost I will show you where you need to start (as simple as possible) - for some more complex examples take a look at the links listed at the end of this posting.

Everything starts with the System.IO.Packaging namespace which lives in the WindowsBase.dll. So you will need to add a reference to this assembly. This is already where the fun starts  (check out Finding WindowsBase.dll) - if you don't see WindowsBase.dll in the .Net tab - you should browse to c:\program files\reference assemblies\microsoft\framework\v3.0\WindowsBase.dll. If you have  Visual Studio 2005 Extensions for .Net Framework 3.0 installed, you will probably see it directly on the .Net tab inthe Add Reference dialog box.

Next, you will probably want to install the OpenXML SDK - this will provide you with strongly typed part classes for use with Open XML documents. After installing it, add a reference to "\OpenXMLSDK\1.0.0531\lib\Microsoft.Office.DocumentFormat.OpenXml.dll". Add in the necessary using statements:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.IO.Packaging;
using Microsoft.Office.DocumentFormat.OpenXml;
using Microsoft.Office.DocumentFormat.OpenXml.Packaging;

Even if you want to create an empty Word document, you are required to add in a document element in the start part document.xml as is shown in the next code snippet.

namespace Dolmen.SharePoint.DocGenerator
{
public class Generator
{
public void CreateEmptyDoc()
{
string docname = "demo.docx";
const string docxml = @"<?xml version=""1.0"" encoding=""UTF-8""
 standalone=""yes""?><w:document xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main""></w:document>";

using (WordprocessingDocument wordDoc = WordprocessingDocument.Create(docname, WordprocessingDocumentType.Document))
{
MainDocumentPart mainPart = wordDoc.AddMainDocumentPart();

using (Stream stream = mainPart.GetStream())
{
byte[] buf = (new UTF8Encoding()).GetBytes(docxml);
stream.Write(buf, 0, buf.Length);
}
}

}
}
}

If you are worrying about backwards compatibility - remember that there exists a Microsoft Office Compatibility Pack which will allow Office 2000, XP and 2003 users to open 2007 documents as well.


If you want to have more information - the next articles are definitely a must read:



Technorati tags: , , , ,

Wednesday, September 05, 2007

Windows Live Mail Beta installed

I just installed Windows Live Mail Beta (free beta) and I like it already - a very clean interface. One integrated place to check my newsgroups, RSS feeds and e-mails on my hotmail account. I already tried out the Outlook Connector - which allows you to  connect Microsoft Office Outlook 2007 to your Microsoft Windows Live Hotmail or Microsoft Office Live Mail accounts.

But since I can know have one interface for them all (yes, I know Outlook 2007 also supports RSS feeds but I really have a large list of subscriptions and this does not work very well in Outlook 2007 in my opinion), I probably switch to Windows Live Mail for a while...

Update: I already ran into a first issue - I can't seem to be able to import my RSS feeds (I exported them from RSS Bandit). If someone knows, please leave a comment...

 

Monday, August 27, 2007

IT Talks event - Installing, administering and working with SharePoint 2007

Some guys I know are doing an IT Talks event about SharePoint 2007 - for more info check out the IT Talks web site. If you have never seen SharePoint, don't miss it - it's a great intro ...

Technorati tags: , , ,

Georeplication in WSS 3.0 or Microsoft Office SharePoint Server 2007

Geographic Replication is not an out of the box feature feature in neither MOSS 2007 or WSS 3.0. It is however possible to develop your own geographic replication solution using the WSS object model.   Basically, you will need to start looking at the content migration APIs  (previously called "Prime" during the beta phase). It is doable to create a "syncing" solution of two or more servers by exporting and importing changes. Implemting conflict resolution for import or export would already provide you with some work. If you want to built a serious solution, take a look at the SPExport and SPImport objects in the SharePoint.Deployment namespace. There is a small code snippet available in the WSS SDK  about content import/export.

If you want to learn more about it - definitely take a look at Jackie Bodine's post about SharePoint Content Migration Object Model and Content Migration Packages. Joel Oleson has a pretty nice post about some Replication and High Availability (Joel Oleson) in which he also talks about third paryt products which do georeplication. Not surprisingly these products don't come cheap - so I'm still waiting for a basic solution framework or code samples on Codeplex ...

 

Wednesday, August 22, 2007

What about correlation tokens and SharePoint workflow?

Correlation tokens are something very important in SharePoint

A correlation token is a means of uniquely identifying each instance of a workflow, modification or task.  When SharePoint initiates a workflow, it does not spawn a unique set of objects. Instead, if one instance of the workflow is already running when the second initiates, the second will reuse objects from the first. Correlation token properties ensure that the single activity object is operating on the correct workflow instance and accessing the correct details about the workflow.

One of the things to watch out for is when to use a different correlation token - a great starter about this is the blogpost of Eilene Hao about the importance of correlationtokens.

 

For more information about correlation tokens take a look at :

PS Shameless plug - if you want to learn more about workflow development in SharePoint, definitely buy Real World SharePoint 2007: Indispensable experiences from 16 MOSS and WSS MVPs . Robert Bogue wrote a chapter about WSS workflow development and I did one about SharePoint Server workflow development...

Monday, August 20, 2007

Defining SharePoint v3 webparts (ASP.NET 2.0 webparts) in the Modules section of ONET.XML

As you probably know there are 2 different base classes that you can use when developing web parts for WSS 3.0 or MOSS 2007. You can either inherit from System.Web.UI.WebControls.WebParts.WebPart which are your ASP.NET 2.0 webparts or you can still use Microsoft.SharePoint.WebPartPages.WebPart (It is considered best practice to build your webparts using the ASP.NET 2.0 way - the other ones are only in there for backwards compatibility). For a thorough discussion about the different ways to build webparts check out Jan's article on MSDN Belux - Web Part Platforms and Development Techniques.

 

When a site in SharePoint is created it is based on site definition. I'm not going to elaborate about how you can create your custom site definition but I'm going to talk about the Modules section in ONET.XML. In this Modules section, you can specify which files need to be provisioned at site creation - take a look at Using Modules to add files to site definition on MSDN (SPS 2003 documentation - not available for SharePoint 2007 yet) . This article also describes how you use the Modules element to specify which web parts are used on the home page of the default.aspx file in every site.

<Modules>
   <Module Name="Default" Url="" Path="">
      <File Url="default.aspx" NavBarHome="True">
         <View List="104" BaseViewID="0" WebPartZoneID="Left"/>
         <View List="106" BaseViewID="0" WebPartZoneID="Left" WebPartOrder="2"/>
         <AllUsersWebPart WebPartZoneID="Right" WebPartOrder="1">
            <![CDATA[<WebPart xmlns="
http://schemas.microsoft.com/WebPart/v2"
               xmlns:iwp="http://schemas.microsoft.com/WebPart/v2/Image">
               <Assembly>Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral,
               PublicKeyToken=71e9bce111e9429c</Assembly>
               <TypeName>Microsoft.SharePoint.WebPartPages.ImageWebPart</TypeName>
               <FrameType>None</FrameType>
               <iwp:ImageLink>_layouts/images/homepage.gif</iwp:ImageLink>
               </WebPart>]]>
         </AllUsersWebPart>
         <View List="103" BaseViewID="0" WebPartZoneID="Right" WebPartOrder="2"/>
         <NavBarPage Name="Home" ID="1002" Position="Start"></NavBarPage>
         <NavBarPage Name="Home" ID="0" Position="Start"></NavBarPage>
       </File>
    </Module>
</Modules>

Unfortunately, the code listed above only works if you are using V2 webparts - being webparts which inherit from Microsoft.SharePoint.WebPartPages.WebPart. But what if you need to add an ASP.NET 2.0 webpart?  I first thought that I just needed tot change the xmns from http://schemas.microsoft.com/WebPart/v2 to http://schemas.microsoft.com/WebPart/v3 - but that did not work ( ... would probably have been to easy). So what is the correct syntax?

The correct syntax is actually the one which is used for the .webpart files - if these were generated for you (you might have just added a webpart using the approach as described by Mart - Create a SharePoint 2007 webpart step by step ) you can still get at the XML file which you will need to use.

Go to the Web Part Gallery of the site collection which contains your web parts - select Edit document properties for the webpart that you want to include in your site definition. Next click - View XML - this will show you the syntax you will need ...remember that you will need to include the <webParts> ...</webParts> start and end tags. (This is also case sensitive). Beneath is an example of one of the webparts I had created:

  <Modules>
    <Module Name="Default" Url="" Path="">
      <File Url="default.aspx" NavBarHome="True">
        <NavBarPage Name="$Resources:core,nav_Home;" ID="1002" Position="Start" />
        <NavBarPage Name="$Resources:core,nav_Home;" ID="0" Position="Start" />
    <AllUsersWebPart WebPartZoneID="Right" WebPartOrder="1">
    <![CDATA[
    <webParts>
    <webPart xmlns="
http://schemas.microsoft.com/WebPart/v3">
    <metaData>
    <type name="DolmenWebParts.WebPropViewer, DolmenWebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <importErrorMessage>Cannot import this Web Part.</importErrorMessage>
    </metaData>
    <data>
        <properties>
        <property name="Title" type="string">WebPropViewer</property>
        </properties>
    </data>
    </webPart>
    </webParts>
      ]]>
    </AllUsersWebPart>     
    </File>     
   </Module>
 </Modules>

Happy SharePointing ...

Starting with game development for XBOX360

First start off with downloading Visual C# 2005 Express Edition, afterwards you will need to apply SP1 for Visual Studio Express Edition (Rather strange that you can't use Visual Studio 2005 Professional - fortunately you can just install the different versions side by side. ) Once you have installed VS2005, you will need to download XNA Game Studio Express 1.0 Refresh. Update:  I just learned that version 2.0 of XNA will be available end 2007 - that version will support all versions ov Visual Studio - For more info see Announcing XNA Game Studio

 

All tools are free of charge but when you want to debug and/or play games on your XBox 360 you will need a XNA creators club subscription . Steps you will need to go through to get the thing running:

Happy XNA-ing ...

Technorati tags: , , ,

Article series - A (Microsoft) code name a day

A while ago Mary Jo Foley started with the article series - A (Microsoft) code name a day - here are some of them which are a little less know (but definitely not less interesting):

  • Harmonica - Best guess on what it is: A P2P data synchronization service that could be key to Microsoft’s cloud-computing vision.
  • Greenland -  Best guess on what it is:  WS-Management Protocol 1.1
  • Jasper  or Dynamic ADO.Net - definitely take a look at this one -  download the  Jasper CTP or at least read about it on the ADO.Net blog
  • Astoria -  Best guess on what it is : A set of technologies allowing applications to expose data as a data service that can be consumed by Web clients within a corporate network and across the Internet. Astoria is one component of Microsoft’s “data-in-the-cloud” strategy. Also take a look at Introducing Project Codename Astoria

Check out the  complete overview of Microsoft Codenames on ZDNet

Tuesday, August 14, 2007

Syntax for SPLongOperation.End(string sRedirectUrl)

A while ago I wrote about Compiling SharePoint 2007 audiences using the SharePoint object model (C# code sample) which was used in a custom SharePoint application page.  Since the code in this custom application page might take a while to run I used the SPLongOperation class to show the nice SharePoint 2007 "Operation in progress" user interface while the code is running.

When your code is finished you can redirect to a specific web page by using SPLongOperation.End() method and passing in a url - the code below redirects to the previous page which called into the SharePoint application page.

operation.End(Request.ServerVariables["http_referer"].ToString());

Now, something which I forget was that the URL string that you pass in should not be URLEncoded so the syntax should be

operation.End(SPEncode.UrlDecodeAsUrl(Request.ServerVariables["http_referer"].ToString()));