Want some more structured information on the next version of SharePoint?

How about the Microsoft Office SharePoint Server 2007 Preview Site?  Complete with a demo and a product evaluation guide.  There is some marketing fluff (as expected) but hidden in there is some really cool information about new features. :)  I encourage you to jump in, I did and the water is nice and warm. 


http://www.microsoft.com/office/preview/servers/sharepointserver/highlights.mspx


And if you look around they have some other cool stuff previewing all of the Office stuff but we (me and my 2 dogs) only care about SharePoint. :)


Shane
SharePoint Help

How to get a flash movie in SharePoint

Alright I admit I had never displayed flash in a SharePoint site until today.  I figured it would be hard and really it isn’t too hard.  All you need to do is upload the .SWF file to a web location (I used a document library but it could be on a different server) then add a content editor web part to your page.  Now go into your content editor web part and click on source editor.  Now paste the following code into the web part.


<OBJECT classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″
codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0
WIDTH=”550″ HEIGHT=”400″ id=”myMovieName”>
<PARAM NAME=movie VALUE=”myFlashMovie.swf”>
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src=”/support/flash/ts/documents/myFlashMovie.swf” quality=high bgcolor=#FFFFFF WIDTH=”550″ HEIGHT=”400″
NAME=”myMovieName” ALIGN=”” TYPE=”application/x-shockwave-flash”
PLUGINSPAGE=”http://www.macromedia.com/go/getflashplayer“>
</EMBED>
</OBJECT>

Replace myFlashMovie.swf with the url of your SWF file.


That is it.  You now have a flash movie on your site.


I also found that my favorite company Smiling Goat has a web part that handles all of this for you.  Go here http://www.smilinggoat.net/stuff.aspx and download the flash movie web part.



Shane
SharePoint Help

That Pesky NDA for Microsoft Office SharePoint Server 2007 (MOSS) is Dead!

Hooray!  That means now I can share with you all of the fun things I have been playing with what seems like forever.  What are we going to talk about?  Everything of course.  I will probably start off by covering the new site templates and then how to upgrade from 2003 to 2007.  Throwing you random information as I go of course.  Why these 2 topics?  Well the first one is the subject of a presentation I will be giving at SharePoint Advisor next month.  And the upgrade stuff?  Well…. I will have to fill you in on that one later.  Look for good stuff though.


Ok so quickly I want to just give you a list of some of the cool new features.  How about?


On the server:
Item level security
Better document versioning control
    Major and Minor Version
    The ability to retain a set number of revisions
A built in 2 stage Recycle bin
All lists are RSS enabled out of the box
Mobile support is standard
Blog and Wiki Site Templates
So many navigation options your head will spin (This is a good thing)
The addition of CMS features allows you versioning and publishing control of your portal
The New Search Center
The amount of 2 way interaction with Outlook 2007


In the client software I am really enjoying:
Quick Preview
The Ribbon
Outlook 2007 is an RSS Reader
XML Format
Save as PDF


What do you want to see me write about first?  Just let me know and I will see what I can come up with for you. 


Thanks



Shane
SharePoint Help

How do I add a preconfigured XML web part to a site definition? Part 1 of 3 on the road to sticky left hand navigation in SharePoint Portal Server.

So our 1st technical challenge to overcome from “The Road to Sticky Left Hand Navigation in SharePoint Portal Server 2003” is how to add a pre-configured XML web part to a site definition.  I would have thought this would have been previously documented but then I remembered this is SharePoint and nothing is documented.  <grin>  Ok, that might be an exaggeration but all of the examples I could find about adding a web part to a site definition used the image web part as an example.  So let’s quickly look at that code.  If you open the onet.xml for the STS definition (C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1033\STS\XML\onet.xml)from a default SharePoint install you will see:


<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>
                        <Title>Site Image</Title>
                        <iwp:ImageLink>/_layouts/images/homepage.gif</iwp:ImageLink>
                   </WebPart>
                   ]]>
                </AllUsersWebPart>


Ok so that is our example text.  Now what?  Well let’s see if we can figure out how to plug into that format the information that is needed to render an XML Viewer web part.  Well, I tried the guessing game for a little bit and realized I would have a better shot at getting my dog to answer the phone than I would at guessing the combination.  Then it occurred to me… the best way to see the code it takes to render that web part is to configure one the way I want and then export it.  So I export the configured part and save it as XML Web Part.dwp.  Then I open that file with WordPad (for some reason WordPad does a much better job than notepad) and here is what I found:


