WSS SharePoint SP2 file change list

Here is a list of file changes that I found with the WSS SharePoint 2007 SP2 (I'll post some of the more interesting changes inside each of the files when I get some more time away from TechEd):

Template files:

C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQLSTORE.SQL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQLSTOREUP.SQL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQLSEARCHDB.SQL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQLSIGSTORE.SQL
C:Program FilesCommon FilesMicrosoft Sharedweb server
extensions12TEMPLATESiteTemplatesCENTRALADMINLISTSDISTRIBUTIONLISTSschema.xml
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESDocumentLibraryDocLibschema.xml
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESDiscussionsListDiscussschema.xml
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESiteTemplatesBlogListsPostsschema.xml
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQLSEARCHDBUPGRADE.SQL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEGLOBALXMLONET.XML
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQL1033SEARCHDBOOB.SQL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTS1033OWS.JS
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTS1033FORM.JS
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESfieldsfieldswss.xml
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12CONFIGAdminResourcesspadmin.resx
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12CONFIGAdminResourcesspadmin.en-US.resx
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTS1033BFORM.JS
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTSqstnew.aspx
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTSviewnew.aspx
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTSFldNew.aspx
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTSqstedit.aspx
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTSviewedit.aspx
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTSFldEdit.aspx
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQLSIGSEARCHDB.SQL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEGLOBALListsWEBTEMPSCHEMA.XML
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTS1033CORE.JS
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEGLOBALListsWPLIBSCHEMA.XML
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEXMLwss.xsd
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTS1033INIT.JS
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQLCONFIGDB.SQL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEXMLDeploymentManifest.xsd
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12CONFIGTIMEZONE.XML
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQLCONFIGUP.SQL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTS1033IMGLIB.JS
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATE1033XMLRGNLSTNG.XML
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTSItemRWfAssoc.aspx
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESQLSIGCONFIGDB.SQL
C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions12CONFIGPreUpgradeCheckWssPreUpgradeCheck.xml
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEIMAGESICODP.PNG
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEIMAGESICODS.PNG
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEIMAGESICODT.PNG
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEIMAGESlg_ICODP.png
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEIMAGESlg_ICODT.png
C:Program FilesMicrosoft Office Servers12.0DataConfig
oisecsy.txt
C:Program FilesMicrosoft Office Servers12.0DataConfig scsy.xml

Binary files:

C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIMicrosoft.SharePoint.dll
C:Program FilesCommon FilesMicrosoft SharedSERVER12Server Setup ControllerWSSSETUP.DLL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIOWSSVR.DLL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BIN query.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINmssrch.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINONETUTIL.DLL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINSTSWEL.DLL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIMicrosoft.SharePoint.Search.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINoffparser.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINDBGHELP.DLL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINpsconfigui.exe
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINmssph.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12CONFIGBINMicrosoft.SharePoint.ApplicationPages.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINPSCONFIG.EXE
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINSTSADM.EXE
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINpa.userinterface.dll
C:Program FilesCommon FilesMicrosoft SharedSERVER12Server Setup ControllerSETUP.EXE
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINonetnative.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12CONFIGBINSTSSOAP.DLL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINmssdmn.exe
C:Program
FilesCommon FilesMicrosoft Sharedweb server
extensions12CONFIGADMINBINMicrosoft.SharePoint.ApplicationPages.Administration.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BIN1033mssmsg.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINpa.common.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPImicrosoft.sharepoint.WorkflowActions.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINmssearch.exe
C:Program FilesCommon FilesMicrosoft SharedFiltersxmlfilter.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINPRESCAN.EXE
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINSTSMMC.DLL
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINpa.configcollector.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINoleparser.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINSPWRITER.EXE
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINwsstracing.exe
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINmsscntrs.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINquery.dll
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINOWSTIMER.EXE
C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12BINcustsat.dll
C:Program FilesCommon FilesMicrosoft SharedSERVER12Server Setup ControllerWrapInst.exe
C:Program FilesCommon FilesMicrosoft SharedSERVER12Server Setup ControllerWSS.en-usWSETUPUI.DLL

 

Oslo – Language "M" – Don Box presentation

Code Generation has been close to my heart for years!  I built versions of Linq and Oslo before MS had them…there were howevere pieces that I always wanted to write, but as a single person, never had the time to do!  I just walked away from a presentation by Don Box at TechEd 2009 about "Oslo".  I can't even begin to tell you how exciting the language "M" is and that it will change the way we do all kinds of things in the future.  My image of Trekkism is getting closer and closer!

Download "Oslo" here

I'll be posting more details of "Oslo" after I catch up on all the other cool blogs I need to do from TechEd!

Chris Givens

How to upgrade to SharePoint 2007 SP2 – Step by Step

I built this lab for the latest update to my Advanced SharePoint Operations course.  But I felt like it would benefit the entire community…so here you go!  Good luck!

Module #25: Updating The Farm Lab #01

 

Course:                SharePoint
2007 Operations

Estimated Time to Complete:  45 minutes

Objectives:

·        
Upgrade to SP2

Operating
Notes:
 

·        
You will need sharepoint2007 and svr-sp2
images

·        
Assumes that you are using SQL Server
2000/2005/2008 for your database server (Not Internal DB engine)


Deliverables:

·        
None

 

Overview:         Learn
the steps of preparing your farm for upgrade and then performing the upgrade.

Exercise 1 – Prep the Farm

Purpose:
        There
are a series of recommend steps that will speed up the upgrade of your
SharePoint Farm.  Following these
somewhat simple suggestions will get you through the process much faster!  Rebuilding indexes will ensure that the
upgrade process will modify the database schemas and records as quick as
possible.  Truncating the log files will
ensure that your backup and restores will run quickly.  Detaching

Result:           
A farm ready for upgrade

Task 1 – Clean up the
databases (rebuild indexes)

  1. Open SQL
    Server Management Studio
  2. Connect
    to your sharepoint database server
  3. Click
    “New Query”
  4. Run (press
    Atl-X) the following command on each SharePoint database (set the dropdown
    for each):
    • WSS_Content*
    • SharePoint_Config*


SELECT  object_id, index_id, avg_fragmentation_in_percent,
page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL , NULL)
order by avg_fragmentation_in_percent desc

