SharePoint is a versatile tool meant to empower end-users. So, for me it seems such a shame when end-users feel powerless when it comes to their ability to ‘create’ in SharePoint. Sometimes for a non-developer, it can seem like the only way to make something interesting in SharePoint (besides a fancy list or some Wiki pages) is to get help from a Developer or Web Designer. But I submit that, with a little creativity (and maybe some smoke-n-mirrors), non-developers can make an ‘application’ that looks and feels like a Developer’s custom application page.
What do you mean by ‘application’?
I use the term ‘application’ pretty loosely here. I’m basically referring to an interface created in SharePoint that gives a dynamic and interactive feel. I’m talking about ‘apps’ that need to display information interactively, allowing the user to navigate through on-demand content, without necessarily involving the user in any data entry (think a kiosk application). However, non-developers also have some options for creating apps driven off of user data entry as well, and we’ll see some examples of that as well.
The two tools I recommend to start us off in this SharePoint adventure are InfoPath and PowerPoint:
Unless you’ve been ignoring InfoPath lately due to bad experiences from the 2003 era, you know that it can be a great tool for forms creation/delivery, and a complement or alternative to traditional document management. What you might not have realized is how much more versatile it becomes when combined with the out-of-the-box InfoPath web part in SharePoint 2010. In the examples below, you’ll see how we can make an InfoPath form look like a custom application page – can the untrained eye even tell the difference?
This is also another tool from the Office suite that gets more interesting when combined with Office Web Apps. We can now embed a web part in our SharePoint page to view and interact with our PowerPoint presentations. When combined with clever click events, this could produce some interesting results.
The most significant aspect of using tools like InfoPath and PowerPoint (and even Word, as I’ll discuss in a future post) for creating pseudo-apps is that I can now quickly create pages with pictures and interactions, using tools I already know, instead of tools designed for those familiar with web design. And although Wiki pages in SharePoint 2010 are a huge leap forward in terms of an easy-to-use WYSIWYG interface, they’re still ‘web designer’-focused by definition.
Why No Custom Application Pages?
Custom application pages are powerful, and certainly have their place when business requirements demand them. So, why should you think twice before just creating, or having created for you, a custom application page in SharePoint? Well…
- for starters, because you bought SharePoint! We don’t want to ignore all the features that we can leverage in the platform by simply bolting a custom application page on top of it. (see Rule #2 of [SharePoint] Fight Club)
- you may not be a web developer/designer. As such, you may not be interested in dealing with the delicate intricacies of putting items in the right web part zone, creating borderless tables to lay out your elements, or creating multiple web page destinations for your clickable content.
- as I discuss on Slide #10 of my InfoPath presentation, custom application pages come at a cost – it’s called deployment. For some organizations, the risk, red tape, and wait regarding getting custom code deployed to the organization’s SharePoint farm can be a cost we don’t want to pay.
Show Me Some Examples
Below are some [very] simple examples of what I’m talking about. Videos would probably be more effective, but I’m counting on the reader’s ability to use their imagination. : ) Click the images for a larger version.
SP2010 Enterprise running on Cloudshare – PowerPoint 2010 Web App
In the PowerPoint presentation below, I’ve added hyperlinks to the A, B, C buttons that would navigate to different slides in the presentation. Unless the user pays close attention to the “Slide x of y” control at the bottom, it would appear as if my buttons are dynamically generating new content based on my choices. This feels like it could be the beginning of my next Computer-Based Training module! I might even be able to wow the user with some simple animations as well. I would have liked for the presentation to be a little more border-less, but as far as I know, displaying the PowerPoint web app via the Page Viewer web part is as good as it gets in SharePoint 2010.
SP2013 Preview; PowerPoint Web App
Now let’s look at the same concept in SharePoint 2013. We now have an Embed Code Snippet web part (not sure if that’s the official name), which makes it much much easier to pop my PowerPoint web app into a page. Notice the less-is-more concept – all those controls and borders around the slides are gone. Now I can still use a button-click style presentation, but with more of a standalone app feel:
SP2013 Preview; InfoPath 2010 form
With InfoPath, I’ve got even more option and tools at my fingertips. Here I’m incorporating data entry and dynamic hiding/showing of different elements, all within a borderless web part that looks to me like something I would normally do in a custom application page. Everything you see below (images that appear based on dropdown selections, a Comments section that feeds into a SharePoint list, etc) is done without a single line of code, and without any administrator-driven deployments. Although this example happens to be in SP2013 Preview, it looks/behaves the same in SharePoint 2010:
FPWeb Hosted; SP2010 Foundation – Visual Web Part
Lastly, the example below is a visual web part, which does require coding. But I thought it would still be useful to show as well for 2 reasons:
- Visual web parts can be created in a drag-n-drop fashion, with much less actual code creation on the part of the developer, and with a deployment process that involves just a few clicks. Thus, they too are a great alternative to the custom application page.
- The example below shows how they can be deployed even to a cloud-hosted version of SharePoint, which you can’t do with your traditional custom application page.
More than anything, I hope this post sparks some ideas about how you can take these overly-simple examples and turn them into something practical. The important thing to remember is that PowerPoint and InfoPath are tools in your SharePoint toolbox that you could use to get some great content out to your users without waiting for the Dev Team or Deployment Team to get involved. By the time anyone figures out what you’ve done, you’ll have already silenced the doubters, and convinced your peers how kool SharePoint can be!