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