SET NOCOUNT ON
    DECLARE @objectid int
    DECLARE @indexid int
    DECLARE @command varchar(8000)
    DECLARE @baseCommand varchar(8000)
    DECLARE @schemaname sysname
    DECLARE @objectname sysname
    DECLARE @indexname sysname
    DECLARE @currentDdbId int

   
SELECT @currentDdbId = DB_ID()

   
PRINT CONVERT(nvarchar, GETDATE(), 126) + ': Starting'

DECLARE indexesToDefrag CURSOR FOR

SELECT
       
i.object_id,
        i.index_id,
       
i.name
FROM
       sys.indexes AS i
INNER JOIN
        sys.objects AS o
ON
        i.object_id = o.object_id
WHERE
        i.index_id > 0 AND
        o.type = 'U'

   
OPEN indexesToDefrag
    -- Loop through the partitions.

   
FETCH NEXT
    FROM
        indexesToDefrag
    INTO
        @objectid,
        @indexid,
        @indexname
    WHILE @@FETCH_STATUS = 0
    BEGIN
        -- Lookup the name of the index
       
SELECT
            @schemaname = s.name
        FROM
            sys.objects AS o
        JOIN
            sys.schemas AS s
        ON
            s.schema_id = o.schema_id
        WHERE
            o.object_id = @objectid

       
PRINT CONVERT(nvarchar, GETDATE(), 126) + ': ' + @schemaname + '.' +
@indexname + ' is now being rebuilt.'

       
-- Fragmentation is bad enough that it will be more efficient to
rebuild the index

       
SELECT @baseCommand =
            ' ALTER INDEX ' +
                @indexname +
            ' ON ' +
                @schemaname + '.' +
object_name(@objectid) +
            ' REBUILD WITH (FILLFACTOR
= 80, ONLINE = '

       
-- Use dynamic sql so this compiles in SQL 2000
        SELECT @command =
            ' BEGIN TRY ' +
               @baseCommand + 'ON) ' +
            ' END TRY ' +
            ' BEGIN CATCH ' +
               -- Indices with
image-like columns can't be rebuild online, so go offline

               @baseCommand + 'OFF) ' +
            ' END CATCH '

       
PRINT CONVERT(nvarchar, GETDATE(), 126) + ': Rebuilding'
        EXEC (@command)
        PRINT CONVERT(nvarchar,
GETDATE(), 126) + ': Done'

       
FETCH NEXT FROM indexesToDefrag INTO @objectid, @indexid, @indexname
    END

   
