Okay, yes I have written a gazooka of articles on Sharepoint 2007 singing eulogies about how cool the product is.
... but ...
I have my own set of annoyances that I am going to document here as I run into them. This blogpost will remain online and constantly updated as I run into more and more of these annoyances. I am hoping the MSFT folks & community (which includes me) will either address them in a tool, or decent explanations or the next version.
But the first step in fixing a problem is recognizing the problem, So here goes.
1. Why did MSFT have to embed the Windows.Sharepoint.dll file in an orifice of windows that nobody would ever bother to look in? Seriously, it is at (ready?) - C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\ISAPI\. Do note that this is not an ISAPI file - it is a .NET assembly, and yes there is a "BIN" at the same level as "ISAPI". But all the sharepoint .NET assemblies are under the ISAPI folder :-/. Why not a more logical location like C:\Program Files\Sharepoint 2007, OR, the GAC.
2. The XMLITIS sharepoint has. Oh my god!! Whatever was wrong with MSI files that sharepoint had to resolve to fiddly batch files, twidly command line utilities, hacky XML files, and hard-coded GUIDs and IDs all over the place to get the basic things done in Sharepoint? Did you know how you find a content type id in sharepoint? By going to the page that has the content type id administration, and copy pasting a part of the query string !! #@!$&%^ WTF.
Update: Untrue. Twiddly batch files is not the recommended approach for production deployment, you should use WSPs.
3. The "Lets restart IIS because someone in istanbul farted disease". Seriously, change the web.config to deploy a new webpart? And the have to run iisreset for pretty much everything you do? How do you get away with that on a production environment? Oh .. load balancing huh? Except not every machine and operation is 100% stateless. :-/
4. The "For the love of GAC, stop putting things in GAC". I thought GAC was a bad idea for every darned assembly. This is why we got away from putting stuff in C:\Windows\System32, because you want applications to be self contained and no versioning conflicts etc. But every darned thing you do, you are almost goaded to think "GAC". Hmmm ...
Update: Untrue, there are places other than GAC where you can put your assemblies.
5. The too good to be true promises. People, I want to break a heartbreaking news - MSFT marketing is full of poo. A very very small part of Sharepoint 2007 meets the legal accessibility requirements. To be specific, only the anonymous view meets 508 specs. But then ASP.NET itself does a very poor job on accessibility. (And for all those guys who will come disagree - please read what I said earlier "MSFT marketing is full of poo").
Update: HiSoftware is working on SAK - SharePoint accessibility Kit. Also, SharePoint is now DOD5015.2 compliant.
6. Master page customization. Oh wait - but that was a good thing. Yes it indeed is a good thing, except for all practical purposes, it doesn't work :-/. Why? Well first of all, customizability in Sharepoint 2003 was a FUCKING JOKE. In 2007, customizability through sharepoint designer is much improved, except it affects only half the pages. Yup - you read that right. Anything to do with Appmaster.master and the layouts directory is left untouched. Which means, half your site still looks sharepointy. Should you choose to modify appmaster.master - every darned site on that machine, including SCAW tries to adopt that look.
Update: I posted a workaround to this rather silly problem here.