Category Archives: SharePoint 2013

SharePoint 2013 - The New and Improved Asset Library


You may also be interested in: SharePoint Solutions In-A-Box from Alcero


 

Editor’s note: Contributor Jasper Oosterveld is a SharePoint Consultant at Wortell. Follow him @SharePTJasper

Last year I wrote an article about the SharePoint 2010 asset library. You can read it by clicking here. Recently I became curious about new features surrounding visual media and the asset library in SharePoint 2013.

I created a new asset library and uploaded my first video. The current version shows the video with a standard thumbnail:

This looks ugly; you just want to show a nice image of the video. In SharePoint 2010 you can add an image by uploading one. This always seemed kind of weird because why not take a snapshot from the video? This is now possible!

Select the first option and click on Capture Thumbnail when you see the picture frame you like:

This results in the following:

A really useful and easy feature to provide your video with an excellent thumbnail picture. There are a couple of more options within the properties of the video:

You can decide to let users download the video, show an embed link to link to the video at other locations and tag people related to the video. Pretty cool.

The video file also comes with its own profile page:

Really nice and clean. I like the option to add related pictures to the video:

This creates a more complete video library experience. The last option I want to show you is the following:

I showed you that the SharePoint 2013 asset library provided you with the option to embed the video. By clicking the embed button in the video the above option menu appears. The users can then configure their embed video.

SharePoint Online 2013 - Office Web Apps


You may also be interested in: SharePoint Smart Notifications by KWizCom


 

Editor’s note: Contributor Jasper Oosterveld is a SharePoint Consultant at Wortell. Follow him @SharePTJasper

I’ve written multiple articles about SharePoint 2010 Document Management. You can find these by clicking here. The technical preview of SharePoint 2013 has been released so I was curious if there are any improvements or new features. I only have the online version at this point so my article will be based at that version of SharePoint 2013.

I am going to use the 2010 articles to check out what’s new and improved! Let’s begin.

Office Integration

I will take a look at the Office Web Apps first with a focus on Word documents.

Translate

The Office Web Apps are still present and received an update:

There is a really cool option available: Translate. This will translate your text into a different language. I tried it with the following:

This is Dutch and let’s translates it to English:

How cool is that! It actually makes sense :-) I have no idea how this will turn out with more complex and longer documents but it will certainly help point you in the right direction. You can also download the translated document to your computer. Hopefully there will be an option to save this directly into SharePoint.

PDF

Another cool feature is printing to PDF from the Office Web App:

Click on Click here and a new screen will appear, choose this for opening the file:

Just select the printer and you are done :-) Nice! I would also like to save the PDF directly into SharePoint but unfortunately that does not exist at the moment.

Share

There is also a new option to share the document:

You’ll receive an iframe code you can use in other sites:

This can be used as a fancy shortcut to the document because by clicking it, the document will open in the browser :-) You have a couple of options for the iframe:

A nice little touch for the Office Web App for Word!

Edit in the browser

The document can be edited in the browser, there is no big difference with the current version but I love this extra option:

Click Clip Art:

You can drill down in the huge picture archive of Microsoft! Love it!!!

Co-authoring

Let’s look at the the co-authoring options in Office Web Apps. I’ll start with Word:

You can work together in the browser, cool! Let’s say another users makes changes and saves these, you will see a message at the right corner of the screen. Click here and the document will refresh and show the new changes. Nice!

Let’s continue to PowerPoint because Excel already worked in the previous version.

PowerPoint also enables working together in the browser:

There was no locking of the text so that will cause strange issues at this point. I am hoping this gets fixed.

OneNote also supports co-authoring but does not work either. First of all, you need to enable in order to see the other authors by going to View and clicking Show Authors. You can see the authors but the text does not get blocked. It feels unstable at the moment.

I hope you liked my article about the Office Web Apps. There are some nice improvements and hopefully the RTM version will be stable enough to really profit from this great feature.

SharePoint 2013 - The new and improved team site!


You may also be interested in: SharePoint Apps by Cybozu


 

Editor’s note: Contributor Jasper Oosterveld is a SharePoint Consultant at Wortell. Follow him @SharePTJasper

The team site always receives a new look and feel with every new release of SharePoint. This is no different for SharePoint 2013:

The Get started with your site has a more prominent place compared to SharePoint 2010:

The look and feel is definitely based on Metro; it looks really nice and clean! Let’s go through every tile.

Share your site

This tile is a shortcut to share the site with other users. The bottom of the screenshot shows the group the user will be a part of. A major improvement in SharePoint 2013 is the drop down menu when adding new users:

This makes life a lot easier and faster!

Working on a deadline

This tile will ask you to install two apps:

This is a great feature for creating project sites. Let’s click on Add Them. You will see a new app at the top of the team site:

You can add tasks and show these on the timeline! Click Edit:

At this point you can add new tasks to the timeline:

The “old fashioned” way for creating new tasks still exists. Click Stop editing this list and click on Add:

The new task does not exist in the timeline. You have to enable the callout menu:

Select Add to timeline for all our tasks and you can see the change in the timeline:

All the visitors of the team site can see the upcoming tasks and by clicking on a task a detail pop-up will appear. You can use the ribbon to change the look and feel of the timeline:

Pretty cool stuff :-) I will dive further into this in a future blog.

Add lists, libraries and other apps

 

This tile is nothing more than a shortcut to create new lists and libraries. You will notice the word App. The new word for lists and libraries. Apps it is.

What’s your style?

By clicking on this tile you can change the look and feel of your team site:

This is an upgrade of the SharePoint 2010 Site Theme feature. We have a selection of 14 themes but are free to change it to our own needs. Let’s pick Immerse:

The cool thing about this version is that you can add your own picture for the background! Just click on Change under the logo, I will pick the Wortell logo. You can also change the color scheme, overlay of the picture and the letter type. These options are pretty limited.

You can click Try it out anytime you want to see a preview. Not satisfied? Just click Try again until you like what you see:

We can all agree this is not the nicest looking look and feel ;-) A lot of companies will have their own branding but if you let your users choose their own design this is a nice feature.

Your site, your brand

This tile will send you to Title, Description and Icon menu where you can change these options.

Keep e-mail in context

This will install the site mailbox app but at this point I was not able to get it to work. So hopefully a follow up in the future.

Are you looking for site actions? The menu is replaced by the following icon:

In future posts I will talk more about the other great new features of SharePoint 2013!

Note:
I am using the Office 365 SharePoint Online preview for this article.

Discussion Board list in SharePoint 2013


You may also be interested in: The SharePoint Shepherd’s Guide for End Users from SharePoint Shepherd


 

Editor’s note: Contributor Hai Nguyen Tuan is a Developing Lead at Bamboo Solutions Corporation. Follow him @tuantomy

SharePoint 2013 has completely removed the term “list” even though some captions still use “list” as a prefix. The “list” has been replaced by “App”. Microsoft now calls each element in a site an app. Therefore when you add a list into a page that means you will add a new app into that page.

The biggest change is the Discussion Board list. The processing, style, UI and all actions have been changed. To explain the new features of a Discussion Board list in SharePoint 2013, I will go through step by step to have an overview of each action on this list.

Step 1: Create List

For now, I will call “Add an app” instead of “Create a new list” because of the changes in SharePoint 2013. The UI after that looks like:

There are three tabs, one links to new and one button to refresh the list.

The “Recent” tab will list all items just created in the Discussion Board and these are the newest items.

The “My Posts” tab will list all items of the current user logged into the site.

The “Unanswered” tab will show all items where there is no reply or answer on the thread.

However, you can also click on “…” to show more actions on this discussion such as “Answered”, “Features”… Because when we post a reply or create a new discussion, the action will be ajaxified. To get the newest discussion, we can click on the refresh button on the top right.

Step 2: Click start link to create new thread

As you can see in the picture it’s a very new UI. The formatting toolbar is now on the ribbon instead of being in-line with the Body text field. This allows users to mark a thread as a question by checking the Question checkbox.

Once saved, it redirects to the discussion list with all items.

Here are the new features in the Discussion Board list:

  • No context menu when users hover the mouse on an item. It is completely different from SharePoint 2010. When a user clicks on the item, it will show the detail of that item.
  • The time of posted or replied is formatted like Facebook or common social networking.
  • Shows the number of replies for the thread even though the default view is still Subject.
  • SharePoint 2013 has exposed 2 new views: Feature Discussion and Management. The Management view will show information like the Subject view of SharePoint 2010. But the UI has changed to be easier to use. The “Plus” sign on the top right allows users to add more columns for the current view. Additionally users can search any keyword in this list by typing the keyword into the find textbox. See the picture below.

If a user clicks on the item, all replies will display without the detail of that item. That’s so cool, because sometimes we don’t need to see the details of items, as it may contain a lot of text and is difficult to see on the page. Another scenario is the user who manages this list, only need to manage the comment (reply) such as deleting, approving or denying the comment with one click.

Step 3: Reply the topic/thread

You can reply immediately after the post by clicking on the textbox at the end of the page, then clicking the Reply button.

Or if you want to edit the post, click on the Edit button at the end of post. The context menu only contains three more actions: mark as featured, edit and delete. If you are familiar with using social networking like Facebook, I guarantee that you will be very happy with the new UI of the Discussion board. It’s so fast and easy to use. The new UI decreases the number of operations while you work on it. In fact, the context menu (ECB Menu) is different from SharePoint 2010. For example, when users click on “…”, it shows the context menu then if they click on the View Item menu, it redirects them to the detail of that item. A popup window is completely hidden from SharePoint 13 and there is only 1 term to be used in new UI: in-line. The popup window only displays if you turned it on in the advanced setting, but the default is off.

Users can edit or delete directly each reply message. Additionally users can mark the message as the best reply by clicking on “…” and selecting “Best Reply”. In every replied message, there is only one message that can be the best reply, and this message is moved to the top of the replied session.

Some other new features of the Discussion Board:

  • Rating setting: in SharePoint 2010, there is only one function which turns on or off the rating. But in SharePoint 13, you have a chance to set the rating as a star or a like button.
  • Reindex checking: you can check if the current list has been set for indexing search engines by clicking on the Reindex list button. This is very helpful for managers who want to indicate the list with or without indexing.

Leverage AppFabric for custom caching in SharePoint 2013


You may also be interested in: Documentation Toolkit for SharePoint by Acceleratio Ltd.


 

Editor’s note: Contributor Stephane Eyskens is the founder of Silver-IT. Follow him @stephaneeyskens

As you might have noticed, AppFabric is now one of the pre-requisites when installing SharePoint 2013. SharePoint uses it for workflows and activity feeds.

When I noticed that AppFabric was part of the pre-requisites, I immediately thought of trying to figure out whether SharePoint would give developers new APIs to leverage AppFabric’s distributed cache capabilities. As SharePoint developers, in the 2007/2010 versions, when it came to caching we always had to either use ASP.NET cache (mostly inproc) or rely on third parties such as NCache or AppFabric but we had to install/configure those ourselves as they were not integrated in SharePoint.

Unfortunately, at the time of writing, Microsoft did not release any public API enabling us to benefit from a Farm-Wide caching system. Indeed, the classes leveraging AppFabric are all marked internal, so there is no public API. However, the good news is that we know AppFabric will be deployed on every SharePoint setup, therefore, we can start using it in the context of SharePoint using the AppFabric client DLLS.

I built a wrapper that you can download here http://sptoolbasket2013.codeplex.com/. Its purpose is to ease the use of the AppFabric layer in the context of SharePoint 2013. I should add that this is currently in an experimental stage since I’ve never used it for a real project and I don’t even know whether this wrapper would be supported by Microsoft :).

I’ll describe all the testings I’ve made with this wrapper & AppFabric in SharePoint 2013.

Table of contents:

Topology used for my testings
Services
Checking the AppFabric configuration
The AppFabric Way
The SharePoint way
Description of the wrapper
Getting started with the wrapper
Cache Invalidation
Local Cache
Different running contexts
Distributed Cache Accross the SharePoint Farm
Cache Distribution
Testing HA
One step further
Locking
Serialization
Working with regions
BulkGet
Cache Search
Cache Exceptions
Real World Scenario
Conclusions

Topology used for my testings

In order to test a distributed cache system, you really need to be in a farm configuration, stand-alone install is not sufficient. I built an environment on CloudShare which was made up of the following:

- A domain controller hosting the SharePoint services, WFE and SQL which I’ll refer further to as C6208759806
- A WFE that I joined to the existing farm which I’ll refer further to as C7763875784

This way, we’ll really see if the cache is indeed distributed :).

Services

In order to use distributed caching, you need to ensure that the Distributed Cache Service is started on both servers as shown below:

A corresponding windows service should also be up & running :

All the above is normally done automatically upon SharePoint installation but I prefer to mention it in case something went wrong during setup.

Checking the AppFabric configuration

The AppFabric Way

You can easily check if the AppFabric cluster is correctly configured by opening the PowerShell window labelled Caching Administration Windows. Then, you can type the following commands:

which will give you information about the AppFabric cluster configuration. One more command will give you information about SharePoint’s usage of AppFabric:

As you can see from the above screenshots, AppFabric listens to specific ports other than 80/443. Firewalls must be configured accordingly

The SharePoint way

Open the SharePoint Management Shell, you’ll find the AppFabric commands + some specific SharePoint cmdlets. They are listed in the below table:

and the one you should always start with : Use-CacheCluster.

Description of the wrapper

As stated in the introduction, the wrapper is aimed at facilitating the usage of AppFabric within SharePoint. It’s not making a complete abstraction of the underlying AppFabric layer but helps in creating factories according to the SharePoint config & topology.

It does the following:

  • Allows you to work also with SharePoint 2010 providing you have installed AppFabric. The wrapper comes up with a configuration page in order to allow you to specify which servers are in use
  • Detects which SharePoint servers are running the distributed cache service and adds those when creating the factory
  • Makes use of SharePoint’s default cache area that is created automatically upon SharePoint installation
  • Allows you to easily enable local cache
  • Allows you to easily enable local cache notifications providing the cluster is correctly configured

Note that you can specify explicitely to use another cache than SharePoint’s default one. However, that cache must be created by an administrator using the PowerShell cmdlet New-Cache prior to consuming it from code.

Getting started with the wrapper

Using the wrapper, the simpliest way of adding an item to the cache is this one:



You first need to add a reference to the following DLLs:

  • SilverIT.SharePoint.AppFabric
  • Microsoft.ApplicationServer.Caching.Client
  • Microsoft.ApplicationServer.Caching.Core

The wrapper can be used with the default settings that are calculated dynamically whenever a new factory gets instanciated. However, this operation is quite heavy. The wrapper offers two configuration modes :

  • Dynamic : you can make use of the SPCacheConfig class to specify the behavior (localcache, named cache, timeouts etc..)
  • Static: you can use a specific configuration page where you define once for all the parameters that the wrapper is supposed to use. This page looks like this:

    and what you specify there is persisted in a SPPersistedObject

Note that the latter approach takes priority over the dynamic one. For a full explanation of the wrapper and its configuration, go visit the documentation on the CodePlex project

Cache Invalidation

All the objects stored in the cache will expire after the time specified in parameter to the Add() method which has a few overloads and one of them allows you to specify the time to live for a specific object. So, if you add an object the following way:



It will remain in cache for 5 minutes. If you add an object to the cache the following way:



It will use the default TTL of the SharePoint cache.

Of course, if the objects get modified, they will also get invalidated.

Local Cache

AppFabric provides a way to enable local cache. When local cache is enabled, if a consuming process requests a specific object, it keeps it in its own memory for further uses. The advantage is that subsequent accesses to the cached objects are faster since you avoid an extra roundtrip to the cluster cache and you avoid the serialization process that occurs along with the roundtrip. To observe that behaviour, you can easily write a small console application, you enable local cache programmatically (see below) and you can for instance add 10 objects of +- 1MB each to the cache, after that, you read them 1 by 1 in a loop with a sleep of 2 seconds from another instance of that console app and you monitor the memory usage with the Task Manager. You will clearly see that every 2 seconds, the memory usage of this console app will increase of more or less 1MB.

If however, you do not enable local cache and do the same "exercise", you’ll notice that your memory will increase/decrease/increase/decrease etc…and not constantly increase anymore.

In SharePoint, it’s the worker process w3wp.exe that will store locally cached objects. To enable local cache using the wrapper, you just have to do the following:



this will by default use Timeout based expiration policy. I actually created 5 overloads which are :


Timeout based expiration with default object count and default timeout


Timeout based expiration with specific timeout


Timeout based expiration with specific timeout & specific object count


Notification based poclicy with specific timeout & specific polling time


Notification based poclicy with specific timeout, specific polling time and specific object count

If you want to use notifcation based expiration, you can do this:



With the above example, the system will check every 5 minutes whether there is a notification for locally cached objects. If nothing has changed, it will keep using the locally cached object until the timeout for the locally cached object is reached.

Note that you often see on the web timeout based or notification based. In reality, it’s actually timeout based and notification based because whatever method you’re using, you’ll have to specify a local cache timeout even if you’re using the notification based policy.

In the context of SharePoint, if you want to use the notification based expiration policy, you can enable it the following way with PowerShell:



Please note that this might not be supported by Microsoft and make sure you carefully test this configuration on dev/integration/acceptance environments instead of rushing in production :). Note that when using Notification based policy, the timeout specified in the local cache config is still used by the system meaning that some items could be evicted from the local cache although no notification was triggered.

Different running contexts

As you might have noticed from the above examples, AppFabric can be used from non-web contexts.

This offers the following big advantages, in the context of SharePoint :

  • You can build time consuming cached object from within a Timer Job for instance
  • Your cached objects can be shared accross different SharePoint web apps
  • Your cached objects will reset to an application pool crash, IISRESET
  • The wrapper facilitates the usage of AppFabric
  • The SharePoint Infrastructure offers a good abstraction layer to manage AppFabric and facilitates admin’s life
  • Providing you’re running in a farm context and that you started the DistributedCache service on more than 1 server, you’ve got a HA cache system (read more on that below)

Distributed Cache Accross the SharePoint Farm

To perform the below tests, I wrote a very basic SharePoint WebPart that I added on a page served by my servers C7763875784 and C6208759806 having both the WFE role enabled.

Consider the following code (reusing the cache wrapper explained earlier) :



in which I store a simple string in the cache, I first check whether it’s already in the cache, if not I add it.

Cache Distribution

I went to the server C6208759806, browsed the home page and added the webpart which gave me the following result:

As expected, the string was not in the cache so the webpart has added it. After a page refresh, you get the following:

again, here, expected behaviour since now the item could be obtained successfully from the cache.

Then I went to server C7763875784 and just browsed the home page which returned this:

As you can see, the request has been served by C7763875784 not by C6208759806 where we inserted the item in the cache and the webpart could read the value without any problem. This simple basic test shows that the cache looks to be indeed correctly distributed. With the OOB ASP.NET caching, each w3wp.exe process would have had its own independent cache state on each server. Here, we clearly see that we get the same item out of the cache but is the system really distributed (see next section…)?

Testing HA

For this test, I went to Central Administration - System - Services on Server. Then I stopped the service Distributed Cache on C7763875784. I double-checked whether this was indeed stopped at AppFabric level:

Then I simply refreshed the page on C7763875784 and could still read the cache without any problem.

However, this was working because I stopped C7763875784 not C6208759806. If I repeat this scenario but if I stop C6208759806 instead of C7763875784, then my item cannot be found in the cache anymore and is re-cached on C7763875784…

What does this mean? It means that while C6208759806 was running, it was always used whenever SPDistributedCacheWrapper.Cache.Add() was called. I decided to go one step further to find out why the hell data was not replicated accross hosts that belong to the cache cluster.

First I read, more carefully, some AppFabric documentation :). Then, I found out that at the time of writing, SharePoint does not configure high availability automatically. It means that if you want the Cache-Cluster to replicate the cached items between hosts, you need to configure it yourself. Here is how to proceed, bear in mind that I’m just sharing the results of my findings, you should of course analyze the impact of such changes on your farm but at least, you can try this approach in a sandbox and decide later whether or not it is a good idea :).

To enable HA on the SharePoint Farm, you need to:

  • Then run this command:


  • Start-CacheCluster (or do it from CA)

From now on, any object cached with the wrapper is replicated accross hosts belonging to the cluster, giving not only your connectivity High Availability but also your cached items are Highly Available.

One step further

Locking

The AppFabric client DLLs deployed by the SharePoint setup provide two methods to handle locking. Consider the following code snippet:



Say an update method that receives an object as argument that you need to update. You can first call GetAndLock. This will try to lock the said object, in this case during 100ms. The lock handle is returned to CacheLock. The call of PutAndUnlock will update this object and explicitely unlock the object after the update is complete.

If you don’t call the PutAndUnlock method explicitely, the lock will expire after the number of milliseconds (ticks/minutes/hours…) you have defined in GetAndLock. Note that GetAndLock will throw an exception that the object is already locked out by another process/thread.

Serialization

As I stated a few times earlier, with AppFabric, the objects you put in cache are serialized. Therefore, these objects must be decorated with the Serializable attribute. Objects such as SPWeb are not serializable, therefore, you can’t cache an entire SPWeb as is.

That’s not a good idea anyway since SPWeb is also not thread-safe. AppFabric makes use of NetDataContractSerializer to serialize objects. This serializer helper makes bigger cached objects than the default BinaryFormatter used by ASP.NET. On top of that, if you’re used to work with the latter, pay attention to not encounter deserialization "conflicts".

