Building social and RESTful frameworks

Preview:

DESCRIPTION

 

Citation preview

Brendon Schwartz

bschwartz@devcowsoftware.com

http://blogs.sharepointguys.com/brendon

Senior Software Engineer

Telligent

Brendon SchwartzSenior 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

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=members4&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

Recommended