Skip to content

The TechEd Gang

Some pictures from the Office TLC at TechEd 09 North America in Los Angeles

Crazy Big E (Where’s the cowboy hat?)

Wild Woody

Bogus

Manic Maurice

Tangle Todd

Dangerous Dave

Sleepy Shane

Sly Steve

Scot the Knife

MS Filter Pack and the Registry Entries

If you download the MS Filter Pack and install it on your indexer (the only place you need it) you’ve still got some registry entries to make/verify. I got tired of doing them by hand so I created a .REG file. You can download my file. Rename it as .REG (I had to change the extension to .TXT to upload it.) Then just double click it. It will make sure the entries are in place. I’d reboot after that just for good measure.

VSeWSS – Please wait while the installer finishes determining your disk space requirements

While trying to install the Visual Studio Extensions for Windows SharePoint Services 1.3 March CTP I got the message “Please wait while the installer finishes determining your disk space requirements” I found a blog post on it where Corey Roth describes how to manually extract the MSI file and install it. This got me to thinking. I moved the CTP from my desktop to the root of the drive and ran it from there — it ran fine. Seems like it might be a path length issue.

Don’t mess with SharePoint’s Site Property

It’s been a while since I’ve stumbled across a defect in SharePoint so I was about due. (I’m not saying that it’s a buggy product — I’m saying that you do what I do you just get used to finding defects.) This one was interesting. SharePoint has what are called dynamic scopes (‘This Site’ and ‘This List’) and for this particular client they didn’t work. They never returned results. You could search with a different scopes and you would find the content so I knew it was being crawled correctly. However, when I would search with one of the dynamic scopes, no dice. What made it more fun is that it was only one of the two SSPs on the farm that had the problem — so we knew it wasn’t corrupt binaries.

After a ton of research and some good work by escalation engineering we realized that the ‘Site’ managed property in the SSP had been deleted and recreated. Oops. That’s bad. Somewhere SharePoint relies on that not happening (generally because they refer to the property via a well known ID number instead of its name.) The issue has been reported but it’s not going to get fixed. The net result is that we get to recreate the SSP. That wouldn’t be so bad except that this customer has targeted content. So? Well, audiences may have friendly names but what’s stored in the pages and web parts for targeting is the GUID of the audience — and when you create an audience, you can’t specify the GUID — even through the API. Gary Lapointe has some STSADM command extensions that will allow you to import and export audiences. That’s a good start but that still means coming up with some code to enumerate all of the pages and all of the web parts on the pages looking for targeting — and changing GUIDs if they are. The good news is that the field isn’t really protected so you can do the replacement pretty easily. The bad news is that no one has created a tool to walk all of the targeting in a web (or farm) and make those GUID changes. (It would be quite useful.) We’ll probably manually repair the targeting because it will take us longer to build and test a tool than to do it by hand…

Search Center vs. Search Center Lite

The topic of the week appears to be the difference between the two Search Centers in SharePoint. One search center, Search Center Lite — which shows up in the user interface as Search Center, is created by default for you if create a Collaboration Portal. (It’s on /search.) The other search center, Search Center with Tabs, only shows up if you activate the Office SharePoint Server Standard Site Collection features (See below)

Once you’ve activated the feature your create site page will include the full list of templates including: Document Center, Records Center, Personalization Site, Site Directory, Report Center, Search Center with Tabs, and Search Center (See below)

If your create site only has Records Center, Report Center, and Search center — you don’t have the feature activated (see below)

So what’s the big deal? The differences aren’t that big, are they? The standard search center (Search Center Lite) shows:

Where the Search Center with Tabs shows:

Basically tabs. Who cares? Well if you have a set of complex customizations and want people to be able to search in different ways — then you care. Search Center with Tabs uses the publishing features (WCM) in SharePoint to allow you to create your own pages with different search configurations on them.

SharePoint Governance and Get Your Project Started Right Decks

I had a great time at the Kentucky SharePoint Users Group on Thursday and then jetted off to do the MOSS Camp in St. Louis over the weekend. At both events I delivered my SharePoint Governance talk. The deck for the talk is available online. At MOSS camp I also delivered my “Get Your SharePoint Project Started Right” which is available as well. The risk/project type matrix is available as a separate PDF as well. If you want to see the presentation in high-speed web cast, you can see that too.

Hotfix Hell Or Where the Hell is my Hotfix – You Decide

I’m building up a new QA environment for a system that I expect will take a few months to build. So I decide I want to get the latest cumulative hotfixes for SharePoint. (Feb 2009 at this writing). So I go to http://support.microsoft.com/kb/961756 and I click over to view the hotfixes with the link at the top of the article …

After agreeing to something like providing blood I get to a page that looks like this:

Of course, I’m looking for an x86 build (developer tools and workflow support mean x86). So how in the heck am I supposed to figure out how to get the x86 update? Well, apparently I’m stupid because I didn’t get that I had to click the link next to the second link next to a one icon () — I clicked a link for additional information flipped back and forth a few times and ultimately reached out to a friend at Microsoft to see what the problem was. He thought there was a problem and forwarded it to someone else. That person was able to point out the error of my ways.Turns out I’m not the only one that thinks this is insane. You see someone had already blogged about the confusing user interface (http://blogs.msdn.com/jb/archive/2009/03/09/downloading-hotfixes-for-multiple-platforms.aspx). Unfortunately they work for Microsoft and can’t (or shouldn’t) have the sarcastic attitude I have to the situation. If you think the interface is confusing please add a comment to this blog post and say so. When we’ve captured enough people I’ll forward it over to the folks that own this interface at Microsoft and see if we can convince them that their current approach isn’t the best. (Or that we’re all stupid — one or the other.)

Using Infrastructure to Hide All Sins

There’s a secret that the infrastructure guys don’t want to share with the developers. The secret is that for almost any sin you can commit as a developer there’s a way to resolve it as an infrastructure guy — given money. They don’t want you to know that though — because they actually like getting sleep and don’t like alert emails from the system at two in the morning. I’m hoping that I don’t lose my infrastructure person card (IPC) for telling everyone this but I had to in order to make a point.

Recently I had a customer that had a three server SharePoint farm have two servers stop functioning correctly. (I think it’s really a switch issue but I’m not close enough to know for sure.) As a result of this they took two of the three servers out of the load balancing cluster and … the remaining server was able to keep up quite happily with the load being applied. The infrastructure manager I was working with was surprised. My response was to explain that the architecture in addition to being poised for growth was also designed around the idea that the developer code would be very bad — and in this case it wasn’t.

You see, I architected the system to account for a fairly high probability that the developer code would randomly and inexplicitly cause a server to crash, run out of memory, blue screen, or just generally go dark from time-to-time. With that in mind, we put two servers in that should be able to cope with the load from everyone. The third server in the farm was just there to be the token server that was in the process of crashing and coming back.

Load balancing can hide almost any server stability sin that you can come up with. Simple Network Load Balancing (NLB) included in Microsoft Windows Server operating systems can hide problems. Tools like F5‘s BigIP can hide them better.

In fact, infrastructure is built on the idea that some packets are going to get dropped, lost, or delayed, and thus the TCP (Transmission Control Protocol) of TCP/IP manages the resending, reorganizing, and reassembly of packets across the network into a stream. It’s a core part of what infrastructure does — it recovers from failures — it hides all sins.

I’m not suggesting that this is always a good thing — adding more memory to a server — or switching it to 64 bit just hides memory leaks. Eventually the cost of hiding the problem will be worse than owning up to it, finding it, and resolving it.

While load balancing is the first in my bag of tricks, it’s by far not the only trick. Things like Link Aggregation Control Protocol (LACP) can be used to address a choke point to a server — the network interface. On the server side it’s called network adapter teaming while it’s LACP on the switch side. In either case the effect is aggregating two network cards into a faster virtual connection. Suddenly you double the amount of traffic you can get to and from your server.

Simple solutions to problems with bad query designs generally involve more RAM in a SQL server and smaller, faster, better organized disks. SQL server is REALLY good at caching data. If you put RAM in a box it will reduce the load on the IO subsystem. If you put smaller, faster disks in you’ll be able to get more IO operations to and from the disk — no matter how bad the query, if you throw enough hardware at it you can make it work.

For instance, I’ve made SQL server be faster at serving queries that originally were serviced by a Pervasive SQL system that was used to making ISAM file calls. I’m not talking faster by a few percent — I’m talking more than 30% faster. Sure I bought faster disks, formatted them RAID10, threw a ton of memory in the box, and ran Enterprise Edition — but we did get the goal accomplished.

That’s just in the standard bag of tricks. There are third parties in the act like the tools from Strangeloop networks which hide problems with view state in ASP.NET applications. WAN acceleration devices from Riverbed, Cisco, and Certeon can all reduce the amount of bandwidth your application uses over the WAN.

Why am I telling you this? Well, if you’re an infrastructure person just pretend it’s so you can buy cool new toys. If you’re a developer, I want you to know that if you make a mistake or overlook something that your infrastructure colleagues have your back. Of course, some of the solutions don’t come cheap so you may have to forgo your next bonus or your next raise.

So I’m pleading with you, do your development right so that your infrastructure brethren don’t have to hide your sins. Appropriately optimize your code. Make sure everyone on the development team understands the fundamentals of good design. Do peer software reviews. Do whatever it takes to make great code.

Building Content Type Solutions in SharePoint 2007

Book Review-Building Content Type Solutions in SharePoint 2007

When I picked up Building Content Type Solutions in SharePoint 2007 I was hoping that it would be the powerhouse book that helped the SharePoint community realize the power of content types. You see, I’ve decided that they’re one of the most powerful — if not the most powerful — feature in SharePoint. I’m fascinated by the idea that you would create a solution that includes the document template as well as the process (i.e. workflow) around that document when it has been created.

Unfortunately, I can’t say that the book lived up to my expectations. (One could easily say that they weren’t fair.) The book has a ton of great content in it. If you’re an end user, power user, or site administrator — you’ll learn something from the book. My issue is that the book never really develops an audience. It feels like a semi-random collection of stuff about content types. The stuff in the back of the book about development just doesn’t feel like it was intentional. (Not that it’s not valuable.)

So while the book is useful if you’re trying to see some of the power of content types, I’m concerned that it’s not the content type book that the market needs to really realize the power of this particular feature of SharePoint.

Recent Posts

Public Speaking