I was recently fortunate enough to be able to go to this years SharePoint Connections conference in Orlando, Florida. Run as part of the DevConnections series of conferences, which included ASP Connections, SQL Connections and Visual Studio Connections amongst others.
Co-located in the Orlando World Centre Marriott hotel, the conference ran from Saturday 19th through to Thursday 24th April. The Saturday, Sunday and Thursday were devoted to pre- and post-conference workshops, one of which I was able to attend. The remaining days were given over to various drop-in sessions given by speakers working with SharePoint 2007 and its associated technologies.
I arrived on Saturday afternoon after leaving a pretty cold London Gatwick airport. Orlando wasn't as hot as I was expecting (I have been there many times before), but the humidity was just as I remembered! The hotel wasn't far from the airport and within an hour or so of getting off the plane I had checked into our room.
The following morning, I took a wander down to where the conference was to see what I had to do about registration as I was booked into one of the pre-course workshops, SharePoint Workflow. It was quite early so there weren't many people around. Registration included a free rucksack, course content CDs and session information along with a show guide. Also included was the usual advertising papers!
Pre-Conference Workshop - SharePoint Workflows
I had about ten minutes before my workshop started so I went in and sat down - I was quite surprised as the room was almost full. The speaker, Robert Bogue, was getting a feel for what people were working on and the general skill level in the room. 9am came and the session started.
I’d chosen to come to the SharePoint Workflows, as I’d pretty much exhausted SharePoint Designer Workflow Designer’s options. They’re ok, but not really suitable for real-world business solutions.
Robert introduced himself and then began to talk about the different options available to someone looking to develop workflows. He discussed the out-of-the-box options and how limited they were. He looked at SharePoint Designer’s Workflow Designer and explained some of the reasons why you might not choose to use it. The main reason is that the workflows Designer creates aren’t portable, so they cannot be re-used.
Hold on a minute, aren’t the rules generated by the Workflow Designer just stored in files? Can’t we copy them?
Well, yes, if only it was that easy. Whenever you reference a list within a SharePoint environment, a unique GUID reference is generated. You may very well have a list on another server that has the same name, but its GUID will be different, so your workflow won’t work. This is a shame, but is a fundamental flaw in Designer based workflows.
The final option left to the dedicated workflow builder? Microsoft Visual Studio 2005 lets you build workflows at the lowest level. You can pretty much do anything with it.
Robert then spent the rest of the session showing us how to create a workflow using Visual Studio. How to debug the workflow. How to deploy the workflow. Options on what you could use workflows for. Despite the heavy content, and believe me, it was heavy – this stuff isn’t easy but I was pleased to say it didn’t go over my head, the audience stayed with him.
Workflow in SharePoint is ridiculously powerful. But as they say, with power comes responsibility. Robert said that there were a lot of questions the customer had to answer before you could start to build a workflow solution for them. I’ve built a few in SharePoint Designer and I can see what he means!
I always find that in sessions like this that I start to think of things that we can actually use this for. Workflow forms the backbone of our business processes and we don’t nearly use it enough.
The session showed a lot of code which Robert has promised to make available, including a handy toolset which I am keen to take a look at.
On the whole I thought this was a very good session and am looking forward to getting to grips with workflows.
Understanding How to Develop Office Business Applications from the Client to SharePoint and Beyond
This was my first session on the Monday and was run by Steve Fox, a Microsoft evangelist. The conference room was about half full, which, to be honest, wasn’t surprising as most attendees would be SharePoint developers.
So, why did I go along? Well, as Steve said, Microsoft Office is rather widely used, so the customer base is going to be pretty large. We use Office all the time and using Visual Studio 2005 or above will allow us to develop pretty rich applications.
Steve then showed us a demo of a Microsoft Word document that integrated with an SQL database. The document was an employee appraisal form that extracted data from the database and populated fields in the document. Once changes had been made a further option then synchronised the data back to the database. To get all of this to work, the document had to be installed on the local user’s machine.
Why would you use Word in this way when you could actually either write a web application to do this or use InfoPath? Well, using Word opens up the rich functionality that isn’t available in InfoPath. Could this be an option for us in Lloyds TSB? We’ll need to look into it further I think.
Integrating a Word document with workflow was another option and this sounded like something we could certainly benefit from, as this kind of processing would form the basis of a compliance system.
Steve then showed us how to add a specific document as an option on the New menu within a document library. This would be handy and could possibly save a lot of time if we were to put template documents on the New menu.
We then took a brief look and WPF (Windows Presentation Foundation), the graphical subsystem of the .NET 3.0 framework. You might be more familiar with WPF’s original name – Avalon.
After a brief run-through of how the Business Data Catalogue could be integrated with Office, Steve closed the session with five minutes of questions and answers.
There seems to be quite a few benefits to using Microsoft Word 2007 instead of InfoPath 2007 as a form processor. You do get access to all of Word’s functionality, none of which is present on InfoPath. The issue of having to install the document on the client machine is outweighed by the functionality that will be on offer.
I will be looking further at building Office business applications on my virtual machine once I get back into the real world.
But for now, onto the next session!
SharePoint Governance and Information Architecture Guidance
This is one of those subjects that you know you have to address but never really get around to doing. For one reason or another Governance and Information Architecture don’t appear to be seen as important enough, but, like a disaster recovery plan, you only really appreciate having this in place when everything starts to crumble.
Robert Bogue was the speaker for this session (he was the guy that did the SharePoint Workflow workshop) and one of the first things he covered was an explanation of what governance actually meant. He explained the distinction between governance and guidance and how using the term ‘guidance’ was much more likely to get buy-in from users.
Robert then went through the process he used to build taxonomy to classify information. This is a lengthy process but the amount of time spent building the taxonomy would significantly decrease the amount of time it would take to search for that information once it was in the ‘real-world’ I am going to spend more time looking into how to manage taxonomy as this seems to be something that would drive the performance of search.
Information Architecture is another area that Robert covered, although a little more briefly.
It was an interesting session and I can certainly see the benefits of having both governance and a robust information architecture.
Capacity and Performance Planning for Microsoft SharePoint and Technologies 2007
Ben Curry of Mindsharp covered this session, my final one for the first day. Capacity management and performance planning isn’t something I have been involved with but I went along to this session as I thought it would be useful to see how SharePoint reacts under a little pressure.
Understanding capacity management should hopefully allow me to build better applications that perform as well as they can.
Much of the content was over my head but it sounded good!
The one thing I did take away from this session was that you can use Visual Studio 2005 or higher to perform load and stress testing on web sites, including SharePoint. Ben set up a series of tests that included opening the home page, opening a list, setting list parameters plus some generic IIS stress tests. Ben was then able to specify the number of users, the type of browser they were using and also the length of the test. Visual Studio then went away and ran these tests and stored the results in a separate database. Not only could these tests be run against SharePoint, but they could be run on any web site. I thought this was really useful.
Another thing Ben explained was the Auto-Grow and Pre-Grow options on site collections. Ideally a site collection should be set to its full size from the start and not use the Auto-Grow option.
Why?
Well, say you had a site collection that had a size limit of 100Mb and your Auto-Grow option was set to 1Mb. You are at 99Mb and then add a 50Mb document. Rather than Auto-Grow by 50Mb all in one go, your site will read 1Mb of the file, Auto-Grow by 1Mb, fill up the 1Mb and move on to the 2nd megabyte of the file. It will do this 50 times so you can image the overhead on the system. If Auto-Grow had been set to 50Mb, this action would have only occurred once.
Branding Your Microsoft Office SharePoint Server 2007 Sites using Site Definitions and Features
The first session of day two started at 8am and despite the early start there were quite a few people there. By about 8.15, the conference room was almost full. Emer McKenna was the presenter for this session and I was quite surprised to hear a lovely soft Irish accent!
Emer began by explaining what branding meant as far as SharePoint was concerned and the followed this with a demo of the out of the box branding options using the master page galleries and themes. She went through the limitations of branding sites this way before moving onto Features and how they can help when branding a site.
We then went through a demo where a Feature was built that changed the logo of the site. The demo covered all of the associated files that were required for the Feature. Emer then showed us the deployment method and how it was possible to activate the Feature on all sites.
We then looked at Site Definitions and how the look and feel of a site could be customised using them. A further demo followed where a new site was created using a custom site definition.
Finally we looked at Feature Stapling and how pre-defined Features could be attached to custom site definitions – this was shown via a further demo.
We covered quite a lot in the sixty minutes. The session was of particular interest to me as I had created custom site definitions previously. I liked the idea of Features and wrapping them up and deploying them via Solutions. Emer explained that there were events that could be triggered when Features were installed, uninstalled, activated or de-activated. This offered up some powerful options which I plan to investigate further.
All in all a good session which could easily have taken up a whole day workshop.
Monkeying with Master Pages (taking control of your SharePoint user experience)
As Robert mentioned before the session actually started, “we go off the page with this one”. We certainly did! The whole point of this session was to show us what we could do if we completely broke the rules. The things that Robert covered wouldn’t be supported by Microsoft as we would be breaking the core installation files.
Sounded fun!
Robert Ginsburgh of Version 3, started by showing a site he had helped design and build called School of the Future. This site, hosted by SharePoint, was used by children in a disadvantage school. Robert explained that many of the children were unable to understand some of the terms used within SharePoint so the aim was to redesign the look and feel so that imagery could be used, something which the children would find easier to understand.
Robert then went on to explain some of the techniques implemented, one of which was to create a series of user controls that were added to the global master page. The user controls added a series of coloured bars to the top left hand corner of the screen. The page would then poll external data sources and when changes came through, the coloured bars would change. These visible page changes would alert the children that there was something that they needed to look at.
Robert showed us many other master page amendments and explained that by amending the global master page, these changes were applied to every page in every site. This did go against Microsoft’s recommendations, but as Robert explained, the ends justified the means.
Robert then explained that master pages could be modified on the fly by placing code between the Init and PreInit placeholders – this looked really interesting and I shall be investigating this further. Overall this was another good session. Many of the techniques shown would be really useful and I plan to investigate this further.
Building Custom Navigation with SharePoint
Mauro Cardarelli from Journata presented this session, the last one before lunch. He spoke about the different types of navigation available, from the top navigation bar to the Quick Launch panel and link lists. He then went through a series of demos showing how each could be modified. We then looked at the code in more detail.
The session went very quickly and by the time we had looked at the code and spoken about best practice, it was over.
Navigation is key to a good website, whether it is on SharePoint or not, so this is yet another area I'd like to look at further. My list is growing longer with each session I go to!
Quick Integration from SharePoint to your Application
Robert Bogue was again the presenter for this session, the first after lunch on the Tuesday. As the session title says, this was about integrating application data into SharePoint and vice versa.
This could be in the form of links from SharePoint to another application or through the use of Web Parts such as the Page Viewer Web Part.
Robert explained that the Page Viewer Web Part was easy to use and, as it was available out of the box, the costs were very low. The downside to using the Page Viewer Web Part was that it was built around the IFRAME tag. This caused potential problems with things like branding, menu issues and the unwanted appearance of scroll bars. It is, however, a quick and easy way to get external information into SharePoint.
Link Lists were the next thing that Robert looked at. These are purely hyperlinks to external locations and are simple to add and maintain. The downside is that no content from the external site is displayed and there is no option to set a target window for the link.
Navigation links followed Link Lists. Navigation links are integrated into SharePoint’s normal navigation structure. This has the advantage of SharePoint controlling the style for you. The downside is that it can be confusing to users and you don’t get an awful lot of space to add new links. The tabbed navigation option can quickly cause horizontal scrolling and looks very messy.
Another option for integration is to add options to the SharePoint menus, such as Welcome, Links and Site Actions. This has benefits in that security trimming can be applied if appropriate, so that users only see the links they have access to. It also has a more polished finish as the links can have associated images and additional text to provide further information on the action the link performs. This option does require knowledge of creating and deploying Features and is not something a normal user would be expected to do.
Robert then gave a demonstration on how to create a Feature that enhanced the navigation. A run-through of the code, including the feature.xml and element.xml files followed. Robert then went through the copy, install and activate process to get the files onto the SharePoint site.
Robert then looked at the Site Properties and how this could be used to enhance integration. He then moved on the creating Web Parts that did the integration for you. He explained that this was full integration and not just linking. Robert explained the disadvantages of this approach, which included the effort required to develop and build a custom web part.
Finally Robert looked at the options available with the Business Data Catalog (BCD). There were many advantages in using the BCD. The effort required to integrate data from other applications was minimal, if a little confusing. Search integration to other applications also became available through the BCD. The downside was that the BCD was only available with the version of SharePoint 2007 and that came at a cost.
This was an interesting session and Robert covered a lot of detail in a short time. Features definitely seem to be the way to go when making any kind of enhancements to the SharePoint front end. Yet another thing to look further into!
Design Powerful Workflows with SharePoint Designer
Asif Rehmani of SharePoint Solutions hosted this session. I came to this session even though I had done a full session on SharePoint Workflows on the Sunday before the conference started, just in case there was something new.
Asif started by looking at what workflow meant. We looked at the chain of steps that needed to be performed to achieve a specific goal and that each organisation had many different types of business processes. Workflows enable each of these steps to be defined and monitored.
We then explored the two types of workflow; human and system and the effects each type could have. We also looked at the workflows available through SharePoint and how the user could interact with them. We looked at workflow integration with Office 2007. Asif then went through a demo, building an out of the box workflow.
He then looked at the tools available to build workflows before using SharePoint Designer to actually build one. We looked at the XAML file that SharePoint Designer creates.
Finally, we looked at creating custom workflows using Visual Studio 2005 following up with looking at some workflow scenarios and the tools you might choose to actually build them.
Although this was a good session, the majority of it had been covered in the Sunday workshop. The only difference was the review of the XAML files created by SharePoint Designer, yet another thing I want to look into further.
Enforcing Content security in a collaborative environment
Robert Ginsburg from the ‘Monkeying with Master Pages’ session was the speaker for this one. I was quite curious over this subject as I could see this as pretty important in any environment that potentially stored sensitive information.
Robert explained that most systems (including SharePoint) require discrete security structures. It is not easy to apply a general ‘rule’ to every content type as the requirements will be different. Collaborative working invariably requires ad-hoc relationships due the way information is shared, the technology used must ‘blend the perspectives in a way that users understand’. This isn’t always that easy.
Robert then looked at the differences between ‘authentication’ and ‘authorisation’. Just because you have been authenticated doesn’t mean that you have indiscriminate access to everything within a site. Authentication means that you have been recognised as a valid user. Just because I can get into the building where I work, doesn’t mean I can get into every room. For that, I need authorisation.
Robert explained that security principles must be persistent otherwise audit trails are useless. Even with a good audit trail it is possible for content to be removed from the system. Any content that is deemed as read-only should be stored in an immutable format, such as a PDF or secured through Microsoft Digital Rights Management (DRM) services. Read-write content should be versioned to preserve the audit trail.
A simple security construct is needed as users invariably do not understand access control lists (ACL’s) or, in SharePoint, roles and groups. Constructs, such as ‘I share with you, us’ and ‘I give to you, you give to me’ etc are far easier to understand.
Robert returned to the School of The Future site to explain the scenario and how they overcame the issues. This was done through a demonstration.
He then finished with a quick review summarising the session. This was an interesting session as I expected.
And Finally…
I looked at the final session list for the conference and for the first time there wasn’t anything I really wanted to listen to. I was tempted by Robert Bogue’s Custom Authentication for SharePoint but decided against it as this was not something I was likely to use. Exploring the New Microsoft Forefront Security for SharePoint was another option. Again I decided against going as I was more interested in the development side of things rather than the security aspects. I know I should understand it all but it had been a long four days. I decided to sit in on Robert Ginsburgh’s final session, Technology Deep Dive: A Case Study of the Microsoft School of the Future. It turned out to be an interesting session that covered quite a few areas, most of which has already been looked in this blog. I decided that rather than try and make copious notes on the session I would just sit back and enjoy it, I put my laptop to sleep and therefore there is no write-up for this one.
A Q&A session closed the conference. I was really glad I had attended SharePoint Connections. I have learnt a lot and met some very interesting people. I spent most evenings trying to make sense of the notes I took during the sessions and hopefully the above makes sense. If not, well you just had to be there!
All I need know is a reason to go again next year!
For those of you who did go to SharePoint Connections 2008 and have managed to read all the way through this post, I have created a Facebook group, aptly named SharePoint Connections 2008 (Orlando). It’s an open group so if you feel so inclined, why not join. It would be nice to hear from others who attended.
My next task is to go through all of my action items taken from the conference sessions. There is plenty there to keep me interested and busy!
As always, your comments on my posts are welcome.
Until next time…