CLOSE indexesToDefrag
    DEALLOCATE indexesToDefrag

SELECT  object_id, index_id, avg_fragmentation_in_percent,
page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL , NULL)
order by avg_fragmentation_in_percent desc

GO

 

Task 2 – Check disk
space on web and database servers

  1. On each
    web front end, open Explorer to “My Computer”, record your disk space.  Make sure you have at least 300MB free
    for install of files
  2. On each
    database server, open Explorer to “My Computer”, record your disk
    space.  Make sure that you have
    enough space to make a copy of your largest
    content database.
    • Example:  if you have three databases of size
      10GB, 20GB and 30 GB.  Make sure
      you have at least 30GB of free space on your DB server.

Task 3 – Backup the
databases (truncate and backup)

  1. Create a
    folder called “D:Backups”, ensure that you have enough disk space to save
    all your backups to this location (add the size of each database to
    determine how much you will need)
  2. Run the
    following commands TWICE for each database (this will shrink, backup and
    truncate your database and log files):
    • WSS_Content*
    • WSS_Search*
    • SharePoint_Config
    • SharedServices*


use WSS_Content

dbcc shrinkfile ('WSS_Content')
dbcc shrinkfile ('WSS_Content_log')
go

backup database WSS_Content to disk =
'D:ackupswss_content.bak'
go
backup log WSS_Content to disk = 'D:ackupswss_content.bak'
go

dbcc shrinkfile ('WSS_Content')
dbcc shrinkfile ('WSS_Content_log')
go


Task 3 – Evaluate Database Size

  1. If you
    designed your farm wrong, it is possible that you have a single web
    application with a single content database that contains all your
    content.  This type of setup
    normally means you have a database that is going to get large very quickly
    and backup and restore operations, as well as future upgrades could take a
    considerable amount of time.  It is
    suggested that you create more content databases and partition your site
    collections across multiple databases.
  2. You have
    two options to do this:
    • Create
      another content database in the web application
    • Create
      another web application with a new content database
  3. Create a
    new site collection in your port 100 site
    • Open
      “Central Administration”
    • Click
      “Application management”
    • Click
      “Create Site collection”, ensure that you are on port 100 web application
    • For
      Title, type “SC2”
    • For
      URL, select “/sites/”, and type “SC2”
    • For
      owner, type “administrator”
    • Click
      “Ok”
  4. You will
    now have two site collections in your content database, you can use the
    following commands to backup a site collection, delete it and restore to a
    different web application (and hence a new content database):


stsadm -o backup -url http://sharepoint2007:100/sites/Sc2 -filename
c:ackup.dat –overwrite

stsadm –o deletesite -url http://sharepoint2007:100/sites/Sc2

stsadm -o restore -url http://sharepoint2007:777/sites/sc2
-filename c:ackup.dat

  1. You can continue
    this process to load balance your site collections across multiple content
    databases and in essence distribute your database sizes so that upgrading
    will not be so painful.
    • NOTE:
      you can only use a url once in a web application

Task 4 – Detach the content
databases

  1. Open the “Central
    Administration” site
  2. Click
    “Application Management”
  3. For each
    web application in your web application list (EXCEPT central
    administration), do the following steps. NOTE: Click “Web Application
    List” to see them all:


    • Click
      “Content Databases”


    • You
      will see a list of content databases for the web application
    • Click
      the database name


    • Click
      the “Remove content database” check box
    • Click
      “Ok”
    • Click
      “Ok”


    • Click
      “Ok”
    • You
      should now see that the web application has no content databases:


  1. Again, do
    this for every web application EXCEPT the Central administration web
    application!
    • NOTE:
      you may have several content databases…this may be a tedious task so you
      should likely follow step 5
  2. You can
    also create a command line utility to do this:
    • Open
      Visual Studio
    • Click
      “File->New Project”
    • Select
      “Console Application”
    • For
      name, type “ContentDetachAttachScript”
    • Copy
      the following into the program.cs file:


using System;
using System.IO;
using System.Collections.Generic;
using System.Text;

using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            TextWriter tw = File.CreateText("C:/detachall.bat");
            TextWriter tw2 =
File.CreateText("C:/attachall.bat");

       
    SPFarm farm = SPFarm.Local;
           