<?xml version=”1.0″ encoding=”utf-8″?>
<WebPart xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/WebPart/v2″>
  <Title>XML Web Part</Title>
  <FrameType>None</FrameType>
  <Description>Use for XML, and XSL Transformation of the XML.</Description>
  <IsIncluded>true</IsIncluded>
  <ZoneID>{7AC0DCA3-098D-40FF-B6C3-D945910AC119}</ZoneID>
  <PartOrder>1</PartOrder>
  <FrameState>Normal</FrameState>
  <Height />
  <Width />
  <AllowRemove>true</AllowRemove>
  <AllowZoneChange>true</AllowZoneChange>
  <AllowMinimize>true</AllowMinimize>
  <IsVisible>true</IsVisible>
  <DetailLink />
  <HelpLink />
  <Dir>Default</Dir>
  <PartImageSmall />
  <MissingAssembly />
  <PartImageLarge>/_layouts/images/msxmll.gif</PartImageLarge>
  <IsIncludedFilter />
  <Assembly>Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
  <TypeName>Microsoft.SharePoint.WebPartPages.XmlWebPart</TypeName>
  <XMLLink xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml”>http://portal.abc.local/SiteImages/links.xml</XMLLink>
  <XML xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml” />
  <XSLLink xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml”>http://portal.abc.local/SiteImages/links.xsl</XSLLink>
  <XSL xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml” />
  <PartStorage xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml” />
</WebPart>


Now believe it or not all we have to do is play the match game.  (Wasn’t life much simpler back in the day when you just had to draw a line from the yellow square to the red square because they were the same shape.)  So for example the first section is Web Part.  In the onet.xml file you have:


<WebPart xmlns=”http://schemas.microsoft.com/WebPart/v2″ xmlns:iwp=”http://schemas.microsoft.com/WebPart/v2/Image”>


And in the DWP you get:


<WebPart xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/WebPart/v2″>


So I just build my XML Web Part in the onet.xml file in this manner.  Following the match game I ended up with:


<AllUsersWebPart WebPartZoneID=”Right” WebPartOrder=”1″>
  <![CDATA[
     <WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2">
        <Assembly>Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
        <TypeName>Microsoft.SharePoint.WebPartPages.XmlWebPart</TypeName>
        <FrameType>None</FrameType>
        <Title>XML Web Part</Title>
      </WebPart>
   ]]>
 </AllUsersWebPart>


Now I knew there was no chance of this working because I hadn’t given it enough information yet.  I hadn’t told the web part where to get the XML or XSL file from yet.  I also noticed while I was playing the match game I no match for the line:


<iwp:ImageLink>/_layouts/images/homepage.gif</iwp:ImageLink>


So in place of that line I put in the sections that I thought would create my links for me:


<XMLLink xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml”>http://portal.abc.local/SiteImages/links.xml</XMLLink>
  <XML xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml” />
  <XSLLink xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml”>http://portal.abc.local/SiteImages/links.xsl</XSLLink>
  <XSL xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml” />
  <PartStorage xmlns=”http://schemas.microsoft.com/WebPart/v2/Xml” />


As you can see here there are links for the XML file and XSL file that I had put in a document library called SiteImages.  I did this so the user could quickly modify the files to affect the navigation for updates in the future. 


So now I took this junk of code and in put it in onet.xml file:


<AllUsersWebPart WebPartZoneID=”Right” WebPartOrder=”1″>
 <![CDATA[
    <WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2">
          <Assembly>Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
          <TypeName>Microsoft.SharePoint.WebPartPages.XmlWebPart</TypeName>
          <FrameType>None</FrameType>
          <Title>XML Web Part</Title>
          <XMLLink xmlns="http://schemas.microsoft.com/WebPart/v2/Xml">http://portal.abc.local/SiteImages/links.xml</XMLLink>
          <XML xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
          <XSLLink xmlns="http://schemas.microsoft.com/WebPart/v2/Xml">http://portal.abc.local/SiteImages/links.xsl</XSLLink>
          <XSL xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
          <PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
    </WebPart>
   ]]>
</AllUsersWebPart>


Did a quick IISReset and created a new site.  Viola a pre-configured XML web part.  Now if I wanted to get tricky I could use the article How to create a site definition that creates a picture library and populates it with an image. To create the document library with the XML and XSL file already included. 


Here is a link to an onet.xml file saved as a word doc with this code already placed in it.  I have highlighted the code in blue so you can quickly scroll through and find it.  Also, if you would like to use a preconfigured XML and XSL file to test with (and to demonstrate how to make one with built in images and links) you can find them here.


A special thank you goes to Kevin Pine at SharePoint Solutions.  He helped me work through these issues.  (He is also the one who did the entire site definition for SharePoint911.com.)  Anyway, he has a special course for teaching these types of customizations to SharePoint that he wrote “SharePoint 2003 Extreme Makeover”.  And if you sneak over to this LINK for a limited time you can grab yourself a $200 discount on the course and the chance to win an IPod.  SHHH!  It is a secret. 



Shane Young
SharePoint Help

The Road to Configurable Sticky Left Hand Navigation in SharePoint Portal Server 2003

