Monthly Archives: July 2008

Get Thee to a SharePoint User Group!

In the last two weeks, I attended the New Jersey SharePoint user group and the newly formed New York SharePoint Developers user group (as opposed to the more established New York SharePoint user group).

In New Jersey, the good people of NewsGator presented their product and covered a lot of very interesting social computing concepts.  If you’re looking to incorporate social computing into your organization in a system-assisted way and can’t get out-of-the-box SharePoint to do it for you, seriously check out NewsGator.  It’s very good stuff.  A lot of great social computing functionality and (in a demo environment at least) very well done.

I’m personally convinced that companies that begin to adopt social computing attitudes and systems will outperform those that do not.  It’s too useful to ignore or, at this point I think, to even delay.  It can make a tremendous difference in day-to-day operations if done correctly.  I’ll write some more about this later.

In New York last night, the NY SharePoint Developers group kicked off its inaugural meeting at the MSFT office on 52nd and 6th.  John Bender presented on how to create a custom stsadm extension.  I’ve read about it, but seeing it "live" clarifies things.  It’s much easier than I realized.  No need for features/solutions, just an XML file and a DLL.  He walked through a process for recursively finding and displaying security settings for sites and lists in a site collection.  He took it farther to describe how this could be part of an auditing process.  This group focuses purely on development and so doesn’t come into conflict with larger more established SharePoint user group which is frequently talking at a higher level.

There are groups all across the world.  Check them out.


Subscribe to my blog.

Technorati Tags:

Emailing Daily Task Reminders // Looping in SharePoint Designer Workflow

I wrote up a detailed article a few weeks ago describing how to create a SharePoint Designer workflow that sends a task reminder email on a daily basis.  It’s been published at the new SharePoint Magazine site.  More generally, the article shows how to create a looping structure in SPD.

The magazine has a wide variety of articles including, among other things, very technical stuff, interviews and industry news.  I recommend you add it to your RSS feed.

If you have a product or service to sell, I’d also consider advertising on the site.  It’s off to a strong start with several thousand pairs of eyes looking at it already.  That’s sure to grow.

Lastly, if you’ve been itching to write something and get it out in front of a larger audience, this is a great time and place to scratch it.  


Subscribe to my blog.

Technorati Tags:

SharePoint Best Practices Conference

I’m speaking at the SharePoint Best Practices conference in November.

It’s sort of a funny story.  I was in Virginia presenting at the SUGDC conference and that Friday was the deadline to submit speaking proposals for the BP conference.  The organizers described how they would use a "blind selection" process and that every effort would be made to select presentation on the basis of its value, etc.  To maximize my chances of getting selected, I submitted two proposals.  The selection committee picked both.

My colleague (Natalya Voskresenskaya) and I will discuss a real-world governance model that we and our client put together for a substantial SharePoint rollout project last summer.  The objective here is to describe the details of the governance plan and why we believe it represents best practices in the context of Sharepoint, Governance and similar companies.

Second, I will present a process for obtaining great business requirements from End Users.  This goes back to one of my very early blog posts, inaptly titled "MOSS: Effective introduction to an Organization".

This conference looks to be crazily full of great information and I highly recommend tearing yourself away from your work for three days, joining in on these presentations and networking with both conference attendees and speakers.  It will be time and money well spent.

Hope to see you there 🙂


Subscribe to my blog.

Technorati Tags:

My Latest “In Defense of SharePoint Designer” Article is Available

Mark Miller over at End User SharePoint has posted my latest article about using SharePoint Designer to create great workflow solutions up on his site.  Check it out.

In this article, I talk about the design process and, in greater detail, how to set up a reliable and repeatable test process using SharePoint features (custom lists, site templates).  The article targets End Users, but the approach is good for developers too.


Subscribe to my blog.

How Do You Describe Your SharePoint Job?

How often does this happen to you?  I’m sitting at my laptop, reading blogs, responding to forum postings, 2 copies of visual studio open and VPN’d out to another server with its own visual studio + 15 browser windows (a typical day) and someone named Samantha (my wife, apparently) tells me, "We have be there in 30 minutes.  Get dressed."

