View
738
Download
1
Category
Preview:
Citation preview
Developing SharePoint 2013 Apps with Visual Studio 2012
Bram de Jager
SharePoint Architect | Microsoft Certified Solution Master: SharePoint
Evolution
Apps for SharePoint
Visual Studio Tools
REST & CSOM APIs
Agenda
Development Evolution
Portals & content App discovery & management
2003 2007 2010 2013
LOB applications
Custom server side code
WSP deployment
Investment in
Silverlight CSOM limited Sandbox Web Template
Web Parts Site
Definitions
Apps Client side
experience CSOM REST/oData
Customization Options
Sandbox
Hosted in isolated
process
Limited server side
SharePoint API
access
No external service
calls
Farm SharePoint Apps
Full trust solutions
Customizations to
file system of
servers
Hosted in same
process as
SharePoint
Server side
SharePoint API
access
Classic model from
2007
New Apps model
Deployed from
corporate catalog or
Office Store
Manage permission
and licenses
specifically
Simple install and
upgrade process
Preferred option
Deprecated in
SharePoint
2013
““
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.
App Development Scenarios
Deployment Options
On-Premise Farm
Installation
SharePoint Online
(Office 365)
Hosted Installation
Customization Options
Farm-Trust Solutions
Sandboxed Solutions
SharePoint-Hosted
app
Provider-Hosted app
Autohosted app
Development Tools
Web Browser
SharePoint Designer
Visual Studio
Eclipse, etc
2 APPS FOR SHAREPOINT
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
Hosting Options
SharePoint App Web
SharePoint Host Web
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
Provider-hosted app
Provide your own hosting environment
- Use server code
- Receive SP events
- Use OAuth to access
SP
Cloud-hosted apps
Your Hosted Site(IIS)
Autohosted app
Windows Azure + SQL Azure provisioned
automatically as apps are installed
Azure SharePoint Host Web
SharePoint Host Web
3 VISUAL STUDIO TOOLS
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
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
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
Anatomy of an App Package
.ap
p P
acka
ge
(O
PC
)
WS
P
Azure
App Web (from WSP)
HostWeb
““
DEMOBuilding your first app
Demo Silly Facts
• SharePoint-Hosted app
• Look around
• AppManifest.xml
• SharePoint Artifacts
• Silly Fact content type and Facts list
• App Part (Client Web Part)
• Custom Action (Host web)
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
JavaScript
Library
Silverlight
Library
.Net CLR
Library
Custom Client Code
Client
Server
_api is new alias for _vti_bin/client.svc
SharePoint 2013 Remote API
REST
OData
JSON
CSOM
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
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
Mapping Objects to Resources
• Example REST URLs targeting SharePoint
• _api/web/lists
• _api/web/lists/getByTitle('Announcements')
• _api/web/getAvailableWebTemplates(lcid=1033)
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
““
DEMOUsing CSOM and REST
Demo CSOM and REST
• Provider-Hosted app
• Add web project
• Chrome
• Use CSOM and REST to create silly facts
• User Profile (REST)
• Search (REST)
• Taxonomy (CSOM)
Summary
• The way forward for customizations on SharePoint
• Build for the cloud (Office 365)
• Heavily invested in CSOM and REST, allowing interaction with SharePoint
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
““
Questions & AnswersThank You!
Recommended