5. Development Evolution
Investment in
Portals & content
2003
Web Parts
Site
Definitions
App discovery & management
2007
LOB
applications
Custom
server side
code
WSP
deployment
2010
Silverlight
CSOM limited
Sandbox
Web Template
2013
Apps
Client side
experience
CSOM
REST/oData
6. Customization Options
Farm
Full trust solutions
Customizations to
file system of
servers
Hosted in same
process as
SharePoint
Server side
SharePoint API
access
Classic model from
2007
Sandbox
Hosted in isolated
process
Limited server side
SharePoint API
access
No external service
calls
SharePoint Apps
Deprecated in
SharePoint
2013
New Apps model
Deployed from
corporate catalog or
Office Store
Manage permission
and licenses
specifically
Simple install and
upgrade process
Preferred option
7. “
Note that code-based sandboxed
solutions are still supported in
SharePoint Online 2013 but, no
further investments in that
infrastructure are planned. We
recommend you consider the
Cloud App Model (CAM) as an
alternative.
“
8. App Development Scenarios
Deployment Options
Customization Options
On-Premise Farm
Installation
Farm-Trust Solutions
Web Browser
SharePoint Online
(Office 365)
Sandboxed Solutions
SharePoint Designer
Hosted Installation
SharePoint-Hosted
app
Visual Studio
Provider-Hosted app
Eclipse, etc
Autohosted app
Development Tools
10. App Shapes
Full page
Implement complete app experiences to satisfy business
scenarios
App Parts
Create app parts that can interact with the SharePoint
experience
UI command extensions
Add new commands to the ribbon and item menus
11. Hosting Options
Provider-hosted app
Provide your own hosting environment
SharePoint
Host Web
Your Hosted Site
(IIS)
Cloud-hosted apps
- Use server code
- Receive SP events
- Use OAuth to access
SP
Autohosted app
Windows Azure + SQL Azure provisioned
automatically as apps are installed
SharePoint
Host Web
Azure
SharePoint-Hosted app
Provisions an isolated sub web on a host web
- Use SP artifacts & out-of-box web parts
- Use HTML & JavaScript for UI & client-side logic
- Use Workflows for middle tier logic
SharePoint
Host Web
SharePoint
App Web
13. Visual Studio SharePoint Tools
• Development Environments
• Develop against a local SharePoint server
• Remote development against SharePoint Online (Office 365)
• Tools
• Office Developer Tools
• Download http://dev.office.com
14. Debug your app
• No app registration required
• SharePoint Developer Site
• ClientId & ClientSecret are generated for you
• IISExpress is used to host Web project
• ~remoteAppUrl token update so it points to IISExpress Url
(http://localhost:1234)
• LocalDB is used for SQL database
• Connection string updated in web.config from SQL project
• Local workflow service is started & configured
15. Publish your app
• SharePoint-hosted & Autohosted
• No app registration required
• Everything included in the .app package
• Provider-hosted
• Developer must acquire ClientId & ClientSecret via Seller Dashboard (Office
Store only)
• SharePoint artifacts in .app package
• Web assets in Web Deploy package - developer must deploy
• Developer must publish & deploy SQL assets if not in Web Deploy package
16. Anatomy of an App Package
App Web
WS
P
.app Package
(OPC)
Host
Web
(from WSP)
Azure
20. Changes from 2010 to 2013
• The client.svc service extended with REST capabilities
• client.svc now supports direct access from REST clients
• client.svc accepts HTTP GET, PUT, POST requests
• Implemented in accordance with OData protocol
• CSOM Extended new APIs
• Focus investment on SharePoint Server APIs
• Search, Social, Taxonomy, Workflow, Analytics, Sharing,
Publishing, eDiscovery, IRM, BCS, … and more
21. SharePoint 2013 Remote API
_api is new alias for _vti_bin/client.svc
Server
Client
REST
OData
JSON
CSOM
JavaScript
Library
Silverlight
Library
Custom Client Code
.Net CLR
Library
22. Why is REST Important?
• Significant Industry Momentum
• Simple and Easy to Use
• Much easier to use than SOAP-based Web service
• Higher productivity when using JavaScript and jQuery
• Results can be returned in JSON and ATOM format
• Test in a browser
• Platform agnostic
• Each query is submitted with a unique URL
• Results can be cached by proxy servers
23. REST URLs in SharePoint 2013
• CSOM URLS can go through _api folder
• Simplifies URLs that need to be built
• Removes client.svc file name from URL
• You can replace this URL
• http://contoso.com/_vti_bin/client.svc/web
• With this URL
• http://contoso.com/_api/web
24. Mapping Objects to Resources
• Example REST URLs targeting SharePoint
• _api/web/lists
• _api/web/lists/getByTitle('Announcements')
• _api/web/getAvailableWebTemplates(lcid=1033)
25. App Authentication
• Use OAuth for secure communications
• SharePoint & web application (IIS) trust third party (ACS)
• Trust developed using ClientId & ClientSecret
• SharePoint & ACS know the ClientId
• Web application & ACS know the ClientSecret
30. Summary
• The way forward for customizations on SharePoint
• Build for the cloud (Office 365)
• Heavily invested in CSOM and REST, allowing interaction with
SharePoint
31. Try it yourself
• Office Store
• Play around with current Apps for SharePoint
• Office 365 playground
• Sign up on http://dev.office.com for Office 365 playground
• SharePoint Client Browser
• http://spcb.codeplex.com
Sandbox solutionsSandbox solutions are upgraded with the content databases and activated once upgrade is complete. If your solution includes customizations, however, you’ll need to evaluate them individually to ensure they work as expected in the new environment.Note that code-based sandboxed solutions are still supported in SharePoint Online 2013 but, no further investments in that infrastructure are planned. We recommend you consider the Cloud App Model as an alternative. See What’s new for developers in SharePoint 2013 for information. http://office.microsoft.com/en-001/office365-sharepoint-online-enterprise-help/plan-to-upgrade-your-sharepoint-online-environment-to-the-2013-experience-HA104034491.aspx
Office Developer Tools RTM on Tue 4 March: http://blogs.msdn.com/b/somasegar/archive/2013/03/04/now-available-office-developer-tools-for-visual-studio-2012.aspx
Use when app is ready for…Testing by anther person or teamUpload to Store or App CatalogUse the packages from app.publish folder
Open Packaging Conventions (OPC): http://msdn.microsoft.com/en-us/magazine/cc163372.aspxStandard For Packaging Data, also used for Office Open XML.
Legacy of Frontpage…, finally gone
ACS = Access Control Service (Windows Azure Access Control Service)