zevenseas


 

New version of our “Assembly free” Team status Application

Just finished making some improvements to our "Team Status” application based on some feedback we received:

  1. Performance has now been dramatically improved. Previously I would issue 2 web service calls, for each messages (once for the username, once for the picture). I know, disaster. Tonight I changed it so that all usernames and pictures are cached upfront. Thanks to those who pointed out the performance was slow, please do try again and let me know what you think.
  2. I solved the issue that resulted in some manual steps during installation. So now, adding members to the site is as easy as, well, adding members to the site.
  3. Also solved a couple of smaller issues:
    1. Now works fine with HTTPS
    2. Now works fine on Site Collections at the root of a Web Application

I have almost got it working on BPOS (Microsoft Online Services), will have an update in the next week or so. In the mean time try it out here:

Demo Site: http://demo.zevenseas.com/sites/AssemblyFreeDemos/TeamStatus/default.aspx
Domain for all accounts:
Usernames: ZSHOSTED\teamstatus, ZSHOSTED\teamstatus2, ZSHOSTED\teamstatus3
Passwords: (passwords are the same as username, eg. teamstatus, teamstatus2, teamstatus3

 

Or install it yourself:

  1. Download it
  2. Create a new site collection, log on as Site Collection Administrator, and upload this .STP file to the “Site Templates” gallery.
  3. Under “Site Actions”, select “Create”, then chose “Sites and Workspaces”.
  4. Give your site a Title, URL and a Description and then click on the “Custom” tab, select “TeamStatus” and click “Create”. Note: This version currently does not support unique permissions, so you must use parent permissions.
  5. After a few moment you will be taken to the new site, and be able to create a send messages.

Taking Assembly Free Solutions To The next Next Level: Team Status Site (Twitter?)

When I started coding the “Twitter for SharePoint” application that I wrote about last week, I had two ways I could go about it:

  1. Use the traditional approach, being the SharePoint Solutions Framework, Visual Studio and C#.
  2. Build it “Assembly Free” using SharePoint Designer, IE8 and Javascript

I started out trying to build it “Assembly Free”, but hit a couple of roadblocks, and because of timeframes, went back to what I knew. Last Sunday was a rainy day in Amsterdam, so I decided to dig up the “Team Status” application that I had started to write, and see if I couldn’t finish it off.

The good news is, I have, and better news is, I think it works. It’s probably a better example than my original “Assembly Free” solution, a Timesheet, and to my surprise it does nearly everything my traditional “Assembly Based” solution does. Of course, there are a couple of important differences (around scale, and some functionality) which means that both approaches will always have their place, but for people with no other choice it’s perfect!

The key advantage the “Assembly Free” approach offers, is that you can deploy the solution anywhere. All you need is a browser and Site Administrator access to a SharePoint site. This means it will work on sites running in your company, hosted with a application services provider, and, we’re working on it, Microsoft Online Services too.

To be clear, this is simply a Site Template. Nothing more, nothing less.

What does the application do?

Simple, it does pretty much everything I described in my previous post except for supporting the notion of “Followers” and the integration with My Site Colleagues. This application is focused more on the publishing side, and less on the subscription side. Here is what the home page looks like:

image

On the left hand side you can see a stream of messages from all the members of the team site. On the top right hand side you can see a “Send Message” box, this is where you can type and submit your status messages, up to a maximum of 140 characters.

On the bottom right you can see “My Messages”, these are any messages that mention you. People do this by using the “@<username>” syntax, where "<username>” is equal to your windows account name (without the domain).

Next to each of the status updates you will see a picture, this picture comes from your “My Site” if you have MOSS installed, or it comes from a column you can add to the User Information table (more information below).

The thing to keep in mind, and I know I’m being very repetitive here, is that there’s not a single line of C# code, and nothing has to be installed on the server. Everything, and I mean everything, has been done using a humble .STP file.

So how does it work then?

  1. I created a new blank SharePoint site, and I added one new list called “Messages”. I renamed the “Title” field to be called “Message”, and I added a new Choice field called “Mentions”.
  2. I then dropped into SharePoint Designer (I love it), opened the default.aspx page and created a “Message” box. This is just a standard input control, with a character counter, and a button that calls a Javascript function when you click on it.
  3. The Javascript function does the following:
    1. It uses a Regex to find all the people mentioned in the message using the @<username> syntax.
    2. It calls one of the SharePoint Web Services and writes the message into the “Message” field, and the people mentioned in the message, into the “Mentions” choice field, one choice each.
  4. I then refresh the page using two javascript functions:
    1. One calls a SharePoint Web Service to retrieve the last 30 messages sorted by created date. It also retrieves a users picture and works out the relative date and time. This is the “Messages” stream on the left.
    2. The second one calls a SharePoint Web Services to retrieve only those messages where the currently logged on user is listed as one of the “Mentions” choices (using a CAML query). It then sorts this by created date and renders it on the page.

All very simple really. There is of course a lot more going on behind the scenes, but it’s all there in Javascript for you to take a look at (and its a little bit neater than my last attempt, I’m learning!). The key thing to note here is that I couldn’t have done it without the amazing Javascript API for SharePoint created by Darren Johnstone. You can find more information about it here:

A javascript API for the SharePoint and Office Live Web Services

Would you Like to try it?

For those that are skeptical I thought I would do two things to convince you this approach can really work.

First, I have a live site you can play with, and some accounts you can log in with:

Demo Site: http://demo.zevenseas.com/sites/AssemblyFreeDemos/TeamStatus/default.aspx
Domain for all accounts:
Usernames: ZSHOSTED\teamstatus, ZSHOSTED\teamstatus2, ZSHOSTED\teamstatus3
Passwords: (passwords are the same as username, eg. teamstatus, teamstatus2, teamstatus3

Try and mix it up a little bit so that it looks nice, and feel free to talk amongst yourselves.

Secondly, you can download it and try it for yourself. This is a beta though, and there are a couple of one-off manual steps that you need to perform in order to get it working for site members. I’m also not sure what sort of issues I might encounter on the various environments out there, so please give feedback.

Before I go into the installation, I’m going to repeat my call to action. If you think you can create nifty little solutions like this and are interested in hearing about how about an innovative new way to put them into the hands of customers, drop me an email daniel@zevenseas.com. We are announcing a new service within the coming weeks which will help you do just that.

Installing it Yourself

These steps just describe how to take a Site Template (.stp) file, upload it to a site collection, and then create a new site based on that template.

  1. Download it
  2. Create a new site collection, log on as Site Collection Administrator, and upload this .STP file to the “Site Templates” gallery.
  3. Under “Site Actions”, select “Create”, then chose “Sites and Workspaces”.
  4. Give your site a Title, URL and a Description and then click on the “Custom” tab, select “TeamStatus” and click “Create”. Note: This version currently does not support unique permissions, so you must use parent permissions.
  5. After a few moment you will be taken to the new site, and, as Site Administrator, you should be able to create a send messages.

It’s that easy.

Adding Contributors

In a pevious version of this blog post I described some manual steps that you needed to perform due to an issue I had hit during development, the latest build (available via the download link on this post) now overcomes that issue. Adding members is as simple as, well, adding members!

Before you can add additional members, and let them contribute to the site, there is one small modification that needs to be made. Site members need to have “Read” access to the User Information table via the web service. Even though they have this via the UI, for some reason, this is restricted via the Web Services, but there is a simple solution. etc. etc.

Adding a picture to your messages

If you have only WSS, and want to let users add their own picture, you need to make the following adjustment. Note: If you are on MOSS, then you don’t have to do anything, it will just work.

1. Follow steps 1, 2, and 3 above, but then when presented with the “List Settings” page, click on “Create Column” instead:

image

2. Create the column exactly as it is shown below:

image

Now, all a site member needs to do, is logon to the site, and go to their “My Settings” page:

image

When presented with their profile, edit the item, and then enter the URL to a picture, in the new column. In fact, they could attach the picture directly onto their profile list item and reference it from there:

image

image

image 

Finally, it seems I’m not the only one thinking about short messaging and SharePoint. Nick Boumans also published to Codeplex a nice solution. It takes the traditional Assembly Based approach, but works very nicely. Check it out: http://www.codeplex.com/SPMessaging

Twitter for SharePoint?

UPDATE: Download Workgroup Twitter for SharePoint.

I was lucky enough to be able to participate in the successful and superbly organised SharePoint Best Practices Conference in the UK a couple of weeks back. Really big thanks to Steve and the team!

Anyway, my first session was all about demonstrating how SharePoint could be transformed from mild-mannered team collaboration server, into cutting edge super-social platform for next generation knowledge management applications. (phew!)

Now, I knew it wasn’t going to be easy, SharePoint of course being born before the Social boom which is now upon us, but this is something I’ve long been interested in and something that I’ve been working hard on, with a large enterprise, for the last 18 months or more. So, I had a fair bit of experience under my belt, and could bring with me some solid real-world examples.

Our new blogging platform, which is available for demo here http://demo.zevenseas.com (and available for purchase, contact hans@zevenseas.com) was where I started. I’ve really enjoyed watching this solution grow at the customer I’m working with, and there is real business value to be gained by making publishing to your intranet as quick and easy as writing an email. But, I wanted to try and do something a little cooler.

Twitter is all the rage right now (even Oprah is on board now), and for good reason, its a great community tool. A great way to connect to people interested in the same things you are, great way to get questions answered and find links shared. While I’m sure there is a lot of skepticism out there, I’m convinced that there is a real place for a service like Twitter inside the firewall.

So, with that in mind, and given the similarities between Twitter (essentially a micro-blogging service) and our existing Blogging Platform, I decided the second part of my demo was going to be (Drum-Roll) “Twitter for SharePoint”!

Escape Clauses

Before we get into it, there are a couple of things I would like to point out:

  1. This is a proof of concept, not working live production code.
  2. I’m not sure this will ever “get into the wild” as I’m still not convinced SharePoint can handle it. Remember, be careful of the “If you are a hammer, then everything looks like a nail” syndrome.
  3. It does work. I demoed it live on stage, and even under those bright lights, it did actually send little messages.

I’m going to spend time in a follow-up post talking about some of the possible business benefits that a solution like this could deliver, but for now, I’m just going to share some screenshots.

How it works

  1. It integrates with the “My Colleagues” functionality which you can find on your MOSS “My site”. This integration means that you “Follow” anyone you make your “Colleague”.
  2. When you want to send someone a message you use the normal “@<person>” syntax. The current version defaults to using your Windows Account Name (without the domain)
  3. Its a “Site” based feature which you can activate wherever you like. So it could be part of your “My Site” or it could sit on a “Twitter hub” in its own dedicated Web Application.

This is what it looks like

Long time readers will already know I’m not much of a designer, but here is what it looks like:

image

The pictures come from your “My Site” profile, replies are any messages that contain an “@<your account name>” and the “Colleagues” view show all the messages posted by anyone listed in your colleagues list.

Writing a new message is as simple as entering it into the “Chatbox” and clicking “Send Message”, of course you are restricted to just 140 characters.

image

To reply to someone you just need to click on their picture to have their “Address” automatically entered into the text box.

image

And that’s it! All pretty simple really, although there are a number of technical challenges under the covers. If you think this solution looks interesting drop me an email, daniel@zevenseas.com and I will keep you informed of our progress.

Sample App Download: Taking Assembly Free Solutions to the Next Level

It took me a little longer than planned, but as a promised in my previous post, you can now download the “Proof of Concept” timesheet application that demonstrates an assembly free solution that perform both read AND write operations with SharePoint. All using the magic of Javascript and Web Services.

This solution will work anywhere SharePoint does, even, if you are running SharePoint in a hosted environment (for example Microsoft Online Services (BPOS)). “Installation” is done entirely through your browser, and you don’t have to ask anyone for permission.

image

DOWNLOAD

How can you install it?

That is my favourite question. It’s just a Site Template. This means all you need to do is upload it to your site template gallery, and then create a new site. Just like this:

  1. Download the Site Template.
  2. Open a site collection where you would like to create the Timesheet subsite.
  3. Click on “Site Settings”
  4. Click on “Site Templates” under the “Galleries” heading.
  5. Click on the “Upload” button, and then select the previously downloaded “Timesheet.stp” file.
  6. When you have done that, click on “Site Actions” –> “Create”
  7. Click on “Sites and Workspaces”
  8. Give the new site a “Title” and a “Description”, then from the “Select a Template” section click on the “Custom” Tab.
  9. There you should find the new “Timesheet” site template, click on it an click on the “Create” button.

You are done!

Call To Action

If you look at the code, and I recommend you do, please be aware that….I’m totally embarrassed by it. Remember two things: (a) This really is JUST a cool little proof of concept and (b) that I have done very, very little javascript programming in the past. The whole application took me 5 hours to put together, and I’m open to anyone who wants to improve it! Criticism is welcome!

As I mentioned in my previous post, we are working on an innovative new service which launches very soon and makes solutions just like this even more accessible to people who want to do more with SharePoint but who don’t have the technical know-how or luxury of installing assembly based solutions.

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 revolution!

TunnelPoint gets its first review!

I’m sitting in an Edinburgh Hotel with Mark and Robin right now, in our post-UK Best Practices road trip. I have lots to write about the conference (it was fantastic) but before I do, I just wanted to get this up on my blog.

We were lucky enough to randomly run into, and have dinner with Jaap Vossers, and we spent just a little time with him talking about our new TunnelPoint solution. Well, he was kind enough to take a look at it, and today blogged his thoughts.

If that bores you though, at least head over to checkout his unique way of explaining things

TunnelPoint: A BDC for SharePoint in the Cloud

After a long period of research and development, this week, Hans announced the official launch (really worth a read) of our first ever hosted solution, TunnelPoint. We are pretty excited about it.

So what is it? Well, if I were to summarise for an audience like the one that reads this blog, then I would say that its the BDC for SharePoint in the Cloud.

What does that mean? Well, it means that through the TunnelPoint service you can connect internet based Web Services to SharePoint lists. For example, you can connect a Stock Quote service to a list that stores stock tickers, and automatically have the price updated for you, on a schedule. We have SMS, Stock Quotes, Twitter, Currency, Driving Directions, ShortURLs, and more, with more coming!

Its been designed with simplicity in mind (though we know we have a way to go) with the whole process taking less than 5 clicks. You tell us about your site (must be internet accessible, for example Microsoft Online (BPOS) sites), you select which service you want, TunnelPoint will configure the site with the necessary list and columns, and then after saving, do all rest for you!

Here’s a screenshot of a TunnelPoint enabled site, you can take a look yourself here: http://demo.zevenseas.com/sites/tunnelpoint/stockquote/default.aspx

 

I have highlighted the bits that TunnelPoint is busily updating for us (note the modified date), but what we also show is other functionality built on this Live update. For example a Twitter message if the price drops too far (could also be an SMS).

All this is built on a platform (we are calling SP-RIF, SharePoint Remote Integration Framework) designed to make really creative use of the power of SharePoint web services. Its incredible just how much you can achieve without having to go anywhere near the server.

Anyway, we are really keen to get feedback.

Head over and Try TunnelPoint.

The service is in Beta, and I mean REALLY beta (not as in Gmail beta). So please have a play, and let us know what you think! I’m always here: daniel@zevenseas.com


 
 
 

© 2009 Community Kit For SharePoint