We enjoyed another great year of Mindsharp's SharePoint Best Practices Conference in San Diego. Thanks to Mark Elgersma, Ben Curry, and Bill English as the chief organizers, although I know there are lots of other Mindsharp folks who worked hard to pull this off.
UPDATE: Just heard back from Ben - the primary conference organizers were Bill English, Paul Stork, Paul Schaeflein, Todd Bleeker, Steve Buchannan, Pamela James, Brian Alderman, Ben Curry, and Mark Elgersma. Thanks again guys!
Given the grim economy it was noticeable how many people showed up - over 350 attendees I believe in addition to all the vendors and organizers.
I attended with echoTechnology's Director of Sales, Sean O'Reilly. He's a real hoot - a bit of a legend on the conference circuit. We arrived on the Sunday. Since Sean and I are now using demo laptops and have the exhibit booth process nailed down after numerous conferences, it only took us about 15 minutes to setup the booth before we could unwind.
That night the BPC kicked off unofficially with a Super Bowl party in Ben Curry's suite. It was great to watch the game with various attendees and exhibitors.
Joel Oleson gave a funny keynote on Monday morning, talking about the 10 steps to success. He argued that SharePoint is plastic and so just because you can do something with it, doesn't mean you should. Some of his analogies included Robot Barbie and headless chickens. Also there was a disapproving mother ("IT") and finger-painting baby who got paint all over the wall ("the business").
One quote he mentioned from Gartner says that by 2010 less than 35% of WSS sites will put effective governance in place!
Programming Best Practices
In between exhibit hours and meetings, I was able to attend only one seminar, given by Francis Cheung of Microsoft's Patterns and Practices Group. This was a really neat explanation of best practices for programming against SharePoint.
What was interesting was Francis showed how object oriented patterns like the Repository pattern could be used to abstract out SharePoint-specific resources like list names, loggers, and so on. Francis also pointed out the need to create strongly typed business entities for SharePoint, rather than straight calls against SP objects.
This provides an additional layer of abstraction that allows mocking and unit testing. The idea is that for code testing purposes you should be able to swap in mock interfaces without relying on SharePoint being available. For instance you should be able to run unit tests against SharePoint code without the SQL database even being available.
These entities also make it easier to work with presenters/controllers without worrying about looking up Site or List GUIDs, or provide an easy way to do CRUD operations.
Microsoft currently has a patterns and practices guidance available at www.microsoft.com/spg. From the guidance doc:
This guidance discusses the following:
- Architectural decisions about patterns, feature factoring, and packaging.
- Design tradeoffs for common decisions many developers encounter, such as when to use SharePoint lists or a database to store information.
- Implementation examples that are demonstrated in the Training Management application and in the QuickStarts.
- How to design for testability, create unit tests, and run continuous integration.
- How to set up different environments including the development, build, test, staging, and production environments.
- How to manage the application life cycle through development, test, deployment, and upgrading.
- Team-based intranet application development.
This approach is actually a standard approach to custom code development but SharePoint has tended to blur the lines a little bit. What is very interesting is that more and more of the BPC seminars were about programming and unit testing. People were even talking about Test Driven Development (TDD) against SharePoint!
What this indicates is that organizations are starting to treat SharePoint seriously as a development platform. This has always held potential but required a steep learning curve. For example, at the Best Practices Conference last year there was very little on these sorts of developer-centric practices. This year it was all about programming against SharePoint in the traditional way - using unit tests, mocking, web smoke tests, and OO patterns.
There hasn't been a killer app for SharePoint yet but it's coming.
Best Practices For Centrally Governing Your Portal and Governance
On Wednesday morning I gave a presentation on helpful tips for centrally managing a portal. I showed a governance site collection I have been working on and talked about how it can be used to make it intuitive and easy to run a portal.
I'm including my powerpoint presentation here.
There are no screenshots of the governance site collection yet although I am uploading a couple as part of this post.
Hope this helps!