2010-07-05 4 views
2

Есть ли поддержка поддержки версий метаданных в протоколе OData и ее реализация служб данных WCF?Управление версиями метаданных данных OData/WCF

Предположим, что у нас есть служба OData, которая предоставляет единую коллекцию товаров, а тип объекта Goods имеет три свойства: ключ (строка), имя (строка) и доступная строка (строка). Служба уже запущена, и есть некоторые потребители, которые полагаются на эту схему метаданных. Далее мы хотим обновить тип объекта Goods - например, заменить свойство AvailableSince (string) на что-то другое или изменить его тип из строки в datetime - так что у нас будет две версии метаданных, а потребители, которые зависят от первой версии метаданных не сможет отправлять правильные запросы с точки зрения 2-й схемы метаданных.

Есть ли способ предоставить обе версии метаданных в рамках одной службы? Если да, то как потребитель может указать версию метаданных в запросе и как ее обрабатывать на стороне WCF?

Благодарим всех заблаговременно.

+0

Как и в сторону, OData объекты имеют тенденцию к смещению намного меньше, чем у большинства интерфейсов. Да, с течением времени будут добавлены новые поля, но объект PurchaseOrder будет всегда действовать более или менее одинаково. Внедрение метода UpdatePurchaseOrder может измениться под капотом, но сам объект будет оставаться очень похожим с течением времени. Это одна из причин, по которой мне нравится разработка OData и Business Entity. –

ответ

4

Короткий ответ: НЕТ.

В большинстве изменений метаданных требуется либо новая услуга, либо нарушение существующих клиентов.

Если существующий набор клиентов важно, наша общая рекомендация состоит в том, чтобы создать новую услугу ...

есть что-то вроде:

/v1/myservice.svc 
    & 
/v2/myservice.svc 

Alex

программы OData менеджер