Working with regions

AppFabric regions help represent a logical architecture that matches your application designs. In the context of SharePoint, you may want to cache User Profiles related objects in a separate region called "UserProfiles" and you may want to cache custom application data in "ApplicationDataxxx". Regions are created at runtime programmatically and have a small overhead in terms of space used (a few KG per region).

However, unless you create zillions of regions, you should not be afraid by the extra consumed space. When HA is enabled, regions are also replicated accross the cluster hosts. Regions also offer additional features such as Tagging (explained below).

It is very easy to create a region, you can just use the following line of code:



If the region already exists, it doesn’t recreate it. Another advantage I see when working with Regions is that you can reduce race conditions/multi-threading issues by storing individual objects instead of List or Dictionaries. If you have a List that’s read/updated frequently, you might quickly run into race conditions since the entire List object will be either read, or updated for every operation. If, instead, you store each invidual object with a specific key in a region, you’ll be able to update them individually, thus, reduce the number of concurrent threads that are reading/writing the same object.

Of course, that depends on the context, on the number of objects you have to deal with etc…If you’re only reading or perform CRUD. All those aspects must be taken into account before making a decision.

BulkGet

BulkGet allows developers to retrieve several cached items at once from a specific region. The following examples shows this in action:



This gives the following output:

Cache Search

You can now search for any cached item matching certain tags. This can be particularly useful since you’re free to associate any tag you’d like to your cached objects. It’s a kind of keyword association.

Reusing the same CustomType classes as earlier, here is a code sample that shows how to make use of this search mechanism:



You can associate more than one tag to a cached object. So, with a slight change to the previous example:



where I also add a second tag to all items having a "modulo 3" key compliant, I can easily make a query to get all the items that were at least tagged with CommonTag. Here is the output of the above code:

Cache Exceptions

Some specific exceptions with self-explicit names can be thrown by SharePoint components using the distributed caching. They all start with SPDistributedCache….On top of those exceptions, if you’re using the wrapper, you might encounter the regular AppFabric exceptions (similar to the SharePoint ones) + a specific exception from the wrapper which is SPDistributedCacheWrapperNoService.

This exception is raised if no server in the farm is running the Distributed Cache service.

Real World Scenario, caching User Profiles for end user search queries

A real world scenario could be that you’re storing the User Profiles within the Cache because you need to perform a lof of queries such as "autocomplete search boxes", custom advanced search centers etc…and that you don’t want to target the OOTB SharePoint search to avoid overloading it.

A while ago, I demonstrated a custom use of oData to perform such tasks, the post is available here. It would be possible to modify it to use AppFabric instead of the worker process to cache the items.

Conclusions

A lot of the topics I talked about in this article might be subject to discussions. AppFabric is now required by SharePoint 2013 but the primary purpose is to serve SharePoint…In this article, I’ve showed how we can "deviate" from the expected OOTB behavior in order to use AppFabric for custom caching. I mentioned before that I’ve not tried that approach on a real world project plus at few things I’m doing in this article might not be supported by Microsoft. These are :

  • Consuming the default SharePoint cache
  • Configuring the default SharePoint cache to be highly available
  • Configuring the default SharePoint cache to use notification based expiration

The two last bullets are actually completely optional. Also, we are still working with the preview and might expect Microsoft to deliver a public API or a specific SharePoint guidance to deal with the underlying AppFabric layer.

Happy Coding!

Why we need a SharePoint 2013 marketplace

 

I’ve been working in SharePoint now since SharePoint 2003 and am a 3 time SharePoint MVP. I eat, live, sleep this stuff. When I found out that there would be a marketplace in SharePoint I immediately thought “opportunity”…and to be honest “SharePoint Fart App”. In all seriousness this is an amazing opportunity to get Microsoft ISV Partners exposure to SharePoint users both in Multi-Tenant environments like Office 365 and in Full-Control environments. I expect the usual suspects to be a part of this and it’s great to see Kodak and Pingar already in the SharePoint marketplace with apps from AvePoint, GimmalSoft, Lightning Tools, Nintex “coming soon”.

The marketplace is also a great way for new development teams to get in the game too. Anyone can sign up to submit applications to the marketplace. There is a rigorous validation process…trust me, I’ve been through it with the AvePoint MyView app. I’m glad it’s in place because it enforces the quality of the apps in the marketplace.

The history of marketplaces

If we look back at other marketplaces in the technology space, you can see an amazing amount of success. In my opinion, the best example of this is the Apple iOS marketplace. Mainly because of the adoption of the iPhone and iPad.

If you look at Microsoft’s history with marketplaces:

  • The Azure marketplace has been around for a while and not been too successful because the demand for the data market to date has been low.
  • The Zune music marketplace in my opinion has been the most successful. I am a huge consumer of Zune Pass for unlimited music. The app rocks and is now evolving into Xbox Music across all platforms.
  • The Xbox360 marketplace is something I have consumed a lot of with the amazing app support from media perspective.
  • The Windows Phone marketplace hasn’t had the adoption I would have liked as a consumer but I am hoping that Windows Phone 8 will improve the adoption by ISVs in building applications due to the improvements.
  • The Windows 8 marketplace is obviously in consumer preview right now but again I’m shocked that the adoption of apps has been low. In comparison to the apps in the Mac OSX marketplace is a lot less. I’m not sure why this is the case as the new development model is a lot more open with both XAML/.NET and HTML5/JS approaches.

So as you can see, Microsoft has a lot of marketplaces already…and guess what…none of these share the same platform which is a little bit of a concern.

Who can we expect to be in there

2012-07-27-Marketplace-01.png

As I mentioned before Kodak, Nintex and Pingar are already in there and AvePoint, GimmalSoft, Lightning Tools are coming soon. Here is what they had to say about it.

2012-07-27-Marketplace-02.png

I’d hope to think that the other key ISVs in the SharePoint space will get in there too: Axceler, Bamboo, BA Insight, K2, MetaLogix, MetaVis, Newsgator, Vizit and lots more. In some cases, vendors, like ourselves will have to build new apps rather than moving their existing solutions into the marketplace. This should lead to some awesome innovation leveraging the SharePoint platform to help business users improve their productivity.

What can we expect in there?

At AvePoint Labs, we’ve been working hard to come up with new ideas for apps for the marketplace. If you’ve read my application model article, you’ll understand some of the limitations that are there around site collection scope and below. This will affect the type of apps that are available.

For instance, AvePoint are re-known for the infrastructure management platform, DocAve, which relies on cross farm cross web application management control. For DocAve to work in the new app model, the app would need to be installed in every site collection and granted full control permissions. Something that the UI out of the box is not going to handle well. Therefore Full-Trust Solutions on a Full-Control environment is a better fit. We will be offering an approach to this in the marketplace in the future though.

Personally I think to start with the marketplace there will be a few types of apps:

Site template starter kits

I can see a lot of opportunity for people to build out sub sites and bundle these as apps to be purchased in the marketplace. I’ve already heard people talking about going after particular verticals here such as “Doctors surgery” solutions.

Branding solutions

With the improvements in themes in SharePoint 2013, you can be sure that people will work out a way to deliver these via the SharePoint-Hosted apps. Theme packs really didn’t take off in 2010 like I thought they would so let’s see how that evolves over time. There are some blocks on uploading masterpages, but there are ways of overriding CSS files which I’m sure some clever guys will work out.

