Upload
brendonschwartz
View
83
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
Brendon Schwartz
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
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=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
http://blogs.sharepointguys.com/brendon
Senior Software Engineer
Telligent