Microsoft TechDays Сергей Звездин
Microsoft TechDays Enterprise Services WCF позволяет строить только корпоративные сервисы?
Microsoft TechDays Enterprise Services WCF позволяет строить только корпоративные сервисы Web WCF позволяет строить сервисы в т.ч. для работы в Web
Microsoft TechDays Упросить: Отображение URIs на логику приложения Работа с HTTP методами Работа с кодами возврата (response codes) Работа с HTTP заголовками Позволяет предоставить SOAP/RPC и REST контракты из одного приложения
Microsoft TechDays Синдикация – это больше чем новости и блоги Унифицированная объектная модель SyndicationFeed / SyndicationItem Поддерживаются syndication extensions Не зависит от формата RSS 2.0 ATOM 1.0 …
Microsoft TechDays System.UriTemplate Тип для моделирования отношения URI к семантике приложения Связывает данные с шаблоном, выходным URI Устанавливает соответствие URI шаблону, восстановить данные System.UriTemplateMatch Возвращается из UriTemplate, операции «match» Может получить относительные пути и сегменты подстановочных секций System.UriTemplateTable Служит для привязки URI к группе UriTemplates
// create the base Uri Uri address = new Uri( // create the template for a URI UriTemplate template = new UriTemplate({artist}/{album}); // set the values of the URI segments Uri boundUri = template.BindByPosition(address, Northwind, Overdone); // Console.WriteLine(address.ToString());
// create the base Uri Uri address = new Uri( // create the template for a URI UriTemplate template = new UriTemplate({artist}?album={album}); // set the values of the URI segments Uri boundUri = template.BindByPosition(address, Northwind, Overdone); // Console.WriteLine(address.ToString());
// address & boundUri from previous slide // use the template to parse boundUri UriTemplateMatch match = template.Match(address, boundUri); String bandName = match.BoundVariables[artist]; // writes Artist name: Northwind Console.WriteLine(Artist name: {0}, bandName);
[ServiceKnownType(typeof(Atom10FeedFormatter))] [ServiceKnownType(typeof(Rss20FeedFormatter))] [ServiceContract] interface IAlbumSyndication { [OperationContract] [WebGet(UriTemplate=Images/{format}")] SyndicationFeedFormatter Feed(String format); }
Microsoft TechDays WebOperationContext.Current Предоставляет доступ к заголовкам входящего запроса Позволяет также установить заголовки ответа
Stream GetAlbumImage(String bandName, String album) { Stream stream =..; // получаем изображение WebOperationContext.Current.OutgoingResponse.ContentType = image/jpeg; return stream; }
Microsoft TechDays Simple syndication service
Microsoft TechDays Picture Services
Microsoft TechDays WCF web site Picture Syndication sample
Microsoft TechDays © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.