Web Parts

There is already an app for World Clock and Weather app. I expect a Stock Ticker app to be close behind this also. The big limitations with making web parts available this way is that there is no API to automatically add a web part to the parent site collection homepage at the moment. The metro tiles on the site home pages can’t be manipulated by the apps to add the web part there. So all that you can do is have it show in the “Recent” in quick launch or show it in Site Content and make the user click through to it. Unfortunately this does move away from the concept of mashing up apps on the homepage of your site unless they add it manually. I can see this as a huge blocker here.

 Light integration

Pingar’s app is a great example of UI Custom Action integration into the ribbon to show how their external service can be called on the client side and leverage the client object model with trust to automatically classify list items in a list. The OAuth trust has been leveraged here to really highlight the power of given an app trust in a site collection to delegate control to the app. You’ll see this from other ISVs like Kodak, HP, DocuSign etc. in Document manipulation.

Enhancing existing functionality

Something that happened a little bit in 2007/10 was for ISVs/community to bring out solutions that enhanced existing functionality. For example, the CKS: Enhanced Blog Edition made the blogs more useable for public facing web sites. I can see a lot of apps being added to site collections and the app reaching out and tweaking subsites within it to make them better. One key thing here is that an app can’t go into other app subsites.

Business Applications

For the more sophisticated applications, typically that will already exist, I can see that remote-hosted apps with the Immersive Full Page approach will be a perfect approach to take. It will be interesting to see how existing web application platforms hook into SharePoint and take advantage of the OAuth trust between itself and SharePoint. Great examples of this would be how Dynamics CRM could hook into SharePoint and leverage the OAuth trust to drop documents into the parent site collection for the app.

Financial reward

The apps in the Preview must be free, and therefore I imagine some companies will wait until the launch of the marketplace where they can charge for apps before they release them. In terms of how much apps will cost…this will depend on the licensing models available. Currently there is no public information on this and I’m hearing this will be announced nearer the time.

It’s certainly going to open up a new sales channel to direct sales for Small Businesses that most ISV’s work with right now. The exposure to small ISV’s is going to be huge, most of which were not in any TAP and I would imagine scrambling now they have the Preview bits to build out their products. I’d expect to see a lot more apps in the next three months with this scenario.

Most current ISV’s licensing models are derived either by the size of the SharePoint farms (number of servers in farm). This model mirrors how Microsoft license Full-Control environments. Most of these licenses are obviously large investments for EPG customers, not something you’re going to throw on your corporate credit card and require a purchase order. Big EPGs are going to be buying direct from ISV’s for a long time to come due to being able to negotiating deals.

As ISV’s are looking for big deals, the marketplace isn’t going to be appealing unless they come up with killer commodity apps and therefore the focus may stay on direct sales and deploying their products via the solution model to the Full-Control Environments that EPG customers typically have.

The subscriber model in Office 365 has also been mirrored with ISVs with customers who are used to this model already. All of these models currently in SharePoint 2007/10 are hard to enforce and rely on an element of trust or code to validate the license.

I’m intrigue to see how some of the apps already mentioned in this article tackle licensing and don’t cannibalize their existing market and licensing model.

Community involvement

CodePlex has been around for a long time and the development community have engaged in submitting source code and add ons for SharePoint. The quality of the solutions in CodePlex vary from amazing (SPServices, CKS:Dev) to unstable. There is no vetting process in there and you have to be extremely cautious in using these. I hope that a lot of these developers will make their solutions in CodePlex available into the marketplace for free to get them more exposure. Apps can be given for free, so this is extremely compelling for adoption.

Trusting apps

One discussion that was had at a Boston User Group SharePoint 2013 panel with Andrew Connell, Rob Bogue, Asif Rehmani, Randy Drisgill, Marc Anderson and I. Something I raised was the concept of when you see apps in the marketplace place by the usual suspects like AvePoint, Pingar, BA Insight, Lightning Tools and Nintex…you’ll immediately trust them if you need to grant them “Full control’. But I see an issue in smaller unknown vendors on this trust front. A good example of this is that in the remote-hosted apps model, Microsoft will approve your application package that points to your app hosted in a web application remotely to SharePoint with full control. But there is nothing stopping a vendor from modifying that web application to do something different with its full control rights once approved.

Discoverability of Apps

The other big concern that keeps being discussed is how Microsoft are going to weight the apps in the marketplace. There is a rating system built into the apps that is used to display the apps and there are categories when you submit the apps.

2012-07-27-Marketplace-03.png

I have been told that there is more logic in there to make sure the popular and high quality apps are surfaced for higher discoverability. Needless to say we can expect the “SharePoint Fart App” to appear, but hopefully no-one is going to make a fortune out of it like the iOS one ;-)

Country Availability

Another thing to point out is that it has not been confirmed what countries the marketplace will be available in. Most ISV’s will have a core market in North America, followed by EMEA and AsiaPac, but this will affect some ISV’s who target countries who aren’t use the marketplace and they’ll have to stick to their current model of selling software.

Wrap Up

It will be interesting to see how this unfolds and who invests in being there for launch. I’d love to hear from people on their experience with the marketplace and what apps people are working on. I’ve started a #SPYam group specifically around this so please let me know if you’re interested.

Please make sure you check out my social bookmarks on all things SharePoint 2013 and development and if that’s too much, try my 5 star rated posts sub set.

Feel free to cross post this today and link to it on NBSP.

http://www.made4the.net/archive/2012/07/30/screencast-introduction-to-the-sharepoint-2013-app-model-amp-marketplace-spsnyc.aspx

The new SharePoint application model


You may also be interested in: SharePoint-based solutions by B&R Business Solutions


 

With the public announcement of the new major release of SharePoint and the availability of the public beta, I thought it would be a good time to introduce and share my opinions on the new application model in SharePoint 2013.

As hopefully you have seen our announcement, we have released a new app into the Marketplace which is available for free in the preview period within the Office 365 Preview SharePoint Online environment. This app was developed by our AvePoint Labs team, which we formed in January of this year to focus on building prototypes on new technology, extending a research and development arm outside our existing DocAve platform. I have had the pleasure of working on this team with some amazing developers to build this app along with other prototypes on top of Windows 8 and Windows Phone 8 and other upcoming platforms. I am very passionate about technology and love the fact that every day I get to be on the bleeding edge. If you haven’t guessed already, I love my job! To see more on our app please check out the AvePoint MyView microsite and download it in the Marketplace.

Our journey started when we were invited by Microsoft to be involved in a program to help give feedback on the SharePoint Product Group’s vision on the next wave of SharePoint, much like we have done in the previous 2007 and 2010 waves. Since that initial briefing, we have been more and more involved in deeply investigating the new features of the platform in early builds of SharePoint. This involved building proof-of-concept solutions to help get a deeper understanding of the platform changes. This also helps us understand how changes may affect our existing products and identify opportunities for new products such as MyView.

The 2010 application model

The 2010 application model evolved from 2007 in one key way, with the introduction of sandboxed solutions. For those of you who sucked the fire hose of information when this was announced, the intention was to “start first with sandboxed solutions, and only move to full trust solutions as needed.” Sandboxed solutions gave Microsoft the ability to offer Office 365 SharePoint 2010 Online with support for custom, managed-code solutions, a big improvement over BPOS SharePoint 2007 Online which only allowed for Web UI and SharePoint Designer customizations.

