Introducing SharePointR

Recently there’s been a lot of great press on a async signallying libarary called SignalR. SignalR is the brainchild of Microsoft employee David Fowler and helps you build real-time, multi-user interactive web applications.

The last year I’ve been working with a top team in Redmond on rewriting SharePoint into a complete JavaScript version that runs in the client which we’re now calling SharePointR.

SharePointR

SharePointR is a client side version of SharePoint offers all of the base functionality that SharePoint 2010 has but boasts a 300% improvement in speed and productivity for the Information Worker. Along with key features that can only be offered in a client side product, SharePointR comes out of the box with social media integration so there’s no need to build any third party solution.

Technology

SharePointR is built on top of SignalR, a .NET library for building real-time, multi-user interactive web applications. It’s only natural for SharePointR to use the technology and provide a full blown server product like SharePoint to the client. SignalR makes it dead easy and handles all the heavy lifting for you. SharePointR handles all the heavy lifting of running a SharePoint farm for you by putting it on all the client.

Creator David Fowler sounds a little confusing about the product and had this to say. Not really sure what it means though:

Here’s a production product yesterday and predictive rasterized integration legacy fully operating on leftover server data and yup.

Creating a new instance of SharePointR is a breeze:

1. Create a SharePointR hub:

[HubName("sharePointHub")]
public class SharePointRHub : Hub
{
  private readonly SharePointR _server;
  
  public SharePointRHub(SharePointR server)
  {
    _server = server;
  }
}

2. Create a connection between the server and your client:

var sharePointRHubClient = $.connection.sharePointRHub;

// Start the connection

$.connection.hub.start(function() {
  sharePointRHubClient.join('domain\user');

};

That’s it! You now have a fully functional SharePointR server running anywhere you want.

How do you interact with it? Simple. It uses all the classes you’re familiar with in SharePoint land, just in SignalR style. Here’s how to get a listing of documents in a document library and display the list name and number of items in a HTML div tag (called output):

var server = $.connection.sharePointR;

server.lists["Shared Documents"].foreach(function(){
  $("#output").append("" + name + " items = " + items.getCount());
});

Bonus BizTalk Integration

In addition to just a SharePoint server at your fingertips, SharePointR also includes a fully baked BizTalk server (based on BizTalk 2010). It’s drop dead easy to integrate with it using SharePointR:

var biztalk = $.connection.sharePointR.bizTalkR;

biztalk.transport.sendPort = 25;
var json = biztalk.send("SELECT * FROM Northwind.Customers").toJson();

$("#datagrid").load(json);

With 4 lines of code I just contacted the BizTalk server, issued a command to submit a SQL query on a send port via SMTP and returned a JSON array that I fed into a jQuery datagrid.

How easy is that?

SharePointR is Open Source

Just as the ASP.NET MVC team recently announced open sourcing the ASP.NET stack, the SharePointR team has open sourced the product in the same fashion. I’m very excited about this because not only does it mean SharePointR is licensed under an open source license (Apache 2.0) but the SharePointR team is now accepting contributions! Yes, now the SharePointR team will ship community code inside the core product.

How do you get involved? Simple.

  • Find a bug? Send a unit test or fix it.
  • Think our coverage isn’t sufficient? Submit a unit test.
  • Got a feature idea? Get involved more deeply with the developers and help write it.

Like every large open source project, every check-in (open source or otherwise) will be evaluated against the existing standards used by the developers. Even better, you’ll get to see our developers' checkins to the product out in the open.

Implementation

To install SharePointR just use NuGet in your browser by going to http://localhost/nuget then issuing the command:

Install-Package SharePointR.Server

This will bring down the server package and give you everything you need to run SharePointR. Additional packages can be installed via NuGet. These are:

  • SharePointR.Bdc – Business Data Catalog
  • SharePointR.Publishing – Content publishing subsystem
  • SharePointR.PowerPivot – Powerful reporting via Excel
  • SharePointR.Social – All the social media elements of SharePointR

sharepointrnuget

Integrated Services

Some of the new features of SharePointR that we’re announcing is complete integration with Instagram, the fast, beautiful, and fun way to share your photos. With SharePointR you’ll be able to upload photos to a SharePointR picture library and in the background the pictures are automatically posted to the Instagram photo service. This is done behind the scenes so there’s nothing you need to do except setup your Instagram account and password in the system settings:

image

PInterest meets SharePointR

The Like system from SharePoint 2010 has been abandoned in favour of a deep link integration with PInterest. Now users can tag documents, photos, videos, and files in SharePointR and have them immediately posted to PInterest. The integration doesn’t just go one way, it’s two-way with SharePointR pulling in your pins and boards and allowing you to navigate them in the familiar SharePoint UI.

pinterstspr

Native QR Code Support

The SharePointR team thought that QR codes are the greatest invention since the modem and felt they had to be natively included in the product. And they are! Now you can configure a Document Library or SharePointR list to produce a QR code automatically.

qrcodespr

We’ll be releasing QR code generation on a per-item level in a future Service Pack.

Availability

SharePointR is available now! Just install it via the NuGet package or you can grab the source code off GitHub.

What are people saying about SharePointR? Take a look!

image

I hope this sheds some light on what’s happening with the next version of SharePoint and that you see this as a benefit to your organization. While it does mean all your server side code has to be redone, the CoffeeScript tool will help with that so migration to SharePointR should be quick and seamless.

Please don’t hesitate to contact me on Twitter (@bsimser) or via comments below on more questions about SharePointR!

Published Sunday, April 1, 2012 7:19 AM by Bil Simser

Comments

# re: Introducing SharePointR

Sunday, April 1, 2012 9:59 AM by Lee Gaupp

The install is pretty good, but it would be more awesome if you could supply the .ps1 file to support the install.

# re: Introducing SharePointR

Sunday, April 1, 2012 10:42 AM by Bil Simser

@leegaupp Thanks for the suggestion. Please post it as a feature on our uservoice site and vote it up!

# re: Introducing SharePointR

Sunday, April 1, 2012 10:52 AM by Kent Weare

Will you have integration with BizTalk?

# re: Introducing SharePointR

Sunday, April 1, 2012 11:04 AM by Bil Simser

@wearsy Yes! Check halfway in the post. SharePointR includes a BizTalkR server component now!

# re: Introducing SharePointR

Sunday, April 1, 2012 11:46 AM by Kent Weare

Awesome...it will be so simple to use!

# re: Introducing SharePointR

Monday, April 2, 2012 11:54 AM by Oz

This is either a joke or SharePointR is well hidden..

# re: Introducing SharePointR

Tuesday, April 3, 2012 3:32 AM by Elliot Wood

I'm going to develop this for real.

# re: Introducing SharePointR

Tuesday, April 3, 2012 7:20 AM by Madhu

Here’s a production product yesterday and predictive rasterized integration legacy fully operating on leftover server data and yup.

- Read all the highlighted words. Reads - Happy April Fools Day

# re: Introducing SharePointR

Saturday, April 28, 2012 1:01 PM by pandincus

This is a pretty epic troll ;-)