Follow me on Twitter @stephaneeyskens

Rating System for SharePoint Foundation 2013

This solution is migrated from 2010,, the documentation is the same, you can read it here https://sptoolbasket2010.codeplex.com/downloads/get/155078

Content Type Explorer App

Sometimes we need to delete
content types but we don't always know where they are used.
Because you cannot delete a content type that is still in use,
this App helps finding which lists and/or child content types
make use of a given content type.

Here are some screenshots:

ctxexp1.png
ctxexp2.png

The App is localized in English & French

Demo SharePoint-Hosted App using the REST API

This App can be deployed either on Office 365, either on a on-premise system. To deploy it, you can either download the source code, open Visual Studio, choose the target site and deploy it (choose a developer site for Office 365), either add the App to your App Catalog and install the App on your site.

Caution : since the App is a demo App and since it is using many capabilities, the required authorization is Full Control on Tenant. It means that you need to have that level of permissions to be able to install it. That said, deploy it only onto a development environment where you have full control!

The App shows how to use the REST API to perform the most common operations such as CRUD operations with data, getting web related information such as features, event receivers, lists, users & groups, getting user profiles related information, performing social activities such as microblogging, getting newsfeed, like, unlike content, lock/unlock microblogs, using mentions, creating hash tags etc...

For any operation, the App shows the required jQuery AJAX call that was issued to perform the operation so you can easily see what is the target URL and what kind of data must be transmitted. You also see all the header information including Digest, x-http-method etc..

Here is are a few screenshots illustrating the App

rest1.png
rest2.png

This App is also available on the SharePoint Store http://office.microsoft.com/en-us/store/rest-api-demo-WA104068939.aspx?queryid=79ccccc7%2D6d95%2D4bf7%2D9d2f%2D2896a282911d&css=rest&CTT=1

AppFabric wrapper for SharePoint 2013

Disclaimer : this software is provided "as is" with no warranty of any kind. Use it at your own risks!

Now that AppFabric is a pre-requisite for setting up SharePoint 2013, this wrapper will help you leveraging the power of AppFabric into SharePoint.

That way, you will benefit from a real distributed cache for your own developments. At the time of writing this piece of code, there is no public API available in SharePoint 2013 that enables you to consume AppFabric for your own use.

This wrapper is intended to fill that gap by providing the following services:
  • It comes with a configuration page that lets you specify which servers are in use
  • It can dynamically detects which SharePoint servers are running the distributed cache service and use them when creating the AppFabric factory
  • It makes use of the default SharePoint cache area that is created automatically upon SharePoint installation but lets you specify another cache if you want.
  • It allows you to easily enable local cache
  • it allows you to easily enable local cache notifications providing the cluster is correctly configured

The wrapper has two configuration modes :
  • A dynamic one, you can use the SPCacheConfig class to specify whether you want to enable local cache, to use notifications etc...
  • A static approach that has priority over the dynamic approach. If you go for the static approach, you'll have to specify some settings in the Central Admin.

wrapper1.png
wrapper2.png

You can define which servers are part of the AppFabric cluster, which port number to use and whether you want to enable local cache and use notifications.

In order to use notifications, you must first configure AppFabric to support it. If you enable it in the configuration and if it's not enabled at AppFabric level, the wrapper will throw an exception.

Each configuration approach has its advantages & disadvantages

Dynamic

Pros:
  • You have nothing to do at configuration level, you can just start using the wrapper and everything should work providing the Distributed Cache service is started on at least one SharePoint Server.

Cons:
  • Detecting the SharePoint topology implies an overhead in terms of performance whenever you create a new factory.
  • Can only be used with SharePoint 2013

Static

Pros:
  • Performance is better since the wrapper doesn't analyze the SharePoint topology whenever it creates a new AppFabric factory. The configuration is afterwards stored in a SPPersistedObject for further use. Since the object is small, performance overhread is very limited compared to checking the topology.


Cons:
  • Requires more configuration effort.

Note that for any change made in the configuration page to take effect, you'll have to make either a IISRESET, either an application pool recycle if you have already up & running factories.

To use the wrapper, you must first add the following references to your project:
  • SilverIT.SharePoint.AppFabric
  • Microsoft.ApplicationServer.Caching.Client
  • Microsoft.ApplicationServer.Caching.Core

Once done, you can start using it in your code. You can see more info on my blog explaining how to use this wrapper : http://www.silver-it.com/node/111

Note

This project is currently in alpha release. Feel free to bring your comments. Also note that I'm not sure yet whether this wrapper would be supported by Microsoft since it is using the default SharePoint Cache for custom caching.

Last edited Jan 25, 2014 at 4:33 PM by StephaneEyskens, version 20

Comments

StephaneEyskens May 22, 2013 at 12:26 PM 
Hi,

For that you might also have a look at the OOTB possibility to build a navigation based on the Managed Metadata Service that can also be used accross farms.

Best Regards

godind Jan 30, 2013 at 2:23 PM 
Great projet! I'm thinking of using AppFabric to create a global shared "multi-farm/site collection" navigation. AppFabric looks like the way to go for performance!