Microsoft believed that there would be uptake on-premise also, but the general feedback is that sandboxed solutions are too limiting which usually pushed you to use client-side development approaches such as JavaScript or Silverlight. The newly introduced Client Object Model did make the platform more extensible but there were, and still are, limitations of this API that require you to use the more extensive Server Object Model and many of these calls are only available through full-trust solutions.

Terminology changes

With the confusing combinations of on-premise, private/public clouds, multi-tenanted, partial-trust and full-trust environments, I think it’s important to introduce some new terminology to clarify the code execution options we have. Companies like Fpweb.net, Rackspace, Amazon, and the new Windows Azure all provide hosted VM-based solutions where you have full control of the servers. This means you can remote into the servers and you can also deploy full-trust code solutions if you wish. You may also have on-premise servers where corporate governance policies restrict you from deploying these same solutions. Microsoft’s SharePoint Online and other hosting providers also offer a restricted multi-tenant model where only sandboxed solutions are supported.

While you have a lot of options for hosting SharePoint, in terms of code execution, there are only two choices that are relevant. For this article and moving forward I’m going to use the terms “Full Control SharePoint environments” and “Multi-Tenant SharePoint environments.” I have asked many if terms for these have already been defined, but so far I’ve not encountered a distinction as clear as this. Please let me know in the comments area if I’m wrong here or if you have other suggestions.

Where to begin

The sandboxed solution model was introduced to control the execution of managed code on a SharePoint server within the farm, because you didn’t want one solution de-stabilizingthe rest of the SharePoint farm as it may have been shared by other tenants. The code within a sandboxed solution is executed in a separate worker process on one or more SharePoint servers and monitored for overall usage. This usage was calculated into a point system which was determined by the requests made in the code. Once the solution consumed more than the allocated resource points for the site collection within a 24 hour period, the entire sandbox was disabled. Yes, that’s right. It didn’t just disable the solution, but effectively took down all other sandboxed solutions running in that site collection. For more information on the resources measured please check TechNet.

Monitoring and policing sandboxed solutions prevented to a degree how one tenant affects other tenants on the farm. A flaw in this model was that if the code excessively calls the client-side APIs, these are not monitored. Furthermore, this remote invocation has been encouraged by the huge adoption of JavaScript and jQuery from within the development world. Microsoft needed to come up with an answer to “off-shore” the solutions so that it didn’t affect the underlying SharePoint platform.

SharePoint-hosted application model

Virtual file systems have always existed in SharePoint and you can deploy files by uploading through the Web UI, through SharePoint Designer or in by referencing them within Solution Packages (WSPs). The new SharePoint-hosted application model allows you to use Solution Packages to deploy files, typically .aspx pages, into a new App Web which is a SharePoint Site (SPWeb/Subweb).

The big drawback to these solutions is that they cannot have *any* server-side managed code and rely purely on client-side coding languages such as JavaScript. These solutions will be able to call the SharePoint client-object model much like you can in SharePoint 2010 now.

This way you have less flexibility for building true SharePoint-hosted apps and is certainly less control than Sandboxed Solutions. The key here is that they are available to be submitted for the marketplace.

Remote hosted web application model

Back in the early days of my IT career as a graduate in 2003, I worked on a platform called Plumtree Portal, which eventually got bought by BEA and is now called AquaLogic. This is a Java based server side platform with a JavaScript client-side development platform. It essentially allowed you to drop “portlets” on your portal pages that were windows through to other web applications via IFRAMES. The really neat part about this technology back then was that they allowed controlled communications via JavaScript between the hosted portal page and the web application running in the portlet. Again, ring any bells? You’ll hear this being compared to Facebook app model a lot!

What the Microsoft team has done is introduce the ability for an “App” which is a SharePoint subsite that can host pages from a remotely hosted web application. That application also has context of the site collection in which this subsite is stored. The SharePoint site collection has a trust relationship with the remotely hosted web application through OAuth. This does mean that, like the SharePoint-hosted app model, you can leverage the building blocks of SharePoint within the site collection but also have other things running in the remote web application if you want. A good example here would be that documents would likely be stored in the SharePoint site, but the UI layer would be run from the remote web application rather than as .aspx pages deployed to the virtual file system.

Platform language:

The main benefit of remotely hosting an app and hooking into SharePoint is the remote web application can based on any web technology you choose. So ASP.NET MVC, LAMP, Perl, or any other HTML5/JavaScript based platform is an option. This model is very similar to the push Windows 8 Metro apps as well. This design means you no longer use the SharePoint server-side object model and all its intricacies to “host” an application in SharePoint anymore. It appears Microsoft’s goal here is to allow new or legacy apps to be quickly integrated to SharePoint with little code changes. Our new Governance Automation product that we launched in June this year was purposely built outside of SharePoint as an ASP.NET MVC 3 app because we knew we could hook it into SharePoint via this app model very quickly.

I can see architects here who have typically committed to SharePoint Developer resources who spent a lot of time in learning the platform and leveraging all the building block features of SharePoint instead turning to core .NET Developers who use the .NET framework stuff hosted remotely. One major reason is because of the lack of quality SharePoint resources. Plus SharePoint developers in general are more expensive than developers who write on other platforms. I can see some fall out here and a transition period for these SharePoint Developer resources who’ll most likely have to drop their rates as the learning curve is simplified by being able to use a well-known development platform instead of having to learn SharePoint’s.

Object model access:

The main benefit of this approach is that you can execute managed code in your own remote processes and then call the client object model of SharePoint with the OAuth trust. From a Microsoft perspective, this means that they have offloaded or externalized this process from the SharePoint farm. Since server-side SharePoint code is only executed inside an application-pool on a SharePoint web server in the farm, these remotely-hosted apps must rely on the client-object model. In SharePoint 2013, the parity between the client-side object model and the server-side object model is much closer with the introduction of service application APIs and much more. That said, there will likely be cases where you’ll be unable to do something because it’s not available through a client API.

App Permissions:

One thing to bear in mind here, is as you add the App to your site collection as a subsite, the App can request that it be granted permissions. This is a new concept to SharePoint, as now not only can SharePoint Users & Groups and Claims be granted permissions in the security hierarchy, but so can Apps.

One of the key limitations of this permissions model is that it can only ask up to full control of the site collection the App is added to. It isn’t that granular in permission choices either. You have Full control, manage, contribute or view (TechNet). For a lot of solutions, developers will need to have permissions to more than just one site collection and therefore this App would need to be added and granted permission to each site collection. In this instance, you’ll most likely look at a Full-Trust Solution to do this on scale in a Full Control SharePoint environment.

Provider-hosted and auto-hosted:

There are two key types of remote-hosted apps (TechNet):

  • Auto-hosted – this approach leverages Windows Azure SQL and Web Roles. The Azure projects built in Visual Studio will be automatically provisioned to the Office 365 tenancy’s linked Windows Azure tenancy. This is great where as an app vendor you don’t want to host the web application in a multi-tenant way and let the customer host it and pay the bills. The downside of this approach is that you don’t control the updates to the web application.
  • Provider-hosted – this approach means that you have to host the web application on your own infrastructure and it has to handle a multi-tenant approach. The advantage of this is that you control when you update the app. The disadvantage is that as your app grows tenants, you have to grow your tenancy which will cost money.

