2. 2 | SharePoint Saturday Milan – 18 May 2013
2 | SharePoint Saturday Milan – 18 May 2013
Grazie ai nostri Sponsor!
Gold Silver
3. 3 | SharePoint Saturday Milan – 18 May 2013
Marco Rizzi – Solution Architect – Avanade Italy
marcorizzi@marcorizzi.com
4. 4 | SharePoint Saturday Milan – 18 May 2013
4 | SharePoint Saturday Milan – 18 May 2013
Old school
5. 5 | SharePoint Saturday Milan – 18 May 2013
5 | SharePoint Saturday Milan – 18 May 2013
WSP vs App
6. 6 | SharePoint Saturday Milan – 18 May 2013
Content of the section comes from msdn and technet
7. 7 | SharePoint Saturday Milan – 18 May 2013
7 | SharePoint Saturday Milan – 18 May 2013
Doing thinks the app way
7
8. 8 | SharePoint Saturday Milan – 18 May 2013
8 | SharePoint Saturday Milan – 18 May 2013
App development
8
9. 9 | SharePoint Saturday Milan – 18 May 2013
9 | SharePoint Saturday Milan – 18 May 2013
App development
9
10. 10 | SharePoint Saturday Milan – 18 May 2013
10 | SharePoint Saturday Milan – 18 May 2013
App object model
ASP
.NET (asmx) web services direct Remote Procedure
Calls (RPC) calls to the owssvr.dll
10
11. 11 | SharePoint Saturday Milan – 18 May 2013
11 | SharePoint Saturday Milan – 18 May 2013
Factors to determine API to use
11
If you want to do this ... ... use these APIs
Create an ASP.NET web app that performs CRUD operations across a firewall on SharePoint
data or external data that is surfaced in SharePoint by a BCS external content type
JavaScript client object model
Create an ASP.NET web app that performs CRUD operations on SharePoint data or external
data that is surfaced in SharePoint by a BCS external content type, but does not have to call
SharePoint across a firewall
.NET Framework client object
model, Silverlight client object
model, or REST/OData endpoints
Create a LAMP web app that performs CRUD operations on SharePoint data or external data
that is surfaced in SharePoint by a BCS external content type
REST/OData endpoints
Create a Windows Phone app that performs CRUD operations on SharePoint data Mobile client object model
Create a Windows Phone app that uses the Microsoft Push Notification Service to alert the
mobile device of events in SharePoint
Mobile client object model and the
server object model
Create an iOS or Android app that performs CRUD operations on SharePoint data REST/OData endpoints
Create a .NET Framework application that performs CRUD operations on SharePoint data .NET Framework client object model
Create a Silverlight application that performs CRUD operations on SharePoint data Silverlight client object model
Create an HTML/JavaScript application that performs CRUD operations on SharePoint data JavaScript client object model
Create an app for Office that works with SharePoint JavaScript client object model
Create a custom Windows PowerShell command Server object model
Create a timer job Server object model
Create an extension of Central Administration Server object model
Create consistent branding across an entire SharePoint farm Server object model
Create a custom Web Part, application page, or ASP.NET user control Server object model
12. 12 | SharePoint Saturday Milan – 18 May 2013
12 | SharePoint Saturday Milan – 18 May 2013
Doing thinks the app way
12
If you want the functionality of ... ... try these approaches.
Custom Web Parts
An app for SharePoint can have remote pages that contain custom Web Parts.
Another option is to expose a page from a remote web application in an app part on
a SharePoint site page. The remote page can have essentially the same UI controls
and functionality as a Web Part. For more information, see How to: Create app parts
to deploy with apps for SharePoint.
Event receivers and Feature receivers
An app for SharePoint can contain functionally equivalent remote event receivers. For
more information, see Handling events in apps for SharePoint.
Custom field (column) types
An app can deploy a new field (column) that is based on one of the existing field
types. The Calculated and Computed field types are especially flexible. Another option
is to present your data in a remote web page with customized controls or grids.
Custom web services built on the
SharePoint Service Application
Framework
You can develop your custom web services as remote services.
Application pages
An app for SharePoint can include remote web pages that are available from every
website on which the app is installed. An app can also use any of the built-in
SharePoint Web Parts on site pages.
13. 13 | SharePoint Saturday Milan – 18 May 2013
13 | SharePoint Saturday Milan – 18 May 2013
Doing thinks the app way
The following table provides guidance on which set of APIs to use for a selected list of common SharePoint extensibility projects. The remaining sections of this topic describe the various sets of APIs.
Short for Linux, Apache, MySQL and PHP, LAMP is an open-source Web development platform
http://msdn.microsoft.com/en-us/library/sharepoint/jj164060.aspx
Timer jobs are not possible within an app – within a SharePoint-hosted app, it’s difficult to see how any “scheduled processing” could ever be implemented. This is a key difference to an Azure or externally-hosted app (or single app component), which could either use the Azure Service Bus or even a scheduled task on a non-SharePoint server which calls into SharePoint using a client API
http://www.sharepointnutsandbolts.com/2012/08/sharepoint-2013-appsarchitecture.html
Questo perché le App: - non hanno la possibilità di eseguire codice server-side su SharePoint (quindi non hanno la possibilità di utilizzare il classico server object model), - hanno come scope solo il proprio sito (l'AppWeb di cui parlavamo nei precedenti post), - non hanno alcun tipo di accesso al sito padre o ad altri siti nella gerarchia, altre site collection o altre web application (questo è vero in parte, perchè con il Client Object Model per Javascript ad oggi si riesce ad accedere al sito padre, ma credo che toglieranno questa possibilità) - non possono quindi installare sul sito padre le nostre personalizzazioni (vedi master page, page layouts, ecc..), - non possono utilizzare tutte le tipologie di personalizzazioni che siamo abituati ora ad utilizzare all'interno delle nostre soluzioni SharePoint 2010, ma ne possono utilizzare solo una parte (vedremo nel prossimo post la lista di quelle disponibili) - non hanno la possibilità per l'utente finale di interagire con il contenuto dell'AppWeb (per capirci, non c'è possibilità di entrare in "visualizza tutto il contenuto"; a liste e document library si però) o di permettere la visualizzazione di tale contenuto dal sito padre.
http://www.peppedotnet.it/Blog/SharePoint2013NewAppModelPart3.aspx
IIS site not reachable
Remote event thrown an error
Neil Hodgkinson (MSFT). Neil is a specialist in Search on O365 and stated that Microsoft are cautious to release it just yet as they cannot anticipate the workload it will generate on the SharePoint Online infrastructure. They are currently conducting stress testing and are hoping to release the feature later this year if all goes well.
Alternatives
http://blogs.msdn.com/b/richard_dizeregas_blog/archive/2013/04/01/cross-site-publishing-alternatives-in-sharepoint-online-office-365.aspx
APP
The content search web part could be re-written for delivery through the app model as an “App Part” for SharePoint Online
Because an app part is delivered through a glorified IFRAME, it would be challenging to navigate to a new page from within the app part. A link within the app would only navigate within the IFRAME (not the parent of the IFRAME). Secondly, there isn’t a great mechanism for templating a site to automatically leverage an app part on its page(s).
REST API and Script Editor Webpart
Combined with the new SharePoint REST APIs, the script editor web part can deliver mash-ups very similar to cross-site publishing and the content search web part. Unlike apps for SharePoint, the script editor isn’t constrained by IFRAME containers, app permissions, or templating limitations. In fact, a well-configured script editor web part could be exported and re-imported into the web part gallery for reuse.