I get up in a daze, wander around the house confusedly, get in a car and next thing I know, I’m at a party with a beer in my hand and someone asks me, "So, what do you do for a living?"

These conversations never go well.

Me: "Ahh … I’m a solutions architect for EMC."

Nameless Person: blank stare

Me: "I work with a product called SharePoint … it’s from Microsoft."

NP: "Aha! I’ve heard of that company!  What is SharePoint?"

Me: "Umm … it does collaboration … people use it to share information … It’s a platform for building busines sol…"

NP: Eyes glazing.

Me: "I’m a programmer."

NP: "Aha!  I know people in my company that do programming!  When I was in high school, I played around with BASIC."

And with that part of the conversation over, we turn to something easier to talk about, like politics.

Anyone care to describe how they handle this? 


Subscribe to my blog.

Technorati Tags:

Hiding Custom Actions in SharePoint

Several months ago, while working on a project for a client, I created a feature.  Among other things, that feature defined a custom action (these appear under site settings).  The only purpose for this custom action was to demonstrate to me that the feature activation was working as expected.  Basically, I used it as a crude form of debugging.

Much to my embarrassment, this debugging artifact made its way from dev to UAT and to production before someone got around to asking, "what is this xyzzy link?"

By now, we’re in production and I really don’t want to uninstall the feature, fix elements.xml and then reinstall. 

Todd Bleaker pointed out an easy way to handle it.  In his words:

"CustomActions are not copied into the database, they are read directly from the Elements.xml file and copied into application state at runtime. So, you don’t need to deactivate, uninstall, reinstall, and reactivate the Feature to remove the CustomAction. Just remove it from the Elements.xml file and recycle the application pool(s) effected. The next time the Feature is in scope, you won’t see the CustomAction anymore."

I followed his instructions and, of course, they work.

In my case, this is a department level installation with just a single WFE.  If you find yourself with this problem in future and with multiple WFE’s, I believe you’ll have to make the change in each.


Subscribe to my blog.

Configure Thesaurus in MOSS

I’m working on an architecture review document this week and it suggests, among other things, that the client consider using the thesaurus to help improve the end user search experience.  Having never done this myself, I wanted to do a quick hands-on test so that my suggestion is authentic. 

It was surprisingly difficult to figure out how to do, although it is, in fact, quite easy.  There’s a pretty good bit of information on the thesaurus (check here and here, for example).  However, those docs are either WSS 2.0 / SPS 2003 oriented or they don’t actually spell out what do to after you’ve made your changes in the thesaurus.  They provide a great overview and fair bit of detail, but it’s not enough to cross the finishing line.

These steps worked for me:

  1. Make the changes to the thesaurus.  (See below for an important note)
  2. Go to the server and restart the "Office SharePoint Server Search" service.

A tip of the hat to Mr. J. D. Wade (bio).  He provided the key bit about restarting the search service and rescued me from endless, time consuming and unnecessary iisresets and full index crawls.  This episode proves, once again, that Twitter is the awesome.  (Follow me on twitter here.  I follow any SharePoint person that follows me).

I don’t know if this functionality is available in WSS.  If it is or is not, please leave a comment or email me and I’ll update this post.

Important note: There’s conflicting information on which XML thesaurus file to change.  There’s this notion of "tsneu.xml" as being the "neutral" thesaurus.  I wasted some time working with that one.  In my case, I needed to change the "tsenu.xml" file located under the folder of the app ID itself: \\win2003srv\c$\Program Files\Microsoft Office Servers\12.0\Data\Office Server\Applications\3c4d509a-75c5-481c-8bfd-099a89554e17\Config.  I assume that in a multi-farm situation, you would make this change everywhere a query server runs.


 Subscribe to my blog.

Technorati Tags: , ,

Large-scale MOSS Document Management Projects: 50k Per Day, 10 Million Total

