SlideShare a Scribd company logo
1 of 50
Chris O’Connor
Senior Consultant (OBS)
 Chris O’Connor
 Senior Consultant – OBS (Melbourne)
 Blog : www.sharepointroot.com
 Twitter : @GrumpyWookie
 Father of three boys
 Weekend MAMIL
 Let’s go Mountain Biking !

 Where have we come from ?
 The new AppModel (SP2013) + Why ?
 New thinking for developers
 CSOM
 REST
 JSON
 ODATA
 OAUTH
 Client/Server
 Rich client + networked server
 N-tier
 Evolution of client/server (layers)
 ASP Classic -> ASP.NET
 MVC / MVVM
 SharePoint
 Features, Packages, Solutions
 ASP.NET + SharePoint API
 Office 365
 SharePoint 2013
 SharePoint 2013 + Office 365
 Architecture Pattern : AppModel
 SharePoint = Server
 App = Client
 It’s Client/Server !!
Everything is an app
Lists
Libraries
Calendars
Tasks
Issues
Announcements
EVERYTHING !
SharePoint 2003, 2007, 2010
Farm Solutions – WSP’s
Full Trust
2010 introduced Sandboxed Solutions
Isolation, but problematic/limited
To solve some problems :
 Code running on the SharePoint box
 Developer laziness
 RunWithElevatedPriveleges
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(web.Site.ID))
{
// do something
// call a method
});
}
SPSecurity.RunWithScissors(delegate()
{
using (SPSite site = new SPSite(web.Site.ID))
{
// do something
// call a method
});
}
Goal : Isolation
Benefits
 Multi-tenancy -> Office 365
 Ease of upgrade
 Easier to develop / update
Need to think “outside the box”
AppModel = Isolation
 Brings new challenges
Security
Code
Data
• CSOM
• REST
• JSON
• ODATA
• OAUTH
App
SharePoint 2013
- On-Premise
- Office 365
Security / Code / Data
- Authorisation + Permissions
- Structured API
- Data Contracts
ServerClient
Black Box thinking
SharePoint is “the server”
Developer will create “the client”
Apps for SharePoint
 Provider Hosted
 Auto-Hosted (Azure)
 SharePoint Hosted
 Client/Server “flavours”
 Visual Studio 2012 Project Types
App
 Visual Studio 2012
 Need to install project templates
 Microsoft Office Developer Tools for Visual Studio 2012
 Via Web Platform Installer (WebPI)
 http://tinyurl.com/platform-install
 SharePoint Designer 2013
 Napa
 Office 365 Development tools
 Add An App > SharePoint Store
 Browser based tools
 Works with ‘Developer Site’ on Office 365
 Office 365 Developer Site
 http://dev.office.com/
 Sign up today !
- Run Project
- Remove App
- Properties
- Open in Visual Studio
- Share Project
- Publish
- Quick Open
SharePoint App Model (2013)
 Isolation + multi-tenancy
 Brings new challenges
New application architectures
 Provider Hosted
 Azure Hosted
 SharePoint Hosted
New toolsets
 Visual Studio 2012
 Napa (Office 365)
 SharePoint Designer 2013
“Client Server” thinking
 Security
 Code
 Data
 Scope
 List
 WebSite
 Site Collection
 Tenancy
 AppPermissionRequest
 Read
 Write
 Manager
 Full Control
Code Security
 OAUTH – Security Protocol
 Between Apps & Services
 Without username/password
 Works in conjunction with :
 ACS – Access Control Services
 STS – Security Token Service
OAUTH
 Only for ‘cloud hosted’ apps
 Provider Hosted
 Azure Hosted
 Pass tokens via IFRAME (!??!)
 Need to do this way – avoid XSS
Provider-Hosted
 Any language / anything / anywhere
Azure-Hosted
 .NET languages – C# / VB.NET
SharePoint-Hosted
 JavaScript
 jQuery
 HTML
 CSOM
 REST
 No Server Object Model (SharePoint.dll)
 No code in the GAC
 Auto-Hosted -> Office 365
 Local application (IIS on laptop)
 Uses CSOM code
 TokenHelper
 ContextToken
 AccessToken
.
 URL based API
 OLD :
 /_layouts/listdata.svc/web
 NEW:
 /_api/web
 http://server/site/_api/web/lists
 http://server/site/_api/web/lists/getbytitle(‘name’)
 http://server/site/_api/web/lists('guid')/items?$select=Title,
Products
 http://server/site/_api/web/lists('guid')/items$filter=MyColu
mn eq 'Music’
 OData
 Open Data Specification
 CRUD operations via HTTP verbs
 GET (default) – retrieve data
 PUT – create new item
 POST – update item
 DELETE – remove item
 OData is built upon message formats
 AtomPub
 XML
 JSON
 JavaScript Object Notation
Open Standards
JavaScript Object Notation
{Key,Value} pairs
 Allows for objects, arrays + nested multiples
 SharePoint-Hosted -> Office 365
 JavaScript + jQuery
 REST – retrieve list of documents
 Data formatted & returned as JSON
 Display as HTML
 ContextToken
 Security
.
 Where have we come from ?
 The new AppModel (SP2013) + Why ?
 New thinking for developers
 CSOM
 REST
 JSON
 ODATA
 OAUTH
<< Security
<< Code
<< Data
Questions & Answers ??
 More Information ??
 Contact Me :
 Blog : www.sharepointroot.com
 Twitter : @GrumpyWookie

Thank you to our sponsors

More Related Content

What's hot

Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsChris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsServerlessConf
 
Spca2014 chris o brien modern share-point development - techniques for off-...
Spca2014 chris o brien   modern share-point development - techniques for off-...Spca2014 chris o brien   modern share-point development - techniques for off-...
Spca2014 chris o brien modern share-point development - techniques for off-...NCCOMMS
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 
Serverless with Azure Functions
Serverless with Azure FunctionsServerless with Azure Functions
Serverless with Azure FunctionsAndreas Willich
 
Connect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic AppConnect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic AppFrançois Boucher
 
Tips and Tricks for Building Visual Studio Workflows
Tips and Tricks for Building Visual Studio WorkflowsTips and Tricks for Building Visual Studio Workflows
Tips and Tricks for Building Visual Studio WorkflowsMalin De Silva
 
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...NCCOMMS
 
COB ESPC18 - Rich PowerApps with offline support
COB ESPC18 - Rich PowerApps with offline supportCOB ESPC18 - Rich PowerApps with offline support
COB ESPC18 - Rich PowerApps with offline supportChris O'Brien
 
Azure functions
Azure functionsAzure functions
Azure functionsvivek p s
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien
 
SPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event HandlersSPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event HandlersNCCOMMS
 
Custom Applications - What, When, and Why
Custom Applications - What, When, and WhyCustom Applications - What, When, and Why
Custom Applications - What, When, and WhyGreg Hurlman
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Ben Robb
 
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni PohlSPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohlatwork
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris O'Brien
 
SharePoint 2010 - InfoPath, Workflow
SharePoint 2010 - InfoPath, WorkflowSharePoint 2010 - InfoPath, Workflow
SharePoint 2010 - InfoPath, WorkflowJonathon Schultz
 
10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James Clancey10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James ClanceyXamarin
 
Chris O'Brien - Building AI into Power Platform solutions
Chris O'Brien - Building AI into Power Platform solutionsChris O'Brien - Building AI into Power Platform solutions
Chris O'Brien - Building AI into Power Platform solutionsChris O'Brien
 

What's hot (20)

Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsChris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
 
Spca2014 chris o brien modern share-point development - techniques for off-...
Spca2014 chris o brien   modern share-point development - techniques for off-...Spca2014 chris o brien   modern share-point development - techniques for off-...
Spca2014 chris o brien modern share-point development - techniques for off-...
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
Serverless with Azure Functions
Serverless with Azure FunctionsServerless with Azure Functions
Serverless with Azure Functions
 
Connect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic AppConnect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic App
 
Tips and Tricks for Building Visual Studio Workflows
Tips and Tricks for Building Visual Studio WorkflowsTips and Tricks for Building Visual Studio Workflows
Tips and Tricks for Building Visual Studio Workflows
 
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
 
COB ESPC18 - Rich PowerApps with offline support
COB ESPC18 - Rich PowerApps with offline supportCOB ESPC18 - Rich PowerApps with offline support
COB ESPC18 - Rich PowerApps with offline support
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
 
SPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event HandlersSPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event Handlers
 
Custom Applications - What, When, and Why
Custom Applications - What, When, and WhyCustom Applications - What, When, and Why
Custom Applications - What, When, and Why
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010
 
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni PohlSPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
 
SharePoint 2010 - InfoPath, Workflow
SharePoint 2010 - InfoPath, WorkflowSharePoint 2010 - InfoPath, Workflow
SharePoint 2010 - InfoPath, Workflow
 
10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James Clancey10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James Clancey
 
Chris O'Brien - Building AI into Power Platform solutions
Chris O'Brien - Building AI into Power Platform solutionsChris O'Brien - Building AI into Power Platform solutions
Chris O'Brien - Building AI into Power Platform solutions
 
[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions
 

Viewers also liked

2011 - From Zero to productivity (Tech Ed 2011)
2011 - From Zero to productivity (Tech Ed 2011)2011 - From Zero to productivity (Tech Ed 2011)
2011 - From Zero to productivity (Tech Ed 2011)Chris O'Connor
 
2011 - jQuery + SharePoint (TechEd)
2011 - jQuery + SharePoint (TechEd)2011 - jQuery + SharePoint (TechEd)
2011 - jQuery + SharePoint (TechEd)Chris O'Connor
 
2011 - SharePoint + jQuery
2011 - SharePoint + jQuery2011 - SharePoint + jQuery
2011 - SharePoint + jQueryChris O'Connor
 
Client Server System Development
Client Server System DevelopmentClient Server System Development
Client Server System DevelopmentManjuShanmugam1593
 
Client Server Network By Usman Ihsan
Client Server Network By Usman IhsanClient Server Network By Usman Ihsan
Client Server Network By Usman IhsanSubhan_Virk_UAF
 
2015 - PowerShell, C# and JavaScript for Office 365
2015 - PowerShell, C# and JavaScript for Office 3652015 - PowerShell, C# and JavaScript for Office 365
2015 - PowerShell, C# and JavaScript for Office 365Chris O'Connor
 
Management Information System Presentation
Management Information System PresentationManagement Information System Presentation
Management Information System PresentationJon Marcy
 
Client Server Transformational System
Client Server Transformational SystemClient Server Transformational System
Client Server Transformational SystemManjuShanmugam1593
 
Toolsfornetworkbiology 1
Toolsfornetworkbiology 1Toolsfornetworkbiology 1
Toolsfornetworkbiology 1pluskjw
 
2011 Winter Festival Partner Results
2011 Winter Festival Partner Results2011 Winter Festival Partner Results
2011 Winter Festival Partner Resultsubitix
 
2011 - Adding bells & whistles to the ribbon
2011 - Adding bells & whistles to the ribbon2011 - Adding bells & whistles to the ribbon
2011 - Adding bells & whistles to the ribbonChris O'Connor
 
Toolsfornetworkbiology 2
Toolsfornetworkbiology 2Toolsfornetworkbiology 2
Toolsfornetworkbiology 2pluskjw
 
201204 create a project and module
201204 create a project and module201204 create a project and module
201204 create a project and modulepluskjw
 
2011 - SharePoint + jQuery
2011 - SharePoint + jQuery2011 - SharePoint + jQuery
2011 - SharePoint + jQueryChris O'Connor
 
2010 - Developer look at the Client Object Model
2010 - Developer look at the Client Object Model2010 - Developer look at the Client Object Model
2010 - Developer look at the Client Object ModelChris O'Connor
 
netbeansplatform overview
netbeansplatform overviewnetbeansplatform overview
netbeansplatform overviewpluskjw
 
2014 - Integrating Yammer with SharePoint
2014 - Integrating Yammer with SharePoint2014 - Integrating Yammer with SharePoint
2014 - Integrating Yammer with SharePointChris O'Connor
 
2014 - The Future Of Forms (InfoPath)
2014 - The Future Of Forms (InfoPath)2014 - The Future Of Forms (InfoPath)
2014 - The Future Of Forms (InfoPath)Chris O'Connor
 

Viewers also liked (20)

2011 - From Zero to productivity (Tech Ed 2011)
2011 - From Zero to productivity (Tech Ed 2011)2011 - From Zero to productivity (Tech Ed 2011)
2011 - From Zero to productivity (Tech Ed 2011)
 
2011 - jQuery + SharePoint (TechEd)
2011 - jQuery + SharePoint (TechEd)2011 - jQuery + SharePoint (TechEd)
2011 - jQuery + SharePoint (TechEd)
 
2011 - SharePoint + jQuery
2011 - SharePoint + jQuery2011 - SharePoint + jQuery
2011 - SharePoint + jQuery
 
Client Server System Development
Client Server System DevelopmentClient Server System Development
Client Server System Development
 
Client Server Network By Usman Ihsan
Client Server Network By Usman IhsanClient Server Network By Usman Ihsan
Client Server Network By Usman Ihsan
 
2015 - PowerShell, C# and JavaScript for Office 365
2015 - PowerShell, C# and JavaScript for Office 3652015 - PowerShell, C# and JavaScript for Office 365
2015 - PowerShell, C# and JavaScript for Office 365
 
Management Information System Presentation
Management Information System PresentationManagement Information System Presentation
Management Information System Presentation
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Client Server Transformational System
Client Server Transformational SystemClient Server Transformational System
Client Server Transformational System
 
Toolsfornetworkbiology 1
Toolsfornetworkbiology 1Toolsfornetworkbiology 1
Toolsfornetworkbiology 1
 
2011 Winter Festival Partner Results
2011 Winter Festival Partner Results2011 Winter Festival Partner Results
2011 Winter Festival Partner Results
 
2011 - Adding bells & whistles to the ribbon
2011 - Adding bells & whistles to the ribbon2011 - Adding bells & whistles to the ribbon
2011 - Adding bells & whistles to the ribbon
 
Toolsfornetworkbiology 2
Toolsfornetworkbiology 2Toolsfornetworkbiology 2
Toolsfornetworkbiology 2
 
201204 create a project and module
201204 create a project and module201204 create a project and module
201204 create a project and module
 
2011 - SharePoint + jQuery
2011 - SharePoint + jQuery2011 - SharePoint + jQuery
2011 - SharePoint + jQuery
 
2010 - Developer look at the Client Object Model
2010 - Developer look at the Client Object Model2010 - Developer look at the Client Object Model
2010 - Developer look at the Client Object Model
 
netbeansplatform overview
netbeansplatform overviewnetbeansplatform overview
netbeansplatform overview
 
2014 - Integrating Yammer with SharePoint
2014 - Integrating Yammer with SharePoint2014 - Integrating Yammer with SharePoint
2014 - Integrating Yammer with SharePoint
 
2014 - The Future Of Forms (InfoPath)
2014 - The Future Of Forms (InfoPath)2014 - The Future Of Forms (InfoPath)
2014 - The Future Of Forms (InfoPath)
 
Cours no6
Cours no6Cours no6
Cours no6
 

Similar to 2013 - Back to the Future with Client/Server Development

2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to AppsGilles Pommier
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Kashif Imran
 
PHP on Windows and on Azure
PHP on Windows and on AzurePHP on Windows and on Azure
PHP on Windows and on AzureMaarten Balliauw
 
Share point 2013 apps and i mean it
Share point 2013 apps and i mean itShare point 2013 apps and i mean it
Share point 2013 apps and i mean itEric Overfield
 
SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET DeveloperJohn Calvert
 
Serverless API with Azure Functions
Serverless API with Azure FunctionsServerless API with Azure Functions
Serverless API with Azure FunctionsAnalben Mehta
 
So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015Ryan Schouten
 
So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015
So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015
So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015Ryan Schouten
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Bram de Jager
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
 
Getting Started with Office 365 Development
Getting Started with Office 365 DevelopmentGetting Started with Office 365 Development
Getting Started with Office 365 DevelopmentDragan Panjkov
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012NCCOMMS
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienChris O'Brien
 
SharePoint Saturday Sacramento 2013 SharePoint Apps
SharePoint Saturday Sacramento 2013 SharePoint AppsSharePoint Saturday Sacramento 2013 SharePoint Apps
SharePoint Saturday Sacramento 2013 SharePoint AppsRyan Schouten
 
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...Bram de Jager
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesBrian Culver
 
Mastering Office 365 Development - Toni Pohl, atwork
Mastering Office 365 Development - Toni Pohl, atworkMastering Office 365 Development - Toni Pohl, atwork
Mastering Office 365 Development - Toni Pohl, atworkSPC Adriatics
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...BlueMetalInc
 
Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Giuseppe Marchi
 
Mastering Office 365 Development
Mastering Office 365 DevelopmentMastering Office 365 Development
Mastering Office 365 Developmentatwork
 

Similar to 2013 - Back to the Future with Client/Server Development (20)

2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365
 
PHP on Windows and on Azure
PHP on Windows and on AzurePHP on Windows and on Azure
PHP on Windows and on Azure
 
Share point 2013 apps and i mean it
Share point 2013 apps and i mean itShare point 2013 apps and i mean it
Share point 2013 apps and i mean it
 
SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET Developer
 
Serverless API with Azure Functions
Serverless API with Azure FunctionsServerless API with Azure Functions
Serverless API with Azure Functions
 
So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015
 
So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015
So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015
So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
Getting Started with Office 365 Development
Getting Started with Office 365 DevelopmentGetting Started with Office 365 Development
Getting Started with Office 365 Development
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
 
SharePoint Saturday Sacramento 2013 SharePoint Apps
SharePoint Saturday Sacramento 2013 SharePoint AppsSharePoint Saturday Sacramento 2013 SharePoint Apps
SharePoint Saturday Sacramento 2013 SharePoint Apps
 
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
Mastering Office 365 Development - Toni Pohl, atwork
Mastering Office 365 Development - Toni Pohl, atworkMastering Office 365 Development - Toni Pohl, atwork
Mastering Office 365 Development - Toni Pohl, atwork
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
 
Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365
 
Mastering Office 365 Development
Mastering Office 365 DevelopmentMastering Office 365 Development
Mastering Office 365 Development
 

Recently uploaded

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

2013 - Back to the Future with Client/Server Development

  • 2.  Chris O’Connor  Senior Consultant – OBS (Melbourne)  Blog : www.sharepointroot.com  Twitter : @GrumpyWookie  Father of three boys  Weekend MAMIL  Let’s go Mountain Biking ! 
  • 3.  Where have we come from ?  The new AppModel (SP2013) + Why ?  New thinking for developers  CSOM  REST  JSON  ODATA  OAUTH
  • 4.  Client/Server  Rich client + networked server  N-tier  Evolution of client/server (layers)  ASP Classic -> ASP.NET  MVC / MVVM  SharePoint  Features, Packages, Solutions  ASP.NET + SharePoint API  Office 365  SharePoint 2013
  • 5.  SharePoint 2013 + Office 365  Architecture Pattern : AppModel  SharePoint = Server  App = Client  It’s Client/Server !!
  • 6.
  • 7.
  • 8. Everything is an app Lists Libraries Calendars Tasks Issues Announcements EVERYTHING !
  • 9. SharePoint 2003, 2007, 2010 Farm Solutions – WSP’s Full Trust 2010 introduced Sandboxed Solutions Isolation, but problematic/limited
  • 10. To solve some problems :  Code running on the SharePoint box  Developer laziness  RunWithElevatedPriveleges
  • 11. SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(web.Site.ID)) { // do something // call a method }); }
  • 12. SPSecurity.RunWithScissors(delegate() { using (SPSite site = new SPSite(web.Site.ID)) { // do something // call a method }); }
  • 13. Goal : Isolation Benefits  Multi-tenancy -> Office 365  Ease of upgrade  Easier to develop / update Need to think “outside the box”
  • 14. AppModel = Isolation  Brings new challenges Security Code Data
  • 15. • CSOM • REST • JSON • ODATA • OAUTH App SharePoint 2013 - On-Premise - Office 365 Security / Code / Data - Authorisation + Permissions - Structured API - Data Contracts ServerClient
  • 16.
  • 17. Black Box thinking SharePoint is “the server” Developer will create “the client” Apps for SharePoint
  • 18.  Provider Hosted  Auto-Hosted (Azure)  SharePoint Hosted  Client/Server “flavours”  Visual Studio 2012 Project Types App
  • 19.
  • 20.  Visual Studio 2012  Need to install project templates  Microsoft Office Developer Tools for Visual Studio 2012  Via Web Platform Installer (WebPI)  http://tinyurl.com/platform-install  SharePoint Designer 2013
  • 21.
  • 22.
  • 23.  Napa  Office 365 Development tools  Add An App > SharePoint Store  Browser based tools  Works with ‘Developer Site’ on Office 365  Office 365 Developer Site  http://dev.office.com/  Sign up today !
  • 24.
  • 25.
  • 26. - Run Project - Remove App - Properties - Open in Visual Studio - Share Project - Publish - Quick Open
  • 27.
  • 28. SharePoint App Model (2013)  Isolation + multi-tenancy  Brings new challenges New application architectures  Provider Hosted  Azure Hosted  SharePoint Hosted
  • 29. New toolsets  Visual Studio 2012  Napa (Office 365)  SharePoint Designer 2013 “Client Server” thinking  Security  Code  Data
  • 30.
  • 31.  Scope  List  WebSite  Site Collection  Tenancy  AppPermissionRequest  Read  Write  Manager  Full Control
  • 32.
  • 33.
  • 34. Code Security  OAUTH – Security Protocol  Between Apps & Services  Without username/password  Works in conjunction with :  ACS – Access Control Services  STS – Security Token Service
  • 35. OAUTH  Only for ‘cloud hosted’ apps  Provider Hosted  Azure Hosted  Pass tokens via IFRAME (!??!)  Need to do this way – avoid XSS
  • 36.
  • 37. Provider-Hosted  Any language / anything / anywhere Azure-Hosted  .NET languages – C# / VB.NET SharePoint-Hosted  JavaScript  jQuery  HTML
  • 38.  CSOM  REST  No Server Object Model (SharePoint.dll)  No code in the GAC
  • 39.  Auto-Hosted -> Office 365  Local application (IIS on laptop)  Uses CSOM code  TokenHelper  ContextToken  AccessToken .
  • 40.  URL based API  OLD :  /_layouts/listdata.svc/web  NEW:  /_api/web
  • 41.  http://server/site/_api/web/lists  http://server/site/_api/web/lists/getbytitle(‘name’)  http://server/site/_api/web/lists('guid')/items?$select=Title, Products  http://server/site/_api/web/lists('guid')/items$filter=MyColu mn eq 'Music’
  • 42.
  • 43.  OData  Open Data Specification  CRUD operations via HTTP verbs  GET (default) – retrieve data  PUT – create new item  POST – update item  DELETE – remove item
  • 44.  OData is built upon message formats  AtomPub  XML  JSON  JavaScript Object Notation Open Standards
  • 45. JavaScript Object Notation {Key,Value} pairs  Allows for objects, arrays + nested multiples
  • 46.
  • 47.  SharePoint-Hosted -> Office 365  JavaScript + jQuery  REST – retrieve list of documents  Data formatted & returned as JSON  Display as HTML  ContextToken  Security .
  • 48.  Where have we come from ?  The new AppModel (SP2013) + Why ?  New thinking for developers  CSOM  REST  JSON  ODATA  OAUTH << Security << Code << Data
  • 49. Questions & Answers ??  More Information ??  Contact Me :  Blog : www.sharepointroot.com  Twitter : @GrumpyWookie 
  • 50. Thank you to our sponsors

Editor's Notes

  1. Session Title: Back to the Future with Client/Server Development Session Description: With the new SharePoint 2013 platform, the application development model changes the ways that developers will approach a solution. This includes client-development concepts such as CSOM, REST, jQuery - AND - can also mean ASP.NET via custom apps hosted outside of SharePoint. This session will show an overview of this approach, and some code samples / examples / demos. Speaker:Chris O'Connor Track:Developer Specialty:Branding and Design Audience:Developer 
  2. 02
  3. 04
  4. 06
  5. 08
  6. 10
  7. 12
  8. 14
  9. 15
  10. 16
  11. 18 Security – user has to approve app when adding – “do you trust this” App Security – not person security Protect data / avoid breach View, Contribute, Manage, Full Control Code – runs in an isolated “AppWeb” Data – via XML / key-value pair
  12. 19 This slide depicts the high-level architecture of an app. You can see SharePoint can communicate with other services such as Windows Azure, or SQL Azure via REST and OData based services. Apps, running from either within an isolated SharePoint AppWeb or on a remote infrastructure such as Windows Azure, communicate back to SharePoint using the same REST & CSOM APIs, gaining permission to SharePoint sites using Windows Azure’s Access Control Service (ACS).
  13. 20
  14. 21
  15. 22-24
  16. 25
  17. 26 *** Visual Studio project – add different types of app
  18. 27 *** Visual Studio project – add different types of app
  19. 28
  20. 29
  21. 30
  22. App Authentication and server-to-server services in SharePoint 2013 now support OAuth 2.0 authentication. OAuth is a security protocol which enables sharing limited information between applications and services, without sharing the actual username/password credentials. Specific resources can be identified for sharing using OAuth, using a different set of credentials, which cannot be used to access other restricted information from the Application / Service.
  23. Diagram - http://msdn.microsoft.com/en-us/library/fp142382.aspx
  24. New Solution Auto Hosted
  25. https://sharepointroot.sharepoint.com/_api/web/lists/Shared_x0020_Documents/Items?$select=Title
  26. New Solution Auto Hosted