SPAlternateUrlCollectionManager mgr =
farm.AlternateUrlCollections;                                             

            foreach (SPAlternateUrlCollection
altColl in mgr )
            {
                foreach (SPAlternateUrl
url in altColl)
                {
                    if (url.UrlZone ==
SPUrlZone.Default)
                    {
                        try
                        {
                            SPSite site
= new SPSite(url.IncomingUrl);

 

                            SPWeb root = site.RootWeb;
                            if (root.WebTemplate
!= "CENTRALADMIN")
                            {
                                //get
the web application for the site collection
                               
SPWebApplication webApp = site.WebApplication;

                                foreach
(SPContentDatabase cd in webApp.ContentDatabases)
                                {
                                   
tw.WriteLine("stsadm -o deletecontentdb -url " + url.IncomingUrl
+ " -databasename " + cd.Name + " -databaseserver " +
cd.Server);

                                   
tw2.WriteLine("stsadm -o addcontentdb -url " +
url.IncomingUrl + " -databasename " + cd.Name + "
-databaseserver " + cd.Server);

                                    //Console.WriteLine("Content
Database [" + cd.Name + "] was detached");

                                   
//cd.Delete();

 
                              }
                            }
                        }
                        catch (Exception ex)
                        {
                           
Console.WriteLine(ex.Message);
                        }                       
                    }
                }
            }

            tw.Close();
            tw2.Close();

            Console.WriteLine("Press
enter to close");
            Console.ReadLine();

       
}
    }
}

    • Compile
      the program, press F6
    • Copy
      the executable to your SharePoint Farm
    • Run
      the executable
    • Open
      the C:detachall.bat file , this file will contain all the stsadm
      commands that will detach all your content databases
    • Open
      the C:attachall.bat file, this contains all the stsadm commands to
      reattach your databases (NOTE: you should attach one at a time in the
      later steps).


Task 5 – Backup important files

  1. If running
    in a virtual environment, backup your front end webservers main image file.  After doing this, you may skip the rest
    of these steps and head straight for upgrade!!!
  2. Web.config
    files for all web applications (located in WSS directory of wwwroot)
  3. Core Site
    definitions that were modified  (
    located in 12 hive template/sitetemplates directory)
  4. Any
    customizations including:
    • Changes
      made to core.css
    • Changes
      made to javascript files
    • Pretty
      much anything you changed in the 12 hive…

Task 6 – Upgrade the
servers (WSS)

  1. Stop IIS
    • Open
      a command prompt, run “iisreset /stop”
  2. Run
    “d:lab files25_Lab01
    wssv3sp2-kb953338-x86-fullfile-en-us.exe”
  3. Click
    “Click here to accept…” check box
  4. Click
    “Continue”
  5. The
    service pack should start…:


  1. When the
    WSS update finishes, the Configuration Wizard will start:


  1. Click
    “Next”


  1. Click
    “Yes”


  1. Click
    “Next”


  1. Click
    “Ok” at the information popup, the farm will start to configure itself.  This includes:
    • Updating
      DLLs (gac)
    • Creating/Updating
      registry keys
    • Creating/Updating
      12 hive information
    • Updating
      web.config files
    • Installing
      new features
  2. The
    install should finish:


  1. Repeat
    the above steps for the svr-sp2 image

Task 7 – Upgrade the
servers (MOSS)

  1. Stop IIS
    • Open
      a command prompt, run “iisreset /stop”
  2. Run
    “d:lab files25_Lab01
    officeserver2007sp2-kb953334-x86-fullfile-en-us.exe”


  1. Click
    “Click here to accept…” check box
  2. Click
    “Continue”
  3. The
    service pack should start…:


  1. When the MOSS
    update finishes, the Configuration Wizard will start:


  1. Click
    “Next”


  1. Click
    “Yes”


  1. Click
    “Next”


  1. Click “Ok”
    at the information popup, the farm will start to configure itself.  This includes:
    • Updating
      DLLs (gac)
    • Creating/Updating
      registry keys
    • Creating/Updating
      12 hive information
    • Updating
      web.config files
    • Installing
      new features
  2. The
    install should finish:


  1. Repeat the
    above steps for the svr-sp2 image

Task 8 – Reattach the
content databases

  1. Open the
    C:attachall.bat file, run the attach command for each content database
    that you detached
  2. SharePoint
    will upgrade the database as it attaches it.

Task 9 – Verify
Install

1.       Open
the upgrade.log file (in 12 hive LOGS directory)

o   
Look for “Finished upgrading SPFarm Name=<Name of
Configuration Database>”

o   
Look for “In-place upgrade
session finishes. Root object = SPFarm=<Name of Configuration Database>,
recursive = True. 0 errors and 0 warnings encountered.”

2.      
If the above entries DO NOT
exist, look for all instances of

o   
“fail”

o    “error”

3.       Check
version number on:

o    Owssvr.dll
(in 12 hive isapi directory) should be “12.0.6421.1000”

 


 

o    Registry
“HKEY_LOCAL_MACHINESOFTWAREMicrosoftShared ToolsWeb Server Extensions12.0”

 


o    Central
administration

4.       Check
version of the sharepoint databases:

o    Run
the following sql command on each database:


select * from versions
order by timestamp desc

 

o    You
should get “12.0.0.6421”

 


5.       On
Central Administration, click “Operations”

o    Click
“Servers In Farm”

o    The
version for the farm and servers should be “12.0.0.6421”

 


Task 10 – Check for
SharePoint 2010 readiness

1.       Run
the following command:


stsadm –o preupgradecheck

 

2.       Review
the PreUpgradeCheck-*.htm file in the 12 hive logs directory (it should open in
a browser window

3.       You
should watch out for the following items:

o    The
above command should be run on all Web Front end servers to ensure they are
identical

o    You
should review the Site Definition information for any non “Internal” site definitions,
these will need to have an upgrade definition file.  Your developers will need to build this file
for SP 2010

o    If
you have language packs installed, you will need to install the latest version
when SP 2010 comes out

o    Look
for any referenced and missing features. 
Either install them or delete the references to them

o    Depending
on the type of upgrade to SP 2010 you do, you many need to plan for URL changes
in your sites

o    Review
the Lists that have more than the recommends number of items.  These could slow the migration process to SP
2010.  Consider removing the list or
deleting items to shrink the list size

o    Review
any Custom Field types that have been added to your Farm.  CAML is not used in SP2010 and each of them
will need to be re-developed with XSLT in mind.

o    If
you are running on 32 bit OS and Server 2003, you will need to start planning
for migration to a 64bit server 2008 environment to run SP 2010

o     

 

Removing &quot;Open With Windows Explorer&quot; custom action

There is this great blog by Jérémie Clabaut about hiding the "Open In Explorer" custom action…it however misses the a few points of what is trying to be accomplished by doing it.

 http://jclabaut.free.fr/serendipity/index.php?/archives/52-Hide-Open-with-windows-explorer-menu-in-list-actions.html

Once you have deleted the section, end users can STILL access the explorer view via two methods:

1) The "Explorer View" via the dropdown on the right
2) "My Network Places" via windows explorer

In order to remove the the "Explorer View" on the library, you would need to delete it from the library settings page (at the bottom).  BUT you would have to do this for every library that exists and every list that gets created!  This means you would need to remove the view from the Site Definition for the document library so it doesn't get created every time.

For the second, there is nothing you can do but to remove the "Use Remote Interfaces  –  Use SOAP, Web DAV, or SharePoint Designer interfaces to access the Web site." permission from any Permission Level that the users are in!  However, even though this SHOULD remove there ability to use Network Places, it does not (at least in pre-SP1 environment).

The last resort to prevent uploading of documents without entering metadata is to write an event handler that enforced those columns be there or you cancel their item add.

Chris

SharePoint SP2, why a web.config change? Why not MergeActions and webconfig.sps.xml?

If you look at the SharePoint web.config file for a web application, you will notice the following section handler:

 <section name="MergedActions" type="System.Configuration.SingleTagSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

Looking at the section you will see something similar too:

 <Action id="fc002d03-7839-402b-a94a-1c9a2d40b63d" sourceFile="C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions12configwebconfig.sps.xml" />

Then referencing the webconfig.sps.xml file, you will see that a merge action ADDS to your existing web.config file!

<add path="configuration/SharePoint/SafeControls" id="{FC002D03-7839-402b-A94A-1C9A2D40B63D}">
  <SafeControl Assembly="Microsoft.SharePoint.Portal, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Portal.WebControls" TypeName="*" />
  <SafeControl Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Publishing" TypeName="*" />
  <SafeControl Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Publishing.Internal.WebControls" TypeName="*" />
  <SafeControl Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Publishing.WebControls" TypeName="*" />
  <SafeControl Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Publishing.Navigation" TypeName="*" />
  <SafeControl Assembly="Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Server.WebControls" TypeName="*" />
  <SafeControl Assembly="Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Server.WebControls.FieldTypes" TypeName="*" />
  <SafeControl Assembly="Microsoft.Office.Workflow.Feature, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Server.WebControls.FieldTypes" TypeName="*" />
  <SafeControl Assembly="Microsoft.Office.Excel.WebUI, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Excel.WebUI" TypeName="*" />
  </add>
 

 So why do we have to worry about a web.config change if all the SharePoint Team has to do is modify the webconfig.sps.xml???  Hmmm…maybe someone didn't know about it in the design team?

 Chris

ASMX Code Execution – Page Parser Paths don’t lock em down!

Well, everyone is likely aware of the NO INLINE code of SharePoint pages feature called Page Parser Paths.  BUT did you know…ASMX files with code in them…WILL RUN!!!

All you have to do is:

  • Create a web service that has code on the .asmx page
  • Set the blocked file types to remove the .asmx file type
  • Upload the file to a document library
  • Click the file, notice the nice .NET page that gets created to allow you to call the "HelloWorld" method
  • Run the "HelloWorld" method, wow…it runs!

NET NET…don't remove asp.net file types from the blocked file types of your web application.  You will open your end users and developers to world of possibilties that you really don't want them to have!

I'm not sure if this is by design or not, but as a CISSP, this is not a good thing in my eyes!

Advanced Windows Workflow Foundation

Sweet…the course is done!  It will be posted to the courseware library this week and available in about two weeks for instructors around the world to teach from!  I have attached the outline:

 

  • Architecture
    • Install WWF Databases
    • Setup Sql Tracking Service
    • Setup Sql Persistence Service
    • Setup Workflow Scheduler Service
  • Workflows
    • Create a simple workflow
    • Debug a simple workflow
    • Examine .xoml files
    • Examine Workflow Events and Services
    • Create a simple state machine workflow
    • Create an advanced state machine workflow
  • Activities
    • Utilize parameters in workflows
    • Implement Flow Control
    • Use the Policy Activity
    • Create a simple Rule Set
    • Explore Priority
    • Explore Dependency
    • Explore Reevaluation
    • Explore Chaining
    • Policy Tracing
    • Programmatic Rule Set Creation
    • Dynamic Updates
    • Implement Active Directory Role Security
    • Implement Workflow Level FaultHandlers
    • Implement Scoped FaultHandlers
    • Explore Workflow Cancellations Techniques
    • Explore Workflow Synchronization
    • Call Web Services from Workflows
    • Expose Workflow as Web Service
    • Implement CallExternalMethod and HandleExternalEvent Shapes
    • Implement Correlation in your workflow
    • Implement Transactional Scopes
    • Implement Compensation
    • Create a composite activity
    • Create a custom activity
    • Create an Activity Validator
    • Create an Activity Designer
    • Serializable attribute
    • Serialization Errors
    • Serialization Surrogate’s
    • Understand Spawned Contexts
  • Management
    • Explore Workflow Runtime Configurations
    • Create a Custom Persistence Service
    • Create a Custom Tracking Service
    • Explore Tracking Channel details
    • Explore Tracking Service details
    • Modify a workflow at runtime (from inside)
    • Modify a workflow at runtime (from outside)
    • Update a workflow assembly and redeploy (different version)
  • Hosting Workflows
    • Learn to host Workflows with Windows Communication Foundation (WCF)
    • Start workflow with WCF Request Message
    • Consume WCF from WF
    • Create a custom workflow using Visual Studio

Chris

SharePoint 2010 &amp; My Twitter Page

I'm sure alot of you have heard, but the offical name of the next version of SharePoint is Microsoft SharePoint 2010!  Woohoo!  They will also be posting service pack 2.0 for MOSS and WSS 4.0 soon.  These will be prereqs for upgrading to SharePoint 2010!

 If you want to follow me on twitter, my url is http://twitter.com/givenscj

Chris

Workflow 4.0

I am very impressed by the upcoming workflow 4.0.  Although it will force us to re-write many of our older 3.5 and 3.0 workflows, it is definitely worth the price of entry!  I am currently building an Advanced Windows Workflow 4.0 course and should be releasing it next week!  I can already see that I will be doing a new version in a few months to upgrade it to 4.0!  I'll post the outline here next week when I submit to Microsoft Learning!  Oh, and here isan awesome rundown on WF 4.0:

http://sergeluca.spaces.live.com/blog/cns!E8A06D5F2F585013!3233.entry

Chris