SharePoint

SharePoint 2013 – Het app model

17 oktober 2012

Met de release van SharePoint 2013 gaat er het nodige veranderen op het gebied van SharePoint 2013 ontwikkeling. Wees gerust: al het oude maatwerk voor on-premises omgevingen blijft werken zoals het al deed in 2010. Waar de migraties van 2007 naar 2010 vaak nogal frustrerend konden zijn, belooft Microsoft een veel soepeler ervaring tussen 2010 en 2013.

Apps

Dat is niet zo raar; aan de farm- en user solutions is namelijk niet zo heel erg veel veranderd. Dat komt met name omdat Microsoft tijd heeft gestoken in een compleet nieuw model. Voor de lezers die hier nog niets over gehoord hebben: in SharePoint 2013 is Apps het toverwoord. Nogal een hype term inmiddels, waarbij vaak geldt dat een app gewoon een applicatie is zoals we die al kenden. Maar dit geldt niet voor SharePoint 2013. Een app is echt niet te vergelijken met solutions zoals we die kenden.

Wat is een SharePoint 2013 app dan wel? Een definitie (vanaf MSDN) is:

“It’s best described as a solution that carries a light footprint and uses standards-based technologies such as HTML5, JavaScript, and OAuth.”

Een app bestaat uit een verzameling bestanden welke client side functionaliteit toevoegen aan SharePoint. Client side is hier misschien een beetje een gevaarlijke uitdrukking, want dit betekent niet dat je bijvoorbeeld geen codebehind meer hebt. Maar SharePoint server side code is in ieder geval uitgesloten. Hierover later meer.

Waarom?

Om te begrijpen waarom Microsoft het app model introduceert is het belangrijk om te kijken naar de beperkingen die farm en user solutions met zich meebrengen. Hierbij is het ook belangrijk om in het achterhoofd te houden dat Microsoft graag zoveel mogelijk mensen naar de cloud (lees: Office 365) wil krijgen.

Dan hebben we meteen een groot probleem te pakken wanneer we kijken naar farm solutions, aangezien je die niet kunt gebruiken in de cloud. Als alternatief introduceerde Microsoft de user (sandboxed) solutions, maar iedere ontwikkelaar die daar wel eens mee heeft gewerkt weet wat de beperkingen zijn. Een beperkt gedeelte van het object model is beschikbaar, je moet rekening houden met thresholds die de resources beperken, etc. Het sandboxed model is bij ontwikkelaars daarom nooit enorm favoriet geweest, wat mij betreft terecht.

De bestaande oplossingen functioneren dus niet voldoende voor een cloud gebaseerd systeem. Daarbij is de herbruikbaarheid, distributie en licentiestructuur van solutions een lastig verhaal. Dus hebben we nu apps, welke specifiek gericht zijn op deze zaken.

CSOM

Technisch gezien is een app niet veel meer dan een webbased applicatie welke grotendeels losstaat (loosely coupled) van SharePoint. Je kunt kiezen uit HTML en CSS gecombineerd met JavaScript, of een ASP.NET webapplicatie. Om te communiceren met SharePoint gebruik je CSOM: het Client Side Object Model. Deze nieuwe API biedt veel meer functionaliteit dan de vorige client side (JavaScript) API, waardoor een hoop beperkingen komen te vervallen. Waar je in 2010 sommige zaken alleen maar met het server object model kon doen, kan nu vrijwel alles (behalve farm level zaken, in de cloud toch niet van toepassing) met het CSOM. CSOM is een artikel op zich, dus daarover later meer.

Het nieuwe Client Side Object Model (CSOM) biedt odata ondersteuning via de _api URL. Deze werkt als vervanging van client.svc.

Hosting opties

Het app model introduceert zoals gezegd een nieuwe mogelijkheid om functionaliteit toe te voegen aan SharePoint. Je hebt als ontwikkelaar de volgende opties om je app te hosten:

[listdot]

  • Provider-hosted
  • SharePoint-hosted
  • Autohosted

[/listdot]

(zie ook http://msdn.microsoft.com/en-us/library/fp179887(v=office.15))

Een Provider-hosted app host je zelf. Dit kan in Azure, maar hoeft niet. Het hoeft dus ook geen ASP.NET app te zijn, maar kan ook PHP zijn bijvoorbeeld.

Een SharePoint-hosted app draait binnen SharePoint, maar heeft daardoor wel beperkingen. Zo heb je niet de mogelijkheid om ASPX files met codebehind toe te voegen. Het is feitelijk heel eenvoudig: je app heeft geen DLL en moet het dus doen met client-side technieken als HTML en JavaScript.

Een Autohosted app combineert beiden en bestaat daarom uit 2 delen: een SharePoint app en een provider-hosted app. Op het moment van installeren zal SharePoint jouw provider-hosted app zelf deployen naar Windows Azure. Hierbij is het ook mogelijk om bijvoorbeeld een SQL Azure database toe te voegen.

Distributie

Een app is tegenwoordig eigenlijk niets zonder een marketplace, appstore of hoe je het ook wil noemen. En dus biedt Microsoft je nu de mogelijkheid om je apps op te nemen in een appstore. Dit kan een store zijn binnen je Office 365 / SharePoint abonnement (zodat de app bijvoorbeeld alleen binnen je organisatie te gebruiken is), of de wereldwijde store. Hierbij zijn zaken als licenties en betalingen  al geregeld door Microsoft, waardoor je er als app ontwikkelaar geen omkijken meer naar hebt. Een bijkomend voordeel is dat je  niet alleen apps kunt maken voor SharePoint, maar ook voor Office (Word, Excel, Outlook, Project). En dan worden er ineens een hoop integratie scenario’s mogelijk.

Dit was een korte, beknopte introductie in de wereld van apps binnen SharePoint. Neem eens een kijkje op MSDN voor meer informatie. Zoals je merkt is dit onderwerp te lang voor een enkele blogpost. Je kunt dus nog meer app gerelateerde posts van me verwachten!

You Might Also Like

1 reactie

  • avatar
    Reply SharePoint 2013 – Het app model | MichielvanOppen.nl 30 oktober 2012 at 14:31

    […] ervaring tussen 2010 en 2013. Op deze site een duidelijk en helder (Nederlandstalig) verhaal! http://www.spcnl.nl/2012/10/sharepoint-2013-het-app-model/ This entry was posted in SharePoint by michielvanoppen. Bookmark the […]

  • Plaats een reactie