SlideShare una empresa de Scribd logo
1 de 29
AN INTRODUCTION TO THE NEW CLIENT OBJECT
                   MODEL
             IN SHAREPOINT 2010




OR: WE DON’T NEED NO STINKIN’ GOLD-PLATED WEB-SERVICES!
Developing applications using
the SharePoint 2010 Client APIs.

 G. Scott Singleton - Principal SharePoint Architect
 i3solutions, Inc. - Sterling, VA.
   Involved with SharePoint 2010 since May 2009
   One TAP project and three current RTM projects
Learn from yesterday, live for
 today, hope for tomorrow.
The important thing is not to
     stop questioning.

       Albert Einstein
I do “Code Solutions”.
None of this “No-Code”
crap.
There’s no way to take advantage of all of the rich client
experience gains in SP 2010 without code.
Why waste 40 hours looking for that no-code solution
when you could have developed the code-solution in
1/3 the time.
Hell, that’s why we make the big money.
Gotcha! Bet you didn’t think you would see the
 new SharePoint pie in a developer session eh?
Working with SharePoint
Client Applications Today
      in WSS 3.0...
Accessing SharePoint Data

    SharePoint Data (SQL)


       SharePoint API        SharePoint /
                               Server
  SharePoint    Custom Web   Applications
 Web Services     Services



        Your Client
        Application
Working With SharePoint
Client Applications NOW
   in SharePoint 2010
Tomorrow
 ‘RESTful’ Architecture
 ADO.NET Data Services Framework
     Formerly Known as “Astoria”

     ADO.NET Data Services (CTP 2) Required on Server for Beta, RTM for
     Release Candidate

 JSON - JavaScript Object Notation
 Client Object Model (Client OM)
JSON? WTH?
 WASN’T HE IN MY ADVANCED PHYSICS LAB BACK
 IN CALI?
JavaScript Object Notation



   {"menu": {
     "id": "file",
     "value": "File",
     "popup": {
       "menuitem": [
         {"value": "New", "onclick": "CreateNewDoc()"},
         {"value": "Open", "onclick": "OpenDoc()"},
         {"value": "Close", "onclick": "CloseDoc()"}
       ]
     }
   }}


basically a string containing the javascript
  code to create the object in memory
phew! I need a REST!
Using the REST API
                      Representational
                       State Transfer

REST API provided through ADO.NET Data Services
Framework via WCF
/_vti_bin/ListData.svc is base service -- and it is case
sensitive
Can be used to bind to data services from client
applications with ADO.NET Data Services CTP 2
(or Data Services Update for .NET 3.5 SP1 )
A Quick note on Data
 Services Compatibility
If you want to try out Data Services with the SharePoint 2010 Beta today you
have to use CTP2 of Data Services v1.5, because unfortunately the Data Service
RTM version, aka the Data Services Update for .NET 3.5 SP1 is incompatible with
the SharePoint 2010 Beta.

This is a point in time issue – when SharePoint RTMs it will work seamlessly with
the Data Services Update for .NET 3.5 SP1.

Alex James
Program Manager
Microsoft
Atomized Data via REST
By using The REST API We can retrieve atomized
             data directly from a list
RESTful api Demo
cross your fingers!
Available QueryString
parameters
 Default Parameter is item ID and enclosed in parens. ( Links(1) )
 $filter - formatted like a CAML query
 $expand - returns parent object (lookups, relations, etc)
 $orderby - Sets return order by
 $skip - Skips x items
 $top - Returns top x ($top=2 returns top 2)
 Can be stacked together
 example: $orderby=Title&top=1
Client Object Model
Simple API to Add, Retrieve and Update data within
SharePoint 2010
Supports three major client development languages.
    .NET CLR
    JavaScript
    Silverlight CLR

Gives you consistency and efficiency across the
development platforms
Unfortunately you’re still stuck with CAML for the
initial query to the server.
Benefits of Client Object
Model
 A Richer User eXperience (UX) than the simple
 WebForms post-back model
 Reduces impact on server by executing more
 processes on the client’s machine
 Normalizes calls between three available client
 architectures.
 Batches calls to reduce roundtrip
 Provides Asynchronous ability for better UX
 performance
 Late stage data retrieval - returns all the data you
 need, but only the data you need.
What we currently do
.NET CLR client code
Using the client OM in
SilverLight
  Silverlight is Asynchronous by Nature
  Provides both an ExecuteQuery() and
  ExecuteQueryAsync() Method -- but if you’re updating
  the UI you MUST use the Asynchronous call.
  Must provide success and failure callbacks for UI
  Updates
  Must hand off UI work to the dispatcher
  Similar nomenclature to the .NET CLR
DEMO - .NET and Silverlight
CLR - Cross your fingers!
Client Object Model Summary
  Similar constructs and naming convention as Server
  Object Model; reduces developer ramp-up time.
  Reduction of server overhead by offloading processes
  onto the client
  Improves the client’s UX dramatically
  Reduction of round-trips to server via late-stage
  batching
  No need for messy custom web services
  All around cool
Don’t forget to fill out your
 speaker survey forms.
   scottsingleton on twitter - follow me foo
   scott.singleton@i3solutions.com
   http://www.i3solutions.com

  Looking for SharePoint Consulting? -- Call us!

  Looking for a challenging career in SharePoint
development with one of THE leaders in Microsoft’s
         Mid-Atlantic region? -- Call us!

Más contenido relacionado

La actualidad más candente

SharePoint 2013 REST APIs
SharePoint 2013 REST APIsSharePoint 2013 REST APIs
SharePoint 2013 REST APIsGiuseppe Marchi
 
Understanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST APIUnderstanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST APIChris Beckett
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonKunaal Kapoor
 
Hard learned CSOM and REST tips
Hard learned CSOM and REST tipsHard learned CSOM and REST tips
Hard learned CSOM and REST tipsSPC Adriatics
 
Client Object Model and REST Improvements in SharePoint 2013
Client Object Model and REST Improvements in SharePoint 2013Client Object Model and REST Improvements in SharePoint 2013
Client Object Model and REST Improvements in SharePoint 2013Ejada
 
Introduction to the SharePoint 2013 REST API
Introduction to the SharePoint 2013 REST APIIntroduction to the SharePoint 2013 REST API
Introduction to the SharePoint 2013 REST APISparkhound Inc.
 
Taking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST APITaking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST APIEric Shupps
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOMMark Rackley
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIsJohn Calvert
 
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
 
Hooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidHooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidKris Wagner
 
Are you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint AppsAre you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint AppsLiam Cleary [MVP]
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersRob Windsor
 
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...SPTechCon
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appTalbott Crowell
 
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All TogetherKathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All TogetherSharePoint Saturday NY
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...NCCOMMS
 
Android SharePoint
Android SharePointAndroid SharePoint
Android SharePointBenCox35
 

La actualidad más candente (20)

SharePoint 2013 REST APIs
SharePoint 2013 REST APIsSharePoint 2013 REST APIs
SharePoint 2013 REST APIs
 
Understanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST APIUnderstanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST API
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
 
Hard learned CSOM and REST tips
Hard learned CSOM and REST tipsHard learned CSOM and REST tips
Hard learned CSOM and REST tips
 
Client Object Model and REST Improvements in SharePoint 2013
Client Object Model and REST Improvements in SharePoint 2013Client Object Model and REST Improvements in SharePoint 2013
Client Object Model and REST Improvements in SharePoint 2013
 
Introduction to the SharePoint 2013 REST API
Introduction to the SharePoint 2013 REST APIIntroduction to the SharePoint 2013 REST API
Introduction to the SharePoint 2013 REST API
 
Taking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST APITaking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST API
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOM
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIs
 
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
 
Sharepoint Online
Sharepoint OnlineSharepoint Online
Sharepoint Online
 
Hooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidHooking SharePoint APIs with Android
Hooking SharePoint APIs with Android
 
Are you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint AppsAre you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint Apps
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint Developers
 
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All TogetherKathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
 
Asp.net.
Asp.net.Asp.net.
Asp.net.
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
 
Android SharePoint
Android SharePointAndroid SharePoint
Android SharePoint
 

Destacado

Microsoft Expression Blend e WEB: sob o ponto de vista de um desenvolvedor
Microsoft Expression Blend e WEB: sob o ponto de vista de um desenvolvedorMicrosoft Expression Blend e WEB: sob o ponto de vista de um desenvolvedor
Microsoft Expression Blend e WEB: sob o ponto de vista de um desenvolvedorRodrigo Kono
 
Presentatie terreur noorwegen ict werktuigen
Presentatie terreur noorwegen ict werktuigenPresentatie terreur noorwegen ict werktuigen
Presentatie terreur noorwegen ict werktuigenSchacht Jan
 
Palmetto Scientific Investor Presentation
Palmetto Scientific Investor PresentationPalmetto Scientific Investor Presentation
Palmetto Scientific Investor PresentationPalmettoSci
 
DERECHOS FUNDAMENTALES EN INTERNET
DERECHOS FUNDAMENTALES EN INTERNETDERECHOS FUNDAMENTALES EN INTERNET
DERECHOS FUNDAMENTALES EN INTERNETempresa Industrial
 
Centro educativo media de progreso
Centro educativo media de progresoCentro educativo media de progreso
Centro educativo media de progresoyecm1799
 
Cambodia - more than temples
Cambodia - more than templesCambodia - more than temples
Cambodia - more than templesFred Meng
 
Data Access Options in SharePoint 2010
Data Access Options in SharePoint 2010Data Access Options in SharePoint 2010
Data Access Options in SharePoint 2010Rob Windsor
 
Proteccion juridica del software.
Proteccion juridica del software.Proteccion juridica del software.
Proteccion juridica del software.Alex Yujra
 
violència de gènere i prevenció en l'adolescència.
violència de gènere i prevenció en l'adolescència. violència de gènere i prevenció en l'adolescència.
violència de gènere i prevenció en l'adolescència. Natalia Bautista Parra
 
Zaman yonetimi (time management)
Zaman yonetimi (time management)Zaman yonetimi (time management)
Zaman yonetimi (time management)Gurkan Ersoy
 
ملحمة بطلها الملياردير المصري صلاح عطية
ملحمة بطلها الملياردير المصري صلاح عطيةملحمة بطلها الملياردير المصري صلاح عطية
ملحمة بطلها الملياردير المصري صلاح عطيةDr Talaat Refaat
 

Destacado (14)

Microsoft Expression Blend e WEB: sob o ponto de vista de um desenvolvedor
Microsoft Expression Blend e WEB: sob o ponto de vista de um desenvolvedorMicrosoft Expression Blend e WEB: sob o ponto de vista de um desenvolvedor
Microsoft Expression Blend e WEB: sob o ponto de vista de um desenvolvedor
 
El internet como derecho
El internet como derechoEl internet como derecho
El internet como derecho
 
Presentatie terreur noorwegen ict werktuigen
Presentatie terreur noorwegen ict werktuigenPresentatie terreur noorwegen ict werktuigen
Presentatie terreur noorwegen ict werktuigen
 
Ronnie Resume
Ronnie ResumeRonnie Resume
Ronnie Resume
 
Palmetto Scientific Investor Presentation
Palmetto Scientific Investor PresentationPalmetto Scientific Investor Presentation
Palmetto Scientific Investor Presentation
 
Akoya Oxygen play
Akoya Oxygen play   Akoya Oxygen play
Akoya Oxygen play
 
DERECHOS FUNDAMENTALES EN INTERNET
DERECHOS FUNDAMENTALES EN INTERNETDERECHOS FUNDAMENTALES EN INTERNET
DERECHOS FUNDAMENTALES EN INTERNET
 
Centro educativo media de progreso
Centro educativo media de progresoCentro educativo media de progreso
Centro educativo media de progreso
 
Cambodia - more than temples
Cambodia - more than templesCambodia - more than temples
Cambodia - more than temples
 
Data Access Options in SharePoint 2010
Data Access Options in SharePoint 2010Data Access Options in SharePoint 2010
Data Access Options in SharePoint 2010
 
Proteccion juridica del software.
Proteccion juridica del software.Proteccion juridica del software.
Proteccion juridica del software.
 
violència de gènere i prevenció en l'adolescència.
violència de gènere i prevenció en l'adolescència. violència de gènere i prevenció en l'adolescència.
violència de gènere i prevenció en l'adolescència.
 
Zaman yonetimi (time management)
Zaman yonetimi (time management)Zaman yonetimi (time management)
Zaman yonetimi (time management)
 
ملحمة بطلها الملياردير المصري صلاح عطية
ملحمة بطلها الملياردير المصري صلاح عطيةملحمة بطلها الملياردير المصري صلاح عطية
ملحمة بطلها الملياردير المصري صلاح عطية
 

Similar a SharePoint 2010 Client Object Model

MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0Thomas Conté
 
Meteor Workshop - Open Sanca
Meteor Workshop - Open SancaMeteor Workshop - Open Sanca
Meteor Workshop - Open SancaPaulo Hecht
 
Client Object Model - SharePoint Extreme 2012
Client Object Model - SharePoint Extreme 2012Client Object Model - SharePoint Extreme 2012
Client Object Model - SharePoint Extreme 2012daniel plocker
 
O365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side RenderingO365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side RenderingRiwut Libinuko
 
Data Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight ApplicationsData Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight ApplicationsDave Allen
 
ASP.NET 4 and AJAX
ASP.NET 4 and AJAXASP.NET 4 and AJAX
ASP.NET 4 and AJAXKulveerSingh
 
Bn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot netBn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot netconline training
 
SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET DeveloperJohn Calvert
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patternsukdpe
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Jonas Follesø
 
ADO.NET Data Services
ADO.NET Data ServicesADO.NET Data Services
ADO.NET Data Servicesukdpe
 
Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)
Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)
Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)serge luca
 
Defy Occassionally Connected Challenges With Smart Client Applications
Defy Occassionally Connected Challenges With Smart Client ApplicationsDefy Occassionally Connected Challenges With Smart Client Applications
Defy Occassionally Connected Challenges With Smart Client ApplicationsClint Edmonson
 
A SharePoint Developers Guide to Project Server
A SharePoint Developers Guide to Project ServerA SharePoint Developers Guide to Project Server
A SharePoint Developers Guide to Project ServerAlexander Burton
 
Spsdc what's new in share point 2013 workflow
Spsdc   what's new in share point 2013 workflowSpsdc   what's new in share point 2013 workflow
Spsdc what's new in share point 2013 workflowamitvasu
 
Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)David McCarter
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for DevelopersRob Wilson
 

Similar a SharePoint 2010 Client Object Model (20)

MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
 
Developing With Data Technologies
Developing With Data TechnologiesDeveloping With Data Technologies
Developing With Data Technologies
 
Meteor Workshop - Open Sanca
Meteor Workshop - Open SancaMeteor Workshop - Open Sanca
Meteor Workshop - Open Sanca
 
Client Object Model - SharePoint Extreme 2012
Client Object Model - SharePoint Extreme 2012Client Object Model - SharePoint Extreme 2012
Client Object Model - SharePoint Extreme 2012
 
O365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side RenderingO365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side Rendering
 
MSDN Dec2007
MSDN Dec2007MSDN Dec2007
MSDN Dec2007
 
Data Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight ApplicationsData Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight Applications
 
ASP.NET 4 and AJAX
ASP.NET 4 and AJAXASP.NET 4 and AJAX
ASP.NET 4 and AJAX
 
Bn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot netBn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot net
 
SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET Developer
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patterns
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008
 
PPT
PPTPPT
PPT
 
ADO.NET Data Services
ADO.NET Data ServicesADO.NET Data Services
ADO.NET Data Services
 
Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)
Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)
Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)
 
Defy Occassionally Connected Challenges With Smart Client Applications
Defy Occassionally Connected Challenges With Smart Client ApplicationsDefy Occassionally Connected Challenges With Smart Client Applications
Defy Occassionally Connected Challenges With Smart Client Applications
 
A SharePoint Developers Guide to Project Server
A SharePoint Developers Guide to Project ServerA SharePoint Developers Guide to Project Server
A SharePoint Developers Guide to Project Server
 
Spsdc what's new in share point 2013 workflow
Spsdc   what's new in share point 2013 workflowSpsdc   what's new in share point 2013 workflow
Spsdc what's new in share point 2013 workflow
 
Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)Building nTier Applications with Entity Framework Services (Part 2)
Building nTier Applications with Entity Framework Services (Part 2)
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for Developers
 

Último

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
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
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Último (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
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?
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

SharePoint 2010 Client Object Model

  • 1. AN INTRODUCTION TO THE NEW CLIENT OBJECT MODEL IN SHAREPOINT 2010 OR: WE DON’T NEED NO STINKIN’ GOLD-PLATED WEB-SERVICES!
  • 2. Developing applications using the SharePoint 2010 Client APIs. G. Scott Singleton - Principal SharePoint Architect i3solutions, Inc. - Sterling, VA. Involved with SharePoint 2010 since May 2009 One TAP project and three current RTM projects
  • 3. Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning. Albert Einstein
  • 4. I do “Code Solutions”. None of this “No-Code” crap. There’s no way to take advantage of all of the rich client experience gains in SP 2010 without code. Why waste 40 hours looking for that no-code solution when you could have developed the code-solution in 1/3 the time. Hell, that’s why we make the big money.
  • 5. Gotcha! Bet you didn’t think you would see the new SharePoint pie in a developer session eh?
  • 6. Working with SharePoint Client Applications Today in WSS 3.0...
  • 7. Accessing SharePoint Data SharePoint Data (SQL) SharePoint API SharePoint / Server SharePoint Custom Web Applications Web Services Services Your Client Application
  • 8. Working With SharePoint Client Applications NOW in SharePoint 2010
  • 9. Tomorrow ‘RESTful’ Architecture ADO.NET Data Services Framework Formerly Known as “Astoria” ADO.NET Data Services (CTP 2) Required on Server for Beta, RTM for Release Candidate JSON - JavaScript Object Notation Client Object Model (Client OM)
  • 10. JSON? WTH? WASN’T HE IN MY ADVANCED PHYSICS LAB BACK IN CALI?
  • 11. JavaScript Object Notation {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} basically a string containing the javascript code to create the object in memory
  • 12. phew! I need a REST!
  • 13. Using the REST API Representational State Transfer REST API provided through ADO.NET Data Services Framework via WCF /_vti_bin/ListData.svc is base service -- and it is case sensitive Can be used to bind to data services from client applications with ADO.NET Data Services CTP 2 (or Data Services Update for .NET 3.5 SP1 )
  • 14. A Quick note on Data Services Compatibility If you want to try out Data Services with the SharePoint 2010 Beta today you have to use CTP2 of Data Services v1.5, because unfortunately the Data Service RTM version, aka the Data Services Update for .NET 3.5 SP1 is incompatible with the SharePoint 2010 Beta. This is a point in time issue – when SharePoint RTMs it will work seamlessly with the Data Services Update for .NET 3.5 SP1. Alex James Program Manager Microsoft
  • 16. By using The REST API We can retrieve atomized data directly from a list
  • 17. RESTful api Demo cross your fingers!
  • 18. Available QueryString parameters Default Parameter is item ID and enclosed in parens. ( Links(1) ) $filter - formatted like a CAML query $expand - returns parent object (lookups, relations, etc) $orderby - Sets return order by $skip - Skips x items $top - Returns top x ($top=2 returns top 2) Can be stacked together example: $orderby=Title&top=1
  • 19. Client Object Model Simple API to Add, Retrieve and Update data within SharePoint 2010 Supports three major client development languages. .NET CLR JavaScript Silverlight CLR Gives you consistency and efficiency across the development platforms Unfortunately you’re still stuck with CAML for the initial query to the server.
  • 20.
  • 21. Benefits of Client Object Model A Richer User eXperience (UX) than the simple WebForms post-back model Reduces impact on server by executing more processes on the client’s machine Normalizes calls between three available client architectures. Batches calls to reduce roundtrip Provides Asynchronous ability for better UX performance Late stage data retrieval - returns all the data you need, but only the data you need.
  • 22.
  • 25. Using the client OM in SilverLight Silverlight is Asynchronous by Nature Provides both an ExecuteQuery() and ExecuteQueryAsync() Method -- but if you’re updating the UI you MUST use the Asynchronous call. Must provide success and failure callbacks for UI Updates Must hand off UI work to the dispatcher Similar nomenclature to the .NET CLR
  • 26.
  • 27. DEMO - .NET and Silverlight CLR - Cross your fingers!
  • 28. Client Object Model Summary Similar constructs and naming convention as Server Object Model; reduces developer ramp-up time. Reduction of server overhead by offloading processes onto the client Improves the client’s UX dramatically Reduction of round-trips to server via late-stage batching No need for messy custom web services All around cool
  • 29. Don’t forget to fill out your speaker survey forms. scottsingleton on twitter - follow me foo scott.singleton@i3solutions.com http://www.i3solutions.com Looking for SharePoint Consulting? -- Call us! Looking for a challenging career in SharePoint development with one of THE leaders in Microsoft’s Mid-Atlantic region? -- Call us!

Notas del editor