You have all sat through the simple WCF Data Service or ASP.NET Web API introductory sessions multiple times and they are valuable but it is time to learn how to really leverage that WCF knowledge and learn how to build and produce valuable OData feeds which will allow your applications usability to sizzle. At the same time you will learn how OData is built for high performance and security. Chris Woodruff will teach and give deep knowledge into the configuration and extensibility of the Web API/OData feed. It will also teach developers to secure their feeds through multiple user authentications such as OAuth, Windows and Forms Authentication.
6. BEST PRACTICES
Lid est laborum dolo rumes fugats untras.
Etharums ser quidem rerum facilis dolores
nemis
Lid est laborum dolo rumes fugats untras.
Etharums ser quidem rerum facilis dolores
nemis
www.chriswoodruff.com Page Number 6
7. Get to know the OData Protocol!!!
www.chriswoodruff.com Page Number 7
12. VALIDATION AND FILTERING
Lid est laborum dolo rumes fugats untras.
Etharums ser quidem rerum facilis dolores
nemis
Lid est laborum dolo rumes fugats untras.
Etharums ser quidem rerum facilis dolores
nemis
www.chriswoodruff.com Page Number 12
13. ODATA ATTRIBUTES
NotExpandable
Represents an Attribute that can be placed on a property to specify
be used in the $expand OData query option.
0
5
NotNavigable
Represents an Attribute that can be placed on a property to specify
that the property cannot be navigated in OData query.
0
6
NotSortable
Represents an attribute that can be placed on a property to specify
that the property cannot be used in the $orderby OData query
option.
0
7
NonFilterable
Represents an Attribute that can be placed on a property to specify
that the property cannot be used in the $filter OData query option.
0
1
UnSortable
Represents an Attribute that can be placed on a property to specify
that the property cannot be used in the $orderby OData query
option.
0
2
NotExpandable
Represents an Attribute that can be placed on a property to specify
that the property cannot be used in the $expand OData query
option.
0
3
NotCountable
Represents an Attribute that can be placed on a property to specify
that the $count cannot be applied on the property.
0
4
[NonFilterable]
[Unsortable]
public string Name { get; set; }
www.chriswoodruff.com Page Number 13
14. VALIDATION PATHS
Filter Query
Represents a validator used to validate a
FilterQueryOption based on the
ODataValidationSettings.
OData Query
Represents a validator used to validate OData queries
based on the ODataValidationSettings.
Order By Query
Represents a validator used to validate an
OrderByQueryOption based on the
ODataValidationSettings.
Select Expand Query
Represents a validator used to validate a
SelectExpandQueryOption based on the
ODataValidationSettings.
Skip Query
Represents a validator used to validate a
SkipQueryOption based on the
ODataValidationSettings.
Top Query
Represents a validator used to validate a
TopQueryOption based on the
ODataValidationSettings.
www.chriswoodruff.com Page Number 14
17. DEBUGGING/TESTING
Lid est laborum dolo rumes fugats untras.
Etharums ser quidem rerum facilis dolores
nemis
Lid est laborum dolo rumes fugats untras.
Etharums ser quidem rerum facilis dolores
nemis
www.chriswoodruff.com Page Number 17
18. XODATA
TESTING/DEBUGGING ODATA
Web-based OData Visualizer
FIDDLER
Free web debugging tool which
logs all HTTP(S) traffic between
your computer and the
Internet.
LINQPAD
Interactively query SQL
databases (among other data
sources such as OData or WCF
Data Services) using LINQ, as
well as interactively writing C#
code without the need for an
IDE.
ODATA
VALIDATOR
Enable OData service authors
to validate their
implementation against the
OData specification to ensure
the service interoperates well
with any OData client.
www.cwherbisswitoenoadmruef.fc.coomm Page Number 18
19. CONSUMING ODATA
Lid est laborum dolo rumes fugats untras.
Etharums ser quidem rerum facilis dolores
nemis
Lid est laborum dolo rumes fugats untras.
Etharums ser quidem rerum facilis dolores
nemis
www.chriswoodruff.com Page Number 19
23. ODATA WORKSHOP
Go to http://ChrisWoodruff.com for more details and
pricing
01
02
03
04
TESTING/DEBUGGING ODATA
DEVELPING CLIENT SIDE SOLUTIONS
• Web Apps using Javascript to consume Odata
• iOS Swift development for native iPhone and iPad
apps
• Windows 8.1 and Windows Phone apps C# and WinJS
• Android development using Java
• Using Xamarin for consuming OData
LEARNING THE PROTOCOL
• The Metadata and Service Model of OData
• URI Conventions of OData
• Format Conventions of OData
• OData HTTP Conventions and Operations
DEVELPING SERVER SIDE SOLUTIONS
• ASP.NET Web API
• Advanced Performance Tips and Best Practices
www.chriswoodruff.com Page Number 23
24. THANK YOU
Find me around the conference and would enjoy chatting
Email: cwoodruff@live.com
Twitter: @cwoodruff
www.chriswoodruff.com Page Number 24
25. Credits
• Security Icon designed by Thibault Geffroy from the Noun Project
• Check Mark Icon designed by Rafaël Massé from the Noun Project
• Test Icon designed by ChangHoon Baek from the Noun Project
• Question Icon designed by Stefano Vetere from the Noun Project
www.chriswoodruff.com Page Number 25
Hinweis der Redaktion
So far, DateTime is not the part of the OASIS OData V4 standard and Web API doesn't support the DateTime type while it does support the DateTimeOffset type.
Invoice.cs
WebApiConfig.cs