SlideShare a Scribd company logo
Brendon Schwartz
bschwartz@devcowsoftware.com
http://blogs.sharepointguys.com/brendon
Senior Software Engineer
Telligent
Brendon Schwartz
Senior Software Engineer, Telligent
Experience:
   SharePoint Server Microsoft MVP and ASP.NET MVP
   Architect for applications at AJC, AT&T,
    AutoTrader.com, Coca-Cola Enterprises
   Co-founder, Atlanta .NET Regular Guys www.devcow.com
   Past Vice President of Technology, INETA
   Author of books and magazines
 Create Entities based on domain
   Examples:
      Company
      Order
      Users

 Entities usually have data access method
 Lazy load any large objects
 Have base classes
   Page Class in web
   Stream class for input/output
 Design your system by determining
   Interfaces
   Abstract classes
   Base class implementations
 Different options
   Manually
   Automated
   Generated
 Many tools
   CodeSmith
   OR Mappings
   Microsoft ADO.NET Entity Framework
   LINQ
   ASP.NET MVC
 Only if it makes sense
 Common pattern books
   Fowler, Martin (2002). Patterns of Enterprise Application
    Architecture
   Gang of Four (1995). Design Patterns: Elements of
    Reusable Object-Oriented Software
 New patterns always coming out so stay on top of it
   http://martinfowler.com/bliki/FluentInterface.html
Building social and RESTful frameworks
Located @ http://jobs.devcow.com
 Usually are built around interaction
   Blogs
   Wikis
   Comments
   RSS
   Mashups
 XML format of data
 Most common in blogs
 Use with any list of data
   Events
   Announcements
   Lists
 Pull data and format in RSS standard
 Good integration point for other apps to consume
 Tag Content to make it more relevant
 Display tags per item or collectively
 Helps discover similar data
 Provides metadata for organization and discovery
 Allows author to describe content
 Tag Clouds are the most common display
 Assemble multiple sources together
 Mashups are built with
  many blocks
 Blocks provide
   Input
   Output
 No difference between
  display and data provider
 Connect to LOB systems
Visit @ http://www.codeplex.com/mashup
 REpresentational State Transfer
   Architectural style for distributed hypermedia systems,
    introduced by Roy Fielding (2000)
   Client-Server
   Stateless communication
   Cacheable
   Uniform interface for resources
   Layered
 Resources (nouns)
   Identified by a URI, For example:
    http://yousite/users/admin
 Uniform interface (verbs)
   Small fixed set:
    Create, Read, Update, Delete
 State Representations
    data and state transferred between client and server
 Transferred through web options
    XML, JSON, Atom, XHTML, ...
 CRUD methods map to web requests
   Create POST/ PUT
   Read GET
   Update PUT
   Delete DELETE
 Send data in an XML payload
 Set the HTTP Header properties
 Blog Collection
   /bloggroup/ - container for blog
   /bloggroup/{id}/blog - 1 blog
   /bloggroup/{id}/blog/posts
 URI Templates are URIs with variables within the
  URI syntax.
 Records can be returned in any standard web
  format
 A good rest client API is a set of wrappers
 Usually built with Javascript or scripting languages
 Authentication with API key
 Parameters are passed in URI/URL
http://api.meetup.com/groups1.xml2/?zip=11211&topic=moms3&order=me
  mbers4&key=ABDE12456AB23244455
    groups -- the method you're calling, in this case a request for groups
    xml -- the format of the response. Each method has a list of supported
     formats
    args -- zip & topic limit the results by geography and area of interest
    order -- how to order the results, in this case by # of members. To
     reverse the sorting order, you include the parameter "desc=desc" or
     "desc=true".
    key -- your unique API key
• Formats
    JSON JavaScript Object Notation
    XML A simple XML format with the exact same fields as the json
     response.
    KML Keyhole markup language
    RSS RSS 2.0
    ATOM
View @ http://www.codeplex.com/meetup
Building social and RESTful frameworks
http://reports.communityserver.com/demo/
 Integration to Community Server via web parts in
  SharePoint
 Features include:
   Activity streams – tracks discussions, documents, and
    blogs
   Blogs & forums – work inside of SharePoint, Community
    Server, or Email
Building social and RESTful frameworks
Brendon Schwartz
bschwartz@devcowsoftware.com
http://blogs.sharepointguys.com/brendon
Senior Software Engineer
Telligent
Ad

More Related Content

What's hot (20)

Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)
David Krmpotic
 
APEX Reporting on external data sources
APEX Reporting on external data sourcesAPEX Reporting on external data sources
APEX Reporting on external data sources
Rodrigo Mesquita
 
What is an API?
What is an API?What is an API?
What is an API?
Muhammad Zuhdi
 
Building RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIBuilding RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPI
Gert Drapers
 
Drupal Services 3 - Drupal Dev Days 2011, Brussels
Drupal Services 3 - Drupal Dev Days 2011, BrusselsDrupal Services 3 - Drupal Dev Days 2011, Brussels
Drupal Services 3 - Drupal Dev Days 2011, Brussels
heyrocker
 
2001
20012001
2001
Fred Rodriguez
 
Rest introduction
Rest introductionRest introduction
Rest introduction
William Martinez Pomares
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
Aniruddh Bhilvare
 
Mule soft meetup_4_mty_online_oct_2020
Mule soft meetup_4_mty_online_oct_2020Mule soft meetup_4_mty_online_oct_2020
Mule soft meetup_4_mty_online_oct_2020
Veyra Celina
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State Transfer
Peter R. Egli
 
Visual Studio2010
Visual Studio2010Visual Studio2010
Visual Studio2010
HimaVejella
 
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Woodruff Solutions LLC
 
Flex 2
Flex 2Flex 2
Flex 2
Virat Patel
 
Rest api-basic
Rest api-basicRest api-basic
Rest api-basic
Amila Sampath
 
Creating xml publisher documents with people code
Creating xml publisher documents with people codeCreating xml publisher documents with people code
Creating xml publisher documents with people code
Randall Groncki
 
Web 2 0 Technologies
Web 2 0 TechnologiesWeb 2 0 Technologies
Web 2 0 Technologies
Prasad Perumal
 
Work flow
Work flowWork flow
Work flow
perezmaicol
 
Efficient Spring Data REST Development
Efficient Spring Data REST DevelopmentEfficient Spring Data REST Development
Efficient Spring Data REST Development
Catalin Tudose
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fusebox
nascomgenk
 
Introduction to SalesForce
Introduction to SalesForceIntroduction to SalesForce
Introduction to SalesForce
Sujit Kumar
 
Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)
David Krmpotic
 
APEX Reporting on external data sources
APEX Reporting on external data sourcesAPEX Reporting on external data sources
APEX Reporting on external data sources
Rodrigo Mesquita
 
Building RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIBuilding RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPI
Gert Drapers
 
Drupal Services 3 - Drupal Dev Days 2011, Brussels
Drupal Services 3 - Drupal Dev Days 2011, BrusselsDrupal Services 3 - Drupal Dev Days 2011, Brussels
Drupal Services 3 - Drupal Dev Days 2011, Brussels
heyrocker
 
Mule soft meetup_4_mty_online_oct_2020
Mule soft meetup_4_mty_online_oct_2020Mule soft meetup_4_mty_online_oct_2020
Mule soft meetup_4_mty_online_oct_2020
Veyra Celina
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State Transfer
Peter R. Egli
 
Visual Studio2010
Visual Studio2010Visual Studio2010
Visual Studio2010
HimaVejella
 
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Woodruff Solutions LLC
 
Creating xml publisher documents with people code
Creating xml publisher documents with people codeCreating xml publisher documents with people code
Creating xml publisher documents with people code
Randall Groncki
 
Efficient Spring Data REST Development
Efficient Spring Data REST DevelopmentEfficient Spring Data REST Development
Efficient Spring Data REST Development
Catalin Tudose
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fusebox
nascomgenk
 
Introduction to SalesForce
Introduction to SalesForceIntroduction to SalesForce
Introduction to SalesForce
Sujit Kumar
 

Similar to Building social and RESTful frameworks (20)

Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC Integrations
Steve Speicher
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
aggopal1011
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
Lucas Jellema
 
Ikenstudiolive
IkenstudioliveIkenstudiolive
Ikenstudiolive
iken Solutions - Web Space-
 
TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010
Eli Robillard
 
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 3: Web ServicesAzure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Bob German
 
Deep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDBDeep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDB
ArangoDB Database
 
Dot net training bangalore
Dot net training bangaloreDot net training bangalore
Dot net training bangalore
IGEEKS TECHNOLOGIES
 
Modern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaModern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas Jellema
Lucas Jellema
 
L19 Application Architecture
L19 Application ArchitectureL19 Application Architecture
L19 Application Architecture
Ólafur Andri Ragnarsson
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF Demystified
Dave Bost
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
Bruce Johnson
 
Olap
OlapOlap
Olap
preksha33
 
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
Kashif Imran
 
Best salesforce training Institute in Hyderabad
Best salesforce training Institute in HyderabadBest salesforce training Institute in Hyderabad
Best salesforce training Institute in Hyderabad
N Benchmark IT Solutions
 
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Lucas Jellema
 
Approaches to machine actionable links
Approaches to machine actionable linksApproaches to machine actionable links
Approaches to machine actionable links
Stephen Richard
 
ASP.NET 3.5 SP1
ASP.NET 3.5 SP1ASP.NET 3.5 SP1
ASP.NET 3.5 SP1
Dave Allen
 
Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)
Igor Moochnick
 
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersMSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
Dave Bost
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC Integrations
Steve Speicher
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
aggopal1011
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
Lucas Jellema
 
TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010
Eli Robillard
 
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 3: Web ServicesAzure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Bob German
 
Deep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDBDeep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDB
ArangoDB Database
 
Modern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaModern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas Jellema
Lucas Jellema
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF Demystified
Dave Bost
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
Bruce Johnson
 
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
Kashif Imran
 
Best salesforce training Institute in Hyderabad
Best salesforce training Institute in HyderabadBest salesforce training Institute in Hyderabad
Best salesforce training Institute in Hyderabad
N Benchmark IT Solutions
 
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Lucas Jellema
 
Approaches to machine actionable links
Approaches to machine actionable linksApproaches to machine actionable links
Approaches to machine actionable links
Stephen Richard
 
ASP.NET 3.5 SP1
ASP.NET 3.5 SP1ASP.NET 3.5 SP1
ASP.NET 3.5 SP1
Dave Allen
 
Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)
Igor Moochnick
 
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersMSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
Dave Bost
 
Ad

Building social and RESTful frameworks

  • 2. Brendon Schwartz Senior Software Engineer, Telligent Experience:  SharePoint Server Microsoft MVP and ASP.NET MVP  Architect for applications at AJC, AT&T, AutoTrader.com, Coca-Cola Enterprises  Co-founder, Atlanta .NET Regular Guys www.devcow.com  Past Vice President of Technology, INETA  Author of books and magazines
  • 3.  Create Entities based on domain  Examples:  Company  Order  Users  Entities usually have data access method  Lazy load any large objects
  • 4.  Have base classes  Page Class in web  Stream class for input/output  Design your system by determining  Interfaces  Abstract classes  Base class implementations
  • 5.  Different options  Manually  Automated  Generated  Many tools  CodeSmith  OR Mappings  Microsoft ADO.NET Entity Framework  LINQ  ASP.NET MVC
  • 6.  Only if it makes sense  Common pattern books  Fowler, Martin (2002). Patterns of Enterprise Application Architecture  Gang of Four (1995). Design Patterns: Elements of Reusable Object-Oriented Software  New patterns always coming out so stay on top of it  http://martinfowler.com/bliki/FluentInterface.html
  • 9.  Usually are built around interaction  Blogs  Wikis  Comments  RSS  Mashups
  • 10.  XML format of data  Most common in blogs  Use with any list of data  Events  Announcements  Lists  Pull data and format in RSS standard  Good integration point for other apps to consume
  • 11.  Tag Content to make it more relevant  Display tags per item or collectively  Helps discover similar data  Provides metadata for organization and discovery  Allows author to describe content  Tag Clouds are the most common display
  • 12.  Assemble multiple sources together  Mashups are built with many blocks  Blocks provide  Input  Output  No difference between display and data provider  Connect to LOB systems
  • 14.  REpresentational State Transfer  Architectural style for distributed hypermedia systems, introduced by Roy Fielding (2000)  Client-Server  Stateless communication  Cacheable  Uniform interface for resources  Layered
  • 15.  Resources (nouns)  Identified by a URI, For example: http://yousite/users/admin  Uniform interface (verbs)  Small fixed set: Create, Read, Update, Delete  State Representations  data and state transferred between client and server  Transferred through web options  XML, JSON, Atom, XHTML, ...
  • 16.  CRUD methods map to web requests  Create POST/ PUT  Read GET  Update PUT  Delete DELETE  Send data in an XML payload  Set the HTTP Header properties
  • 17.  Blog Collection  /bloggroup/ - container for blog  /bloggroup/{id}/blog - 1 blog  /bloggroup/{id}/blog/posts  URI Templates are URIs with variables within the URI syntax.  Records can be returned in any standard web format
  • 18.  A good rest client API is a set of wrappers  Usually built with Javascript or scripting languages  Authentication with API key  Parameters are passed in URI/URL
  • 19. http://api.meetup.com/groups1.xml2/?zip=11211&topic=moms3&order=me mbers4&key=ABDE12456AB23244455  groups -- the method you're calling, in this case a request for groups  xml -- the format of the response. Each method has a list of supported formats  args -- zip & topic limit the results by geography and area of interest  order -- how to order the results, in this case by # of members. To reverse the sorting order, you include the parameter "desc=desc" or "desc=true".  key -- your unique API key • Formats  JSON JavaScript Object Notation  XML A simple XML format with the exact same fields as the json response.  KML Keyhole markup language  RSS RSS 2.0  ATOM
  • 23.  Integration to Community Server via web parts in SharePoint  Features include:  Activity streams – tracks discussions, documents, and blogs  Blogs & forums – work inside of SharePoint, Community Server, or Email