After the previous night's entertainment we were all a bit bleary eyed come Tuesday morning (I probably looked the worst as I stayed up late blogging and then fought with the worst pillows ever created in the history of mankind in a losing battle for even a few hours of sleep). But with a healthy dose of coffee and a can-do attitude (or, more accurately, an I'm-awake-so-I-may-as-well-make-the-best-of-it attitude) I dived back into the conference.
Designing, Deploying and Managing Workflow in SharePoint Sites (Christian Stark)
The toughest part of a conference like this is choosing which sessions to attend. There were a large number of presentations from partners and ISV's that I would have liked to have taken in but I concentrated on the Development track as best I could since that is our core business. Unfortunately, this presentation was just a click-n-show overview with no code and I think I dozed off somewhere in the middle. From the parts I do remember, I recall Christian pointing out that while you can author workflows for WSS sites you have to buy MOSS to get any built-in workflows or workflow templates (I wasn't aware of that). He also said that there will be a workflow SDK coming out soon that will have a bunch of workflow templates included with it. Hallelujah!
I realized later, after talking with Dr. Ulrich Knechtel of AMD, that I should have gone to his presentation about their search optimization project with Microsoft. The two companies are teaming up to create hardware/software configurations optimized for large-scale search optimization. If you've ever worked with search in a big deployment you know how resource-intensive this process can be so this new initiative looks very promising (post a comment if you want more information - they're looking for customer projects that might serve as good POC's).
Developing Visual Studio Workflows and Activities for SharePoint Sites (Steve Heaney)
Now this is what I came for. Steve got down and dirty and showed us how to code up workflows from scratch in Visual Studio. It was one of the most amazing demos I've ever seen - Steve hand-coded a five step WF, including two custom InfoPath forms, in a half-hour, without making a single mistake. In fact, he never even used Intellisense - just whipped out some classes, slapped in some methods, banged the code in and pressed F5. Build succeeded the first time! Unbelievable. Obviously, Steve had done this presentation many times before but it was still bloody impressive.
If you haven't played with it yet, the workflow designer in VS 2005 is really quite good. There are a bunch of built-in workflow objects that you can drop in from the toolbox and creating your own is almost as simple as whipping up a Visio diagram. What Steve didn't cover (due only to time restrictions, I think) was coding custom actions and activities, which is the real meat of VS and WF. In most cases, designers will create the workflows in SharePoint Designer with custom activities supplied by developers, as the VS method is much too complex for your average front-end person. That said, you can do a lot with it and it's very flexible and extensible.
Capacity and Performance Planning (Steve Smith)
The Combined Knowledge booth was the unofficial UK gathering point at the conference. We joked about hanging a Union Jack from one of the columns and I think we would have done it had anyone thought to bring one. Steve Smith, MVP with Combined Knowledge, gave several presentations but this was the first I one I could fit into my agenda. Steve derived a great deal of his content from Joel Oleson's blog and put up some useful figures from this post. Although I dispute some of his assumptions (he uses a 10% utilization baseline for concurrency which I believe is way too low - but it really depends on how each portal is used) and conclusions (40% of latency issues are at the client? I really don't think so - better check those capture stats one more time, mate), Steve did quite a good job painting a realistic picture of scalability issues and areas to look for performance issues.
At one point, Steve illustrated the issues regarding list rendering as it relates to item count by showing a line graph (shaped like a hockey-stick) of the per-transaction completion time of a document add operation in a library. The more documents you add (I think the tipping point was around 2,000) the worse the performance gets - way worse, in fact. I couldn't have asked for a better visual describing the limitations of using the object model for repetitive operations (he didn't say but I'll bet my hat they used the OM to do it). I can't wait to get my hands on that slide so I can demonstrate the stark difference in performance when executing the exact same operation using web services or FrontPage RPC's.
Speaking of slides, Steve hit us with so many statistics that I can't possibly hope to reproduce them all here (and I was scribbling like a madman so I probably got most of them wrong anyway). As soon as Steve uploads the presentation I'll post them all here - they really are important data points to consider when planning your farm deployment and/or expansion. For example, one thing that never occurred to me when troubleshooting performance is the relationship between your MOSS server farm and Active Directory. If you have several thousand users on a portal the new security-trimming features require a lot of authentication procedures; enough to overload that poor old AD box sitting all by itself in a forgotten corner of the data center. One more place to look when your users suddenly start complaining about how long it takes to login to SharePoint in the morning...
Building and Branding SharePoint Sites Using New Web Content (Arpan Shah)
Ok, so this one really didn't include much development content (unless you consider SharePoint Designer to be a development tool) but it was good nonetheless. Unfortunately for Arpan, he had just returned from vacation and it seemed like parts of his demo were still on holiday - Designer didn't want to cooperate and his MOSS site was a bit flaky but Arpan's an excellent presenter and what he couldn't show he explained rather well. He did a fair job introducing site variations to the audience but it wa really only a warmup for the next Dev session.
Multilingual Portal and Public-Facing Web Applications (Aku Heikkerö)
It was fitting (and somewhat amusing) that the presenter for Multilingual solutions had a Finnish accent so heavy I could barely understand him. Where's that universal translator from the Tardis when I need one? In any event, you should know by now that this is an important area of interest for me, and Aku did a good job of digging into the ins and outs of site variations. He was also very explicit on what variations can and can't do (and even though they can do some good things they are just a small step towards solving this problem). One thing I didn't know (just because I haven't had time to play with the new MySites much) is that users can now pick the language they want to see their MySite in. That's very cool. After the presentation I mapped out some ideas on how to improve site variations to make them more usable in real-world scenarios (more on this in a future post) with my new friend Razvan-Petru Radu from Luxembourg. And no, in case you're still wondering from yesterday, no word yet on that Redneck language pack for MOSS.
Shared Emotions
I don't think I was the only one who thought this was an odd name for the after-conference party. Even more odd was being shipped by bus halfway across Berlin to a big warehouse on some island for a dinner party when we had a huge hall at our disposal right there at the Estrel (we all fit in there the night before, didn't we?). Thankfully, there were no celebrity impersonators, just a really lukewarm jazz band. Personally, I would have liked to see the guy who did the Louis Armstrong bit on Monday night do another set just to liven things up (I poke fun at the lookalike entertainers but they really were very talented). Rob Gray from Microsoft UK managed to secure the upstairs lounge for our lot so we enjoyed feeling superior to everyone else from on high. The food was spectacular, especially if you are a fan of creme brulee, and the beer and wine were free. Can't beat that!
Internet Access
Let's tell the truth here - trying to get to the Internet in Berlin was like trying to find a place to stand in the conference common areas where someone wasn't smoking. First of all, there was no free WiFi at the convention center. Only hotel guests could access the WiFi and they had to pay for it - not even the conference speakers had access to the Internet. Think about that for a second - a Microsoft conference about a purely browser-based product and no WiFi? Uh, pardon me for pointing out the elephant in the middle of the room, that's just plain ridiculous. My hotel and the airport were no better, with either weak signals that were all but useless or pay-as-you-go services that wanted upwards of 10 euros for 30 minutes of blissful connectivity. I know the Germans pride themselves on their efficiency but they've got a lot to learn from us Yanks on this score.
Notes on Berlin
It's a shame really that I didn't get to see much of Berlin at all on this trip. Being a history buff I could probably spend days wandering around the museums and such. I did learn that the airport that I flew into (Flughafen Tempelhof) was central to the Berlin Airlift operation and used to be a US Air Force base (it was the Americans, in fact, who built the current concrete runways). There's a statue out front dedicated to the US and British pilots who died during that operation - very cool. East Berlin is still a bit grim but there is a fair amount of new construction intermixed with some really old structures. There's a strange statue on the river of three figures fighting or wrestling - I'm not sure which - that I never did figure out and none of the cab driver spoke enough English to explain it to me. The real travesty of this visit was that I had precious little time to sample any German beer. That's almost a crime, I think, to visit Berlin and never set foot in a Biergarten.