Właśnie napisałem nową wersję usługi internetowej WCF i chcę się upewnić, że nie wprowadzono żadnych zmian w zakresie łamania umów dotyczących usług i danych.Usługa WCF Service Backward Compatibility Check
Wracając do mych dni jako programista VB6 Com Api, przypominam sobie, jak łatwo było określić poprzednią wersję wersji komponentu podczas kompilacji, a kompilator powinien sprawdzić, czy zachowana jest zgodność binarna.
Przewiduję coś podobnego, nazywane (miejmy nadzieję) "sprawdzianem zgodności kontraktów". Używałby metadanych do wykonania podobnego czeku do tego, który zrobił program VB6 dev env. Można to zrobić jako osobny krok kompilacji, który wykonałby narzędzie.
Jestem gotów przyjąć, że nie istnieje taka użyteczność. Jeśli tak jest, czy ktoś ma jakieś pomysły na temat tego, jak wyglądałby algorytm, aby to osiągnąć?
- Pobieranie metadanych z obecnej wersji serwisu na żywo
- Pobieranie meta danych z nową wersją serwisu
- Sprawdź uslug i każdy kontrakt danych dla kompatybilności. Tylko zgłaszanie zmian łamiących.
Krok 3 Wygląda byłoby skomplikowane, ale z pewnością do zautomatyzowania ...
Jeśli występują problemy ze zgodnością, można używać przestrzeni nazw umów serwisowych do przechowywania wersji i przechowywać obie wersje, dopóki nie będziesz mieć pewności, że stary nie jest już używany. –