Skip Ribbon Commands
Skip to main content

Point2Share | Daniel McPherson's SharePoint Blog

:

The zevenseas Community > Blogs > Point2Share | Daniel McPherson's SharePoint Blog > Posts > Taking Assembly Free Solutions to the Next Level
March 24
Taking Assembly Free Solutions to the Next Level

I love solutions. I love understanding the problems a business is facing, and then applying deep thought, creativity and pragmatism, to the process of building a great solution. The keyword in that sentence of course, is pragmatism, and it has meant that despite a love for writing good code, I also like not writing good code. In it’s place, bending the out-of-the-box features to my will, and deriving extra value out of the platform that is SharePoint.

Where am I heading? Well, around 6 months ago Hans came to the office with a cool demo. Now, he is no longer a hard core developer, but the demo left us developer-sorts pretty impressed. What made us even more impressed was that he had built the solution without touching the server. In other words, he did it entirely without an assembly.

This got us all thinking, and along with the emergence of some excellent articles also covering this topic (see below in further reading), we began to wonder just how far we could take this “Assembly Free” approach to solutions.

Our conclusion is, that actually, you can take them very far indeed.

Now, why would I call it the “Next Level”? Because up until now, (big apologies if I have missed anything) I’ve only seen examples that perform “read” operations on SharePoint, solutions that are mostly focused on improving the user experience. While I have loved every one of them, what I really wanted to see, was an entire solution. Something that actually met a complete business requirement. Again, apologies if I have missed something, the blogosphere is big these days, please ping me if you have a demo, would love to take a look (daniel@zevenseas.com).

All of this got me thinking about the way we do timesheets at zevenseas. Like a lot of small businesses we use SharePoint. We grabbed a calendar list, added a few fields, and away we went. It works, its a little clumsy (helped by Access integration) but the bottom line is, it’s a very good value solution for our modest company.

But What if?

What if we could make SharePoint just a little bit better at doing Timesheets? And what if this could be used by anyone with a SharePoint teamsite, regardless of whether or not they had access to the command prompt on their servers. With this problem,we went to work on a solution, and this is the proof of concept we came up with.

This is the first screen you see after creating a new instance of the Timesheet site:

image

The first task you have is to setup your client list, done by clicking on the “Create a new client” link:

image image

With the clients created, pretty standard stuff, I can now go about entering my timesheet information, to do this, I return to the homepage and click on the “Complete your timesheet” link, which opens a page like this:

image

This is a page that I customised using SharePoint Designer, and it sits inside a “Calendar” list. As you can see, this already “looks” a lot more like a classic Timesheet application.

Clicking on the “Click here to select start date” field pops up a calendar:

image

Selecting a starting day, a Monday, means I can start completing my Timesheet:

image

The interesting but here, is that the “Client” dropdown is being populated by a Web Service call to the “Clients” list. Selecting a customer also pre-populates the rest of the fields, as at zevenseas, we usually work with one customer a week.

image

Next, I complete a description, the start time, end time and any breaks, the hours are automatically calculated for me. Here is a timesheet fully completed:

image

To me, this is where it gets interesting. What we need to do is convert this list of daily timesheets entries, into individual list items inside the calendar. Clicking on the “Submit Time” button does just that.

image

Here is what it looks like from the “Calendar” perspective:

image

image 

When you click the “Submit Time” button, we make a Web Service call which populates the Calendar, so we are doing not just “Reads” against SharePoint from the browser, but “Write” operations too. The result is a very basic solution, installed and ready, without having to touch the server. There are zero assemblies, zero C#, zero admins, its just the site owner.

Now, a couple of important points, this is absolutely a “proof of concept” (albeit one that works for us). I’m not very good at javascript or JQuery, the code is awful. Of course the person completing the timesheet doesn’t care about that, all they care about is that it makes filling in their weekly time that little bit easier.

How do we do it?

Here are the key elements in the solution:

  1. SharePoint Designer – Great tool for building these solutions, which eventually boil down to a Site or List Template.
  2. Javascript – Meaning plain old javascript or your favourite library (JQuery, Scriptalicious, etc)
  3. SharePoint Web Services – This is your API, or OM, this is how you do stuff. Sure there are limitations, but focus less on what you can’t do, and more on what you can. Its impressive when you dig into it.

An additional, and very important component is the amazing SharePoint JS API released by Darren Johnstone (thanks Darren) over here:  Download- Javascript web service API for Office Live and SharePoint (1.0.1)

With this set of tools, and some browser side debugging helpers (IE8 is excellent) you are well on the way to delivering solutions for customers without the overhead and risk of assemblies. In fact, it opens up the possibility of solutions to a whole range of customers who can’t install custom solutions.

Don’t get me wrong, this is in no way a replacement to Features and Solutions, it compliments them, providing you with another technique in your kitbag for solving problems.

Call to Action

If you are interested in building small, focused solutions with SharePoint, just like this one, then drop me an email at daniel@zevenseas.com. We are looking for partners who want to participate in a new and innovative way of bringing SharePoint solutions to market, unlocking enormous value for a rapidly growing number of SharePoint customers. 

Further Reading

A big thanks to the following for their efforts and inspiration:
JQuery - A Fresh Look at What YOU Can Do On SharePoint Without Server CodeJoel Oleson
Dock NavigationJan Tielens
JQuery and the Content Editor Web Part - Peter Serzo
SharePoint InstantListFilterJaap Vossers
Waldeks posts over at EndUserSharePoint - Waldek Mastykarz
Binary Free SharePoint Twitter Search Web PartWoody Windischman

P.S. I will be releasing this solution in the coming week or so.

Comments

MVOverdijk

Great work mate! An awesome solution and powerfull in its simplicity!
System Account on 24/03/2009 17:17
 

 Statistics

 
Views: 1927
Comments: 1
Tags:
Published:1524 Days Ago