High-trust apps:

For Full-Control SharePoint 2013 environments, OAuth isn’t supported because there is no connection to the Azure Access Control Service (ACS). There is a way of using Remote-hosted apps by using the high-trust apps model (TechNet).  High-trust apps run on stand-alone servers on your intranet and use a signing certificate to digitally sign the access tokens that the app generates.

Marketplace

The marketplace is new to SharePoint 2013 and allows users to pick Apps from the marketplace to then add to your site collection. The marketplace offers companies the opportunity to sell Apps to a broad audience of organizations that are using SharePoint 2013 Preview.

Corporate Catalog

One of the big limitations with the marketplace is that it only supports the new application models (self-hosted and remote-hosted). This means that existing sandboxed solutions and full-trust solutions are not supported in the marketplace. There is a concept of a Corporate Catalog that can be controlled in Full Control SharePoint Environments by Farm administrators.

What app model to use?

Much like the confusion in SharePoint 2010 around whether to use Full-Trust Solutions or Sandboxed Solutions in full control farm environments, the same question will be asked now of whether to use Sandboxed Solutions, SharePoint Hosted Apps or Remote Hosted Apps. The problem now is that with “Multi-Tenant SharePoint environments”, this question is now in play also. Hopefully this matrix helps clarify your options.

Wrap Up

Where do you start? Check out the training videos put up by Microsoft on MSDN. Please also be sure to check posts on this topic by my good drinking buddies’ Andrew Connell and Chris Johnson. Please also keep an eye on my delicious social bookmark feed for #SharePoint2013 content I discover which is tagged appropriately.

Hopefully this has been useful for you and please feel free to add your comments below.

The future of social collaboration with SharePoint 2013 and beyond

 

OK, so the title got your attention didn’t it. So you’ve seen Steve Ballmer’s announcement on Office 2013 that includes SharePoint 2013. You’ve seen the recent announcement of the acquisition of Yammer by Microsoft and wonder “what the hell is going on”. A lot people out there would have also wondered why Microsoft didn’t acquire Newsgator, Telligent or Neudesic Pulse or the like.

Someone I highly respect, and who brings some of the deepest years of experience in SharePoint, Rob Bogue wrote a great article on social that I recommend you give a read. Another guy to look out for is Mark Fidelman who writes for Forbes and is also very influential in the Microsoft social space.

Freemium models

From what I’ve heard around the traps, the main reason Microsoft bought them was there interest in the freemium model. Essentially you can go create a Yammer community right away, and recently the SharePoint community have created one…it is the gateway drug to a premium paid service that gives you the necessary management functions that would be required by organizations with more compliance and control required.

If you think about Microsoft’s freemium models in the social space:

  • Hotmail
    The very popular consumer e-mail platform.
  • Skydrive
    Microsoft’s answer to DropBox and SugarSync
  • Skype
    The huge popular voice over IP solution
  • SharePoint
    Oh…that’s right…Windows SharePoint Services (WSS) or SharePoint Foundation as it was renamed in SharePoint 2010. Admittedly this isn’t a cloud based initiative and doesn’t exist in Office 365…yet.
  • Yammer
    The massively adopted social collaboration platform.

Each of these platforms has its premium alternative:

  • Hotmail -> Office 365 Exchange
    There is no great story to migrate users from Hotmail, but it’s the natural premium model. Education customers are being moved here from the live.edu alternative they did have.
  • SkyDrive -> SkyDrive Pro
    So SkyDrive can take your organization to some level of document collaboration, but SharePoint Online My Sites is now being labeled SkyDrive Pro.
  • Skype -> Lync
    One of the most underrated products in the Microsoft stable to be honest, the enhancements from LiveMeeting are amazing. Again, no real migration story here, but definitely natural step to premium model. I would suspect that in the future Microsoft may even merge these two platforms better as Skype is missing the Online Meeting capabilities that Lync has.
  • SharePoint Foundation -> SharePoint Standard/Enterprise
    Yes that’s right, you can upgrade your Foundation edition of SharePoint to Standard or Enterprise quite happily in a Full-Control Environment.
  • Yammer -> Yammer/SharePoint
    The story with what Microsoft’s option for a premium social collaboration platform is obviously blurry with both SharePoint Foundation and Yammer having their premium options. I believe to start with Microsoft will play the existing integration that is available in Yammer to SharePoint which Steve demonstrated during the keynote.

With all of these freemium -> premium models, I would expect to see much more of an effort by Microsoft to spell this out and make the transition more seamless for organizations. Obviously this is much more of a small business targeted model and you could see that in the consumer pitch keynote. But to be honest, I’m even seeing this in large Enterprises, where small departments are taking their own initiatives and then taking the premium model higher up the food chain.

SharePoint’s history in social

SharePoint has been around for a long time in the social collaboration space with its introduction in SharePoint Portal Server back in the day and its evolution in 2003 through to what it is today in beta in 2013.

SharePoint 2003

SharePoint 2003 really only touched the surface with social collaboration with the concept of Sites and Libraries to store documents. At its core it was a replacement for the file share, and still is today, but with more advanced abilities to improve social collaboration such as its browser based interface, security model, versioning, metadata, workflow, alerting and views.

SharePoint 2007

With the release of 2007, the focus was very much on improving the architecture to ASP.NET off of ASP and making it more extendible as a platform. The focus on social looked dated at release with essentially the introduction to the user profile service and profile pages for users. The profile page allowed you to follow your own colleagues and use People Search to discover people in your organization.

It also introduced the option to create your own “My Site”, which essentially gave each user its own site collection to store users’ own content. This was a great first step into enterprise social collaboration. But to be honest, in the consumer space MySpace/Facebook/LinkedIn was already taking hold and the blog sites and discussion forums were just so embarrassingly limiting.

Mark Arend has a great article on the overview here.

SharePoint 2010

SharePoint 2010 really pushed My Sites a little further in its second major appearance. These improvements were really around the introduction to social activity, tagging and note boards. These were really v1.0 of these features, and with anything Microsoft it typically takes 3 versions to get it polished. Unfortunately Discussion Forums and Blogs didn’t get any love in this release and stayed stagnant.

SharePoint 2013

So with the announcement of SharePoint 2013 Preview, you can see there has been a huge focus on social collaboration.

Drag and drop

I’m sure they’ll make a HUGE thing about this, as they should as most other platforms have had it for a while. But you can now drag and drop documents from your desktop directly into your browser into a SharePoint List…hooorah!

My Site site collection v3

The My Sites are now in their 3rd major version and you can expect some nice additional features in here to make it more user friendly when you first jump in. Notice how there are some major omissions on this page…no more horrible tabs for org chart and documents here.

My Tasks

With the improvements in your My Site to see “My Tasks” that essentially are collected using the Search technology, this does mean that it’s not real time discoverability of new tasks in site collections in SharePoint, but still nice way of aggregating. For a more real-time solution, check out AvePoint’s MyView app in the marketplace.

Better integration across Office products

The lines between Exchange, SharePoint and Lync in Office 365 are blurring even more with the top bar knitting them together nicely.

Following people, sites, documents, tags

