MIX07 - WCF adding System.UriTemplate, [WebGet], and [WebInvoke]
System.UriTemplate
Build and parse URI's
System.UriTemplate (Orcas) - runtime support for URI template syntax
UriTemplate.Bind - A safe, smart string.format for URI construction
UriTemplate.Match - Extracts URI to dictionary
UriTemplateTable - One or more template, best match wins
HTTP GET - bound semantics, expectation of idempotency, generally "safe" Chaos - HTTP POST, PUT, DELETE, others
WebHttpClient client = new WebHttpClient()
{
UriTemplate = "http://localhost/mix/data/symbols{0}";
}
MixData = client.Get(StockSymbol).GetBody();
return data;
WCF adds [WebGet] and [WebInvoke]
[OperationContract]
[WebGet( UriTemplate = "data/symbols/{symbol}")]
public MixData GetCurrentData(int index)
{
MixLogic logic = new MixLogic();
return logic.GetData();
}
[OperationContract]
[WebGet( UriTemplate = "data/results/{index}")]
public MixData GetCachedResults(string index)
{
int i = int.Parse(index);
if(i >= IMDB.Conptents.Length)
{
// Not found logic;
}
[OperationContract]
[WebGet ( UriTemplate = "data/feeds/{format}" )]
public object GetFeeds(string format)
{
int i = 0;
syndicationFeed feed = new SyndicationFeed (Mix Data", "some results",
new Uri ("http://microsoft.com"),
from data in IMDB.contents
select new SyndicationItem (data.StockSymbol, data.Price, etc.)...
}
There was cooler code which consumes an RSS feed as well
XML, JSON, or opaque binary formats (V1 already included SOAP and POX
SyndicationFeed / SyndicationItem provide rich programming model for dealing with RSS / ATOM
In Orcas:
- UriTemplate
- [WebGet]
- SyndicationFeed
- LINQ fro XML
- JSON formatter
WebHttpClient is speculative, not in Orcas