Recently I’ve been working on a SharePoint solution that was persisting some state information. Originally this solution was relying on Session State but because of some extra configuration complexity that using Session State with SharePoint requires we decided to replace the Session State with cookies. Although both approaches are not exactly the same they were both sufficient in the scope of the solution. And although you might expect no rocket science when working with ASP.NET cookies there are a few things that keeping in mind might save you some painful hours.
SharePoint 2010 ships with the new Modal Dialog framework that allows you to display dialog windows in an unobtrusive and user friendly way. This is extremely important when creating user friendly solutions as it allows users to preserve their context while providing some additional information. While the new modal dialog framework is definitely a great idea, there is one thing missing in the implementation: support for communicating with custom application pages.
SharePoint 2010 ships with the new Ribbon framework that allows you to easily extend the Ribbon with new functionality. All Ribbon extensions consist of the UI and behavior, which in simple scenarios can be specified declaratively but in more advanced scenarios would rely on a Page Component. Most samples, that show using Page Components, suggest registering them using Delegate Controls. Unfortunately this makes it impossible to use Page Component in Sandboxed Solutions which don’t support Delegate Controls. So are we forced to use the limited declarative approach or is there a solution that would allow us to register custom Page Components within Sandboxed Solutions?
Content Query Web Part is one of the most frequently used Web Parts available out of the box with SharePoint Server 2010. Thanks to its flexibility, great performance and rich configuration possibilities it’s a great solution for aggregating content. Because the presentation layer of the CQWP is based on XSLT, the possibilities are virtually unlimited, but as soon as you start using custom XSLT stylesheets some strange things start to happen.
There are scenarios when you might to programmatically copy or upload a file to the Document Library in a Meeting Workspace. And while it doesn’t seem like rocket science at the first glance, there is one detail to keep in mind.