This past week, someone asked a question about creating a SharePoint environment that would handle a pretty high volume of new documents (10,000 +/- in this case).  I don’t know much about this, but thanks to this white paper, I feel much better informed.

For me, this white paper is pretty much just a book mark at the moment, but I did start reading through it and thought I’d highlight my main take-away.  SharePoint can be scaled to handle, at a minimum, this load:

  • 50k new documents per day.
  • 10 million documents total.

I write the 50k/10MM figures because they are easy enough to remember.  As long as you know they are minimums, you won’t get into trouble.  The maximums are at least 10 percent higher than that and with extreme tuning, possibly a lot higher.

Thanks, Mike Walsh, once again for his weekly WSS FAQ updates and corrections post.  If you’re not subscribed to it, you should seriously think about doing it.


 Subscribe to my blog.


SharePoint Performance — Quick (But Unusual) Tip

We’ve been working in a user acceptance testing (UAT) environment which, as compared to development, is dead slow.

It’s a complicated environment using FBA, SQL 2008, SSRS and extended web applications accessible over the internet using https, so it’s been hard to track down the issue.

For a previous client, we used FBA with an LDAP role provider (and membership provider).  One of my colleagues, far more clever than I, determined that the "out of the box" LDAP role provider, when used in that environment, wasn’t scaling well.  To solve this problem for that client, he implemented a nice caching scheme in a custom role provider. 

This situation seemed similar, so we looked into replicating that solution to the today’s client.  As I was debugging that, I noticed that this message would frequently appear in the System log (from Event Viewer):

A worker process with process id of ‘XXX’ serving application pool ‘Home – 80’ has requested a recycle because it reached its virtual memory limit. 

I took this to mean that the app pool was recycling far, far too often and that would explain a performance problem.

I looked at the app pool’s properties and its "Recycling" page showed that the property "Maximum virtual memory (in megabytes)" had been set to true and had been set to 5000.  That seems like enough, but I decided to unset the value and that had an immediate positive effect.  No more app pool recycling.  No more mysterious slow-downs and pauses.

I don’t really understand the underlying "stuff" that’s going on there, but clearly some kind of cause/effect thing is happening and for now, the UAT environment is usable.


Subscribe to my blog.

Technorati Tags:

Fairfield/WestChester SharePoint User Group in Connecticut

My colleague (Natalya Voskresenskaya) and I will be speaking at the Fairfield/Westchester SharePoint User Group meeting at 6:00 PM on 07/16 (Wednesday).  We are talking about the content query web part.  This is the same (but improved version that we gave to New York in May).

Pre-register here:

Natalya and I hope to see you there!

Here’s the email Richard Martzelle just sent out on the subject:

Topic:  Using Content Query Web Part to Create Business Solutions

Speakers: Paul Galvin & Natalya Voskresenskaya

Date: July 16th Welcome Time: (Eat & Network): 6:00PM   Time: 6:30 PM -8:00PM

Meeting Description

MOSS 2007’s Content Query Web Part (CQWP) enables users to create custom views of data queried from many sources, and present that data in one place. Despite its powerful query & content refinement options, CQWP is often an underrated and overlooked feature. CQWP is both a "data extraction engine" (find documents or list items anywhere in a site collection) and also a first-class presentation tool that enables users to control how content is presented by wrapping HTML and styles to format the display nearly any way you wish.

In this demo-heavy session, they will show how to use the CQWP to solve business problems by showing off core features

• use default CWQP features, including audience targeting

• use CWQP as a reporting tool anywhere in a site collection via filter criteria such as "all documents created today"

• change look & feel of query results to highlight business data, show additional columns of information, display information in a grid format, and others

• show how CQWP can aid in content type administration (i.e. find all documents of a particular content type so as to understand potential impact of changing a CT definition)

• describe some limitations of CQWP

• provide a list of resources for advanced CQWP techniques, including blogs, ECQWP Codeplex project & MSDN documentation


 Subscribe to my blog.

Technorati Tags: