SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
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
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
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
Brendon Schwartz
bschwartz@devcowsoftware.com
http://blogs.sharepointguys.com/brendon
Senior Software Engineer
Telligent

Mais conteúdo relacionado

Mais procurados

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 sourcesRodrigo Mesquita
 
Building RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIBuilding RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIGert 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, Brusselsheyrocker
 
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_2020Veyra Celina
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State TransferPeter R. Egli
 
Visual Studio2010
Visual Studio2010Visual Studio2010
Visual Studio2010HimaVejella
 
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 2013Woodruff 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 codeRandall Groncki
 
Efficient Spring Data REST Development
Efficient Spring Data REST DevelopmentEfficient Spring Data REST Development
Efficient Spring Data REST DevelopmentCatalin Tudose
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fuseboxnascomgenk
 
Introduction to SalesForce
Introduction to SalesForceIntroduction to SalesForce
Introduction to SalesForceSujit Kumar
 

Mais procurados (20)

Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)
 
APEX Reporting on external data sources
APEX Reporting on external data sourcesAPEX Reporting on external data sources
APEX Reporting on external data sources
 
What is an API?
What is an API?What is an API?
What is an API?
 
Building RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIBuilding RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPI
 
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
 
2001
20012001
2001
 
Rest introduction
Rest introductionRest introduction
Rest introduction
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
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
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State Transfer
 
Visual Studio2010
Visual Studio2010Visual Studio2010
Visual Studio2010
 
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
 
Flex 2
Flex 2Flex 2
Flex 2
 
Rest api-basic
Rest api-basicRest api-basic
Rest api-basic
 
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
 
Web 2 0 Technologies
Web 2 0 TechnologiesWeb 2 0 Technologies
Web 2 0 Technologies
 
Work flow
Work flowWork flow
Work flow
 
Efficient Spring Data REST Development
Efficient Spring Data REST DevelopmentEfficient Spring Data REST Development
Efficient Spring Data REST Development
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fusebox
 
Introduction to SalesForce
Introduction to SalesForceIntroduction to SalesForce
Introduction to SalesForce
 

Semelhante a Building social and RESTful frameworks

Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsSteve Speicher
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notesaggopal1011
 
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 2010Eli 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 ServicesBob German
 
Improving Infrastructure Governance on AWS
Improving Infrastructure Governance on AWSImproving Infrastructure Governance on AWS
Improving Infrastructure Governance on AWSAmazon Web Services
 
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 ArangoDBArangoDB Database
 
Modern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaModern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaLucas Jellema
 
Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
 Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar... Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...Amazon Web Services
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedDave 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.0Bruce Johnson
 
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar SeriesImproving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar SeriesAmazon Web Services
 
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
 
Best salesforce training Institute in Hyderabad
Best salesforce training Institute in HyderabadBest salesforce training Institute in Hyderabad
Best salesforce training Institute in HyderabadN 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 linksStephen Richard
 

Semelhante a 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
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
 
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...
 
Ikenstudiolive
IkenstudioliveIkenstudiolive
Ikenstudiolive
 
TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010
 
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
 
Improving Infrastructure Governance on AWS
Improving Infrastructure Governance on AWSImproving Infrastructure Governance on AWS
Improving Infrastructure Governance on AWS
 
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
 
Dot net training bangalore
Dot net training bangaloreDot net training bangalore
Dot net training bangalore
 
Modern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaModern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas Jellema
 
L19 Application Architecture
L19 Application ArchitectureL19 Application Architecture
L19 Application Architecture
 
Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
 Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar... Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF Demystified
 
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
 
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar SeriesImproving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
 
Olap
OlapOlap
Olap
 
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
 
Best salesforce training Institute in Hyderabad
Best salesforce training Institute in HyderabadBest salesforce training Institute in Hyderabad
Best salesforce training Institute in Hyderabad
 
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...
 
Approaches to machine actionable links
Approaches to machine actionable linksApproaches to machine actionable links
Approaches to machine actionable links
 

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
  • 7.
  • 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
  • 21.
  • 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
  • 24.