So I remember from my beginning days of trying to understand how to make a good (good being a VERY relative word in my case) web site that the first things I always had to figure out was a consistent header and consistent left hand navigation.  Unfortunately, as we all know, SharePoint Portal does not allow you to add links to the left hand nav bar that follows you from area to area.  In this case though it was something my client wanted.  And of course he did not want just words with links.  Oh no he wanted pretty little icons next to a fancy font.  So what was I to do?  Well I sat down with Kevin Pine of SharePoint Solutions and started to work through the problem. 


Kevin started the project saying whatever our solution was it could not be “hard coded”.  He wanted to be sure that if the client asked to add a new link and icon for a site that we could quickly make this update.  And I don’t mean quick like having 5 people opening every area in the portal with FrontPage; I mean quick like updating 1 or 2 files and having the changes propagate throughout the portal.  He also did not want to have to manually configure this on every new area created.  Wow!


<Hit your commercial skip button on your Tivo and skip all of the banter of how we got to the solution.> The solution we came up with was as follows.  We were going to add a new web part zone to the existing left hand column of an Area, populate that zone with an XML web part, and point that web part at the appropriate config files.  We of course are going to add these changes to all of the portals area definitions so going forward as they create new areas they will always be presented with this consistent nav bar.  And as they wish to change the links or icons they can just modify one set of xml and xsl files since all of the xml web parts will point to one reference location.  What a cool solution! 


Now to conquer some of the technical challenges we will use techniques taught in Extreme Makeover Portal Edition by SharePoint Solutions.  This three part series will explore the solutions to our 3 major technical challenges.  The first challenge will be how to add an XML web part preconfigured to a site definition.  The second challenge will be adding a new web part zone to the left hand nav column of an area definition to hold our XML web part.  The first 2 challenges are solved as independent problems of achieving sticky navigation.  That way if you only need to implement one portion it is easy to see how that works.  The 3rd part will be written to apply those 2 ideas to our problem to a working portal environment and to help solve anything that will come up when manipulating SharePoint in so many places.


How do I add a preconfigured XML web part to a site definition?  Part 1 of 3 on the road to sticky left hand navigation in SharePoint Portal Server.

A new book to help you understand SharePoint Customizations

SharePoint 2003 Advanced Concepts : Site Definitions, Custom Templates, and Global Customizations (Paperback)


I was fortunate enough to get a preview copy of this book and I would highly recommend it if you are looking to customize SharePoints look and feel.  The book does a great job of explaining different customization options available and how you can make use of them. I don’t think anywhere else have I found so many questions about site definitions, ghosting, templates, themes, etc. answered in the same place.  I really wish I had this book when I started trying to understand customizing SharePoint.  Would have saved me lots of searching the internet for answers. 


Shane

SQL 2000 vs SQL 2005 should be 32 bit vs 64 bit

Remember the post from Feb of this year on SQL 2000 vs 2005 performance test on SharePoint?


I bit my tongue then but I am going to say my peace now since the article is bouncing around blog land.


My biggest concern is that the article forgets an important scenario.  The most common one that you are currently running SQL 2000 on 32bit hardware.  These test were only ran on 64 bit hardware not 32 bit.  How many installations of SQL 2000 do you know of running on 64 bit?  Zero for me and I have some very large clients.


So for them to imply that you just need to install SQL 2005 to make SharePoint faster is a little misleading.  What it should say is if you are using 64bit hardware you should install SQL 2005.  I haven’t done any formal benchmarking but last time I looked it seemed the performance increase for SharePoint when going from SQL 2000 to SQL 2005 in a 32bit environment is little to none.


Now don’t misunderstand me.  I do not doubt that if you are in a 64bit environment that you would get huge gains with SQL 2005.  A matter of fact I think if you have the hardware you would be silly not to upgrade.  What I am saying is don’t use this article to justify upgrading your 32 bit SQL Server. 


Now I think since 32bit hardware is still the norm in most computer rooms wouldn’t it have been better to present the data for this upgrade?  How upset would you be if you went through all of the money, time, and effort to upgrade to SQL 2005 on your current 32bit hardware to cure your SharePoint performance problems and nothing changed?  That is the kind of things that cause people to lose their jobs.   


Anybody have any actual numbers on SQL 2000 vs 2005 on 32bit hardware?



Shane
SharePoint Help

Using Document Workspaces to allow your whole team to edit a document at once

This is an old series of articles from Kit Kai’s Tech Blog that I tripped over this morning.  I didn’t know this was possible so I am guessing a lot of other people didn’t either.  Anyway check out the 4 part series and find out how SharePoint can juggle multiple editing the same word document at the same time.  Very Cool!  Good job Kit Kai!


Allowing entire team to edit a document together (Part 1) Allowing entire team to edit a document together (Part 2)  Allowing entire team to edit a document together (Part 3) Allowing entire team to edit a document together (Part 4)