The ability now to follow sites, people, documents and tags makes it much easier to be alerted to content as it appears in SharePoint. I can see this being a huge accelerator for social within the platform.

Communities

Communities is a new subsite template that can be used and is based on the wiki pages infrastructure. It leverages discussion groups, likes, ratings. This is a great improvement over pure discussion forums and much like what you see in Newsgator’s community product, although Newgator’s product is still far richer than this.

Categories

Categories can be configured per community to allow people to see discussions being had with much more granularity.

Reputation

Reputation has been introduced to allow you to rate users within the community from 1 to 5 stars. This is different from 2010 where now the rating is actually stored in the subsite data rather than the social databases in the service application.

Community Badges

Badges are new to 2013. Essentially rules can be set when particular levels are reached in the community as seen from the screen shot below. This is very short of the mark compared to badges in foursquare etc. where you can have many for various business rules being met.

Gifted Badges

Gifted badges are the ability for community administrators to define their own badges and apply one to a user. It is a little unintuitive to be honest, you have to click on “assign badges to members” which takes you to a custom SharePoint List where you can then select users in the subsite and then click in the ribbon on the “moderation” group and click “give badge”.

I can’t see many users working that out…and obviously from this screenshot looks like someone can only have one badge.

Some other things to note for future….

Blogs

Considering so much effort has been put into Communities and other new social features, it’s a real shame that the Blog site template really didn’t get any more love AGAIN in this release.

Public facing communities

SharePoint 2013 has really made no effort either to be non-authenticated friendly, this really hurt me on my development journey with NothingButSharePoint.com and it’ll continue to.

Apps and Subsites

One thing that I’m still convinced they’ve made a mistake on is the concept of “Apps” which for 2003/07/10 users you can think of as Lists or Libraries. The problem here is there are then subsites which in my mind are apps too…for instance, users will think as adding a “blog” as an “app”, but essentially as we all know…blogs are an isolated subsite template with a few custom lists and libraries. If Microsoft want to push the “Apps” feel they need to somehow merge list “apps” and subsite “apps”.

Social tagging

I’m a HUGE user of delicious for tagging content but more importantly being able to drill down navigating through the tags to get to it later. Delicious is by no means new, and it shocks me to see how basic the tagging in SharePoint 2013 still is. I could understand v1.0 of managed metadata being a little basic, but v2.0 really hasn’t improved that much in my opinion. In the beta 2, you can’t immediately see trending tags if I start tagging and it’s all an overnight process…something that you wouldn’t expect with us all being so used to consumer platforms being immediate.

Wrap Up

Hopefully you have found this article a useful summary of where SharePoint has evolved from and where Microsoft could be going with it in the future. Please feel free to discuss your thoughts on this below in the comments.

What’s new for public-facing websites in SharePoint 2013


You may also be interested in: SPTechCon 2012 Boston


 

Editor’s note: Contributor Waldek Mastykarz is the SharePoint Server MVP at Mavention. Follow him @waldekm

SharePoint 2013 has just been released providing many improvements for building public-facing websites. So what is new in SharePoint 2013 for public-facing websites?

SPSiteUrl’s

In SharePoint 2010 we could use Host Named Site Collections to work around the scalability limitations of Web Applications. The downside of using Host Named Site Collections in previous versions of SharePoint was however, that we couldn’t leverage the Zones configuration in the Site Collection which was bound to the Default Zone.

SharePoint 2013 introduces the SPSiteUrl’s capability which allows us to associate an unlimited number of host names with a Host Named Site Collection and have those host names mapped to Zones configured at the Web Application-level.

Device Channels

Although SharePoint 2010 had support for mobile devices, the mobile experience was rather limiting and hard to customize.

SharePoint 2013 introduces the Device Channels capability that allows us to define channels targeted at specific devices. Each channel can be associated with a different Master Page which makes it really easy to implement an optimized user experience for mobile users.

Image Renditions

When browsing to a website using a mobile device, visitors would, by default, download the same images as desktop users. Given that mobile devices have limited bandwidth and speed this experience is far from perfect.

Using the new Image Renditions capability we can now specify Image Renditions – formats for every image. Using Image Renditions we can not only resize images to a fixed size but can also crop them making sure that the image keeps its value. Images served as renditions are modified server-side and cached which ensures that visitors get the best experience and at the same time your server won’t get overloaded modifying the images.

Search Engine Optimization

Implementing support for SEO in SharePoint 2010 was a partner opportunity. If you wanted to have an XML sitemap generated for the contents of your website or have support for meta tags, you had to either build it yourself or use a third party solution.

SharePoint 2013 provides native support for the most common SEO-features. In SharePoint 2013 we can now, out-of-the-box, specify a separate page title for the <title> tag, meta description, meta keywords, we can define if the page should be indexed (meta robots) and we can have SharePoint generate an XML sitemap for us.

Translation Services

Although SharePoint 2010 supported building multilingual websites using Variations, if you wanted to translate the content of your pages to other languages, you had to do it manually.

SharePoint 2013 introduces the Translation Services that support you in translating content to other languages. In SharePoint 2013 you can either have the content translated automatically using Microsoft Translation Services in the cloud or you can export the content to an XLIFF package, send it over to your translation agency and, once translated, import it back to SharePoint.

Managed Navigation

In SharePoint 2010 the navigation was related to the physical location of the page. Although you could change this default behavior by building a custom solution it was challenging to have it properly integrated with the content management capabilities of the SharePoint platform.

SharePoint 2013 introduces the concept of Managed Navigation where the navigation of your site is determined by taxonomy defined within the Managed Metadata Service Application. By tagging the pages using navigation terms you can have your pages be displayed wherever you want them, despite their physical location within the site. And should you rearrange the authoring structure, the site structure and links will remain untouched which offers content authors great flexibility.

Pretty URL’s

URL’s of Publishing Pages in SharePoint 2010 consisted of the path, the /Pages part (or its translation), the name of the page followed by the .aspx extension. Although it hasn’t been proven that such URL’s have a negative impact on the ranking of pages in search engines, many customers complained about them.

If you choose to use Managed Navigation in SharePoint 2013 you get the ability to use pretty URL’s: URL’s that don’t have the /Pages part or the .aspx extension in them. And because you’re using Managed Navigation, which is detached from the physical structure of the site, you can define the URL of your page as you want.

Content By Search

The majority of content of a public-facing website built with SharePoint 2010 was represented by Publishing Pages. If you had a list of items, such as a product catalog, and wanted to display those on your public website and have them properly indexed by search engines, you were quickly getting towards custom development.

Although the SharePoint 2010-like publishing model is still present in SharePoint 2013, now we have a new way for publishing content based on search. By crawling lists or Pages Libraries we can have the context indexed and using the new Content By Search Web Part we can have that content displayed using templates which significantly simplifies presenting structured content. The great thing is, that since the content is served from the search index, it doesn’t even have to be in your Farm!

Summary

SharePoint 2013 introduces many new capabilities and improvements for building public-facing websites. The overview presented in this article is not exhaustive and there are many more gems that SharePoint 2013 offers to help us build rich public-facing websites. In the upcoming articles I will discuss some of the new capabilities in depth to give you a better understanding of what the new capabilities are and how can you leverage them in your solutions.

Please note that everything mentioned in this article refers to the Beta version of SharePoint 2013 and is subject to change when SharePoint reaches the RTM.