Introducing SPELL, a framework to speed up SharePoint customizations

Spell (paranormal), the claimed art of altering things either by supernatural means or through knowledge of occult natural laws unknown to science.

(Source: Wikipedia)

For 8 years, I have been writing solutions for SharePoint from the user’s side – I mean with only the SharePoint UI or tools like SharePoint Designer (originally FrontPage) as entry points, without direct access to the server.

When I started, in 2004, these were mainly patches to enhance the SharePoint interface, like menus or tabs. Then in the following years, the evolution of JavaScript and AJAX, and key enhancements in SharePoint 2007, like workflows, allowed me to build more and more sophisticated solutions, evolving from enhanced Web pages to the status of small applications.

In 2008, I started publishing some solutions on my blog. Others did the same, and today SharePoint users can find online a large choice of tools that allow them to quickly enhance a basic SharePoint team site.

However, this organic growth comes at a price. When users start relying heavily on these solutions, their pages become cluttered. Sites become much slower because of redundancies. Maintenance quickly becomes an issue, especially when these users start adding libraries like jQuery. Sometimes, there will be conflicts between the tools, because they were not built with modularity and scalability in mind.

I have been witnessing these issues in the past couple years, and also facing them myself, as I was duplicating the same snippets over and over across different modules. To address this, some time ago I started grouping all my scattered solutions under a single umbrella, called SPELL.

What can SPELL do?

The goal is to offer a consistent, easy-to-maintain-and-upgrade package that covers all the customizations that can be done from the user’s side: client side scripting, CSS, XSL views, SharePoint Designer workflows, calculated columns, etc.

For now, SPELL is mainly a JavaScript library (abbreviated $P) that allows to:

  • enhance the look of SharePoint pages, with tabs, slideshows, menus, etc.
  • build dashboards, including color coded indicators and charts
  • enhance the out of the box forms (New, Display, Edit)
  • connect with plugins offered by JavaScript libraries (jQuery or other) for additional functionalities
  • etc.

The free SharePoint User Toolkit gives you an idea of the kind of questions SPELL can address, although on a completely different scale.

SPELL includes utilities such as for example:

  • functions to facilitate the use of Web services, REST services, RSS, owssvr, etc.
  • functions to interact with the content of SharePoint pages
  • data format manipulations (xml, JSON, datatables)
  • a templating engine

Who could be interested in SPELL?

SPELL is for anybody who need to customize SharePoint, beyond out of the box list views and page layouts. It works with SharePoint 2007, SharePoint 2010 or SharePoint Online (Office 365), An important difference with traditional libraries is that SPELL is meant to be end user friendly, in the same spirit as the SharePoint User Toolkit. The idea is to offer a Lego-like set, so that even users with limited technical knowledge can safely assemble solutions.

Despite an ambitious scope, SPELL doesn’t aim at replacing server side solutions on large scale deployments. Its purpose is rather to fill the gaps, at the team level, or serve as an intermediary step while waiting for final solutions that have longer development cycles.

Timeline and availability

I have been working on this project, on and off, since 2010. The main component of the framework, the JavaScript library, just reached version 0.3, and is the first version to be put in production. In the weeks and months to come, it’ll be deployed for my current users, going from DJ30 companies to small businesses (and even one man shops). I also plan to build a special edition with tabs, slideshow and charting connectors as part of a hosting service. Later on, SPELL will be the core of a SharePoint coaching program that will start this Fall. The objective is to reach version 1.0 by October.

An important step this year will be to assess SPELL against the new version of SharePoint, and confirm if the upgrade process is as easy as advertised…

For more details…

I am currently building an interest list for the SPELL coaching program. Feel free to send me an e-mail, and I’ll include you in a distribution list to receive progress updates and code samples. You’re also welcome to provide specific information about your environment and your needs, to discuss how SPELL could help on your projects.

Advertisements

A new location for the SharePoint User Toolkit

This week, the SharePoint User Toolkit has officially moved to its new home:

http://usermanagedsolutions.com/SharePoint-User-Toolkit/

It is now located in my company site. The site is still under construction, but you’re welcome to visit the home page to read about our upcoming offering: solutions, coaching, Web design and SharePoint hosting. As you would expect, the home page right hand menu is a variation of the Easy Tabs.

In a future post, I’ll explain how I redirected the pages from my old SP 2007 to the new place in a snap!

Tutorial: build a simple slideshow with the Easy Tabs

Environments: SharePoint 2007 (wss, MOSS), SharePoint 2010 (Foundation, MSS), Office 365

Audience: Power user.

Permission level: design or full control.

Estimated time: 10 minutes.

Last year, I added to the Easy Tabs an Autoplay feature. It seems that not many people use it, so today let me show you how it can help you build a simple slideshow.

1- Add your images to your SharePoint page

2- Add the Easy Tabs

3- Looking for fancier slides?

4- A warning about performance

1- Add images to your SharePoint page

Adding images to your SharePoint page is easy with Image Web Parts. Each Web Part will become a slide in our slideshow. The Web Part title will become a tab, so if you want to create an index simply use  a number – 1, 2, 3, etc. – as your Web Part title. Make sure you place all your Image Web Parts in the same Web Part zone.

Your images can reside anywhere, not necessarily in the same library, or on the same server, not even on SharePoint. Just make sure that your users have read permissions to the images location.

2- Add the Easy Tabs

The Easy Tabs are added at the bottom of the Web Part zone, following the usual procedure. For detailed instructions, check out the SharePoint User Toolkit. For our slideshow, we’ll check the “Autoplay” option and enter the interval in seconds between two slides.

3- Looking for fancier slides?

Maybe you’d like something more sophisticated than a simple image per slide? In this case, instead of an Image Web Part you can use a Content Editor Web Part or a Form Web Part, and enter your own html code.

For example, to show images with a caption overlay, follow this tutorial. If you need more detailed instructions let me know!

4- A warning about performance

Images can significantly impact the load time of your page.

If your images are stored in a SharePoint picture library, remember to take advantage of the Web friendly formats that SharePoint automatically generates for you.

If you have more than 5-10 images in your slideshow, you should consider using an Image Rotator instead. The image rotator will offer better performance, as the images are loaded on demand, one at a time.

Office 365: some frustration with public websites

In the past few months, like many SharePoint consultants, I have spent some time playing with Office 365, Microsoft’s own SharePoint hosting offer.

Having read on many blogs how great Office 365 is, once again I’ll go against the grain to express some frustration I had with public websites (plan E3).

On the paper, the SharePoint architecture offered in plan E3 looks very attractive:

  • On the one side, a collaborative site collection with secure access (https). Anonymous users are not allowed here.
  • On the other side a public site collection with pre-built pages (Home, Contact Us, etc.). Business users can easily do simple customization  – add a logo, move the navigation, etc. In addition, Microsoft offers a set of “gadgets” that can be added to the pages to insert a contact form, a map, etc.

I really like the clear separation between public and private sites. I also like the gadgets set, which makes it easy to add functionalities that are not available in SharePoint out of the box, like contact forms (several bloggers have claimed that they could build secure contact forms with SharePoint OOTB… but none has proved it!).

So, what’s my problem? Here is the catch: the usual content management features, that make SharePoint such a powerful application, are not available on the pages designed for the public site. You cannot, for example, manage your public announcements in an Announcements list, and have these announcements displayed on the Home page via a Web Part.

You can read about my discovery path in this thread from the Office 365 forum (obviously I was not in a good mood when I stumbled upon this):
http://community.office365.com/en-us/f/153/p/4533/17358.aspx

I also wrote about it and my current workaround on LinkedIn.

To conclude on a bright note, I really appreciate Microsoft’s recent efforts to get more involved in the community and provide proactive support. Special thanks to Jason Hennis for getting back to me and investigating the issue.