MOSS and SharePoint Services v3 resources page – latest additions

I have been updating my “Resources and tools for WSS 3 and MOSS 2007” page regularly over the last months. Here is a overview of the latest changes.

Additions to the list:

ElBlanco's SharePoint Add-ons
A collection of add-ons for WSS 3.0 and MOSS 2007, although at this time there is only one available: the useful Event Receivers Manager.

Useful Sharepoint Designer Custom Workflow Activities
This CodePlex project provides custom workflow activities for SharePoint Designer.

LINQ to SharePoint
Bart De Smet is working on a tool for using LINQ with SharePoint.

U2UPropertyPagePackage - a feature that adds a List settings page
If you ever needed to get all the details on a list including the ID, properties, content types, site column IDs, and more this feature is for you.

Application Pool Recycle Utility for SharePoint Developers
System Tray utility shows you all the application pools for your IIS and allows you to recycle them via the click of a button.

Updates to resources:

SharePoint Solution Installer: the source code for this tool has now been released via CodePlex.

Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions, Version 1.1 CTP – link added.

And not to forget the updated and revised versions of the WSS3 and MOSS 2007 SDKs:
SharePoint Server 2007 SDK: Software Development Kit
Windows SharePoint Services 3.0: Software Development Kit (SDK)

 

Technorati tags: ,

VISUG session on Silverlight

Yesterday I went to the Belgian VISUG session on Silverlight: “Light up the web: Visug goes Silverlight”.

Gill Cleeren presented a very good overview of the main parts of Silverlight 1.0 and 1.1, did enough demo’s and a small introduction on XAML. Great stuff to get started on this new technology!
You can find the source code samples on his Gill’s blog post: http://www.codeflakes.net/blog/post/Silverlight-presentation-slide-deck-and-demo's.aspx

Also check out Gill’s company blog to which he also participates: N-Technologies.

 

Technorati tags: , ,

My session notes on IT-Talks - Installing, administering and working with SharePoint 2007

Yesterday was a day at school. Not actually school but a full day at the IT-Talks user group session “Installing, administering and working with SharePoint 2007”.

It was a one hour drive from where I live, and it was on a Saturday, but there I went. A one-hour drive here in Belgium means I’m almost on the other side of the country :-)
Upon arrival at the location most people were already there so I had to search for a free spot. We were about 25 people assisting to the session, that’s not bad if I may say so.

The idea was to go over a few slides and do all the labs ourselves. However there were some infrastructure problems and the labs weren’t possible. So we mainly watched over on the projector.

The session was presented by Tom Vandaele and Bart Bultink.

Here are a few notes I made during the event, some of them are tips given by Tom, and some I write here as well more as a note for myself:

Installation of MOSS and domain accounts permissions
More a note for myself, but the basic permissions you need when installing MOSS 2007 are:

  • The SharePoint service account (farm account): needs to be a domain user and needs to be added on the SQL server with ‘dbcreator’ and ‘securityadmin’ permissions settings. Nothing more. Tip: also checkout Spencer Harbar's post on this.
  • The SharePoint seach account: needs to be a domain account, nothing more. Extra permissions to the database will be given to this account by the setup program itself.
  • The user account with which you log on to install must be a local Administrator’s member on the server. I guess this one is rather obvious.

Forcing the creation of a new database for each site collection
There is no setting that allows you to say “force creation of new database per site collection”, however there is a very simple way to enforce this. In Central Administration you can set the state of a database to Offline. This does not mean the database itself is stopped or inaccessible, just that it may no longer be used for a new site collection. By setting your databases to offline you force the Administrator to create a new database for each new Site Collection.
Note: just leave one database online for creation of mysites.
Also check out Tom’s post on this. 

Active directory profile import
A good base design of your AD OU structure is very important. For example you cannot import several organization units from a single AD.
Make sure your system accounts are on a separate OU that does not get imported otherwise those accounts will also end up in the search results. And you don’t want that to happen.

Backup/restore
There are two options available for backup/restore of SharePoint sites: SQL Server database backup and WSS backup functionality. None of these do a backup of your custom code so make sure all your custom solution files, web.config changes and the like are also backed up via the hard drive.
SQL database backup: very efficient backup, this is especially a good solution for backup/restore if you store each site collection in a separate database.
WSS backup/restore: takes more time and therefore probably less efficient than SQL database backup. This can be used to transfer a site collection from a staging environment to another.
Using import/export
This is not a backup functionality but may be somewhat linked: using the export/import functionality you can import a site collection as a sub-site of another site collection. This can be a helper if you need to restructure your site content.

Thanks to the organizers!

 

 


WSS3 and MOSS 2007 issue “The Web site wants to run the following add-on: 'Name ActiveX Control'” and how this affected the page load time

During the pre-production version of a public WCM site we were experiencing some strange delay problems with the loading of the first page visited on the site. The MOSS site is configured with dual authentication providers and anonymous access.
When viewing the first request in a session we sometimes had a wait of 20 to 30 seconds (!), the page would load until the body tag, begin loading the CSS and the background would show. After that we had to wait until the rest of the page loaded.
It was really the page loading until background color appeared, then the 20 second wait until the rest of the page was loaded.
My first though was there was something wrong with connectivity to the server but then we were having the same speed problem when requesting the page on the server locally.
We also did some stress testing to see page response times and the results were rather good as well. No server load problem either then.

Some of the test users were also mentioning a problem with an ActiveX control message “The Web site wants to run the following add-on: 'Name ActiveX Control”.

We decided to apply the workaround/solution proposed by the Microsoft KB article 931509: Message in the Information bar in Internet Explorer 7 when you browse to a Windows SharePoint Services 3.0 site or to a SharePoint Server 2007 site: "The Web site wants to run the following add-on: 'Name ActiveX Control'"

Cause of the problem is the Name ActiveX control (Name.dll) that is called by a SharePoint JavaScript file named “init.js”, has not been added to the list of preapproved controls in Internet Explorer 7. The Name ActiveX control is included in the 2007 Microsoft Office system.

There are two workarounds that require changes on the client computer: not a solution for an internet public site.
The third workaround is to adapt a JavaScript file so that the ActivX contol does not get loaded or called anymore. This is the only acceptable workaround for me.

Implementing the workaround

Even if you are using a custom master page chances are you kept the call to the init.js file as this:

<SharePoint:ScriptLink language="javascript" name="init.js" runat="server"/>

This server call generates a <script> tag on the page that fetches the init.js from the locale folder. The ini.js file can be found on the 12 hive, normally “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033” for a US English version. If you installed a different language or use language packs then replace the 1033 by your locale. Also remember to apply the change to all language packs.

The change that we need to do in this init.js file is simply put the line that makes the ActiveX call in comment. Open up the init.js file (make sure to keep a backup both of the original and your version), locate the following section (it’s the last function in the file):

function ProcessDefaultOnLoad(onLoadFunctionNames)
{
 ProcessPNGImages();
 UpdateAccessibilityUI();
 ProcessImn();
 for (var i=0; i < onLoadFunctionNames.length; i++)
 {
  var expr="if(typeof("+onLoadFunctionNames[i]+")=='function'){"+onLoadFunctionNames[i]+"();}";
  eval(expr);
 }
 if (typeof(_spUseDefaultFocus)!="undefined")
  DefaultFocus();
}

Put the ProcessImn() function call in comment:

function ProcessDefaultOnLoad(onLoadFunctionNames)
{
 ProcessPNGImages();
 UpdateAccessibilityUI();
 //ProcessImn();
//rest of function

This is not exactly the proposed workaround by the KB article but I don’t really get their approach of just putting the function declaration in comment. I don’t even think that will work correctly since the function call still exists and will probably give a JavaScript error (or maybe I’m just missing something there). Anyway, IMHO putting the function call itself in comment is more effective.
I should mention also that creating the new initNoPresence.js file and using that instead of the ini.js in the master page did not have effect. I did not look further into that and just applied the change to the init.js itself.

What’s the result?

In our case applying this change to the init.js file has eliminated the page loading speed problem in IE7. And even with IE6 we see a big difference in loading time of the page.
So be sure to apply this change if you have a public internet site, a small change that can make a difference.

 

Technorati tags: , , ,

 

 

Copyright © 2007 Katrien De Graeve.