This shows you the differences between two versions of the page.
| |
— | it:ad:patterns:version_your_messages_strategy [2023/11/04 03:29] (current) – created - external edit 127.0.0.1 |
---|
| # IT:AD:Patterns:Version Your Messages Strategy # |
| |
| |
| |
| |
| <callout type="Navigation" class="small"> |
| |
| * [[../|(UP)]] |
| |
| |
| </callout> |
| |
| |
| <panel title="Summary"> |
| |
| You can't get your message schemas back once others have invested time and effort into mapping them into their application. |
| |
| ![](https://dl.dropbox.com/u/11851202/PUBLIC/SKYS/Posted/IT/AD/Design/Patterns/Versioning/stuckinmailbox.png) |
| |
| |
| You'll simply get a *lot* of irate 3rd party developers. Probably *vocal* irate 3rd party developers. |
| |
| |
| </panel> |
| |
| |
| ## Notes ## |
| |
| |
| ### APIs ### |
| |
| #### External APIs |
| |
| * MUST: never *ever* let your API's directly expose [[IT/#Domain Entities/]]. No matter how simple they start out, [[IT/#Domain Entities/]] will change over time to address new business needs. If your api's remote clients are tightly bound, and you go through with the changes, they will all break. Not a good scenario. A long term strategy is to map your [[IT/#Domain Entities/]] to API [[#IT/#DTO/]]s (DTOs are more appropriate than [[IT/#Domain Entities/]] anyway as you can't serialize [[IT/#Behaviour/]] over the wire anyway, just properties -- which is all that DTOs are. |
| |
| #### Internal APIs #### |
| |
| * COULD: probably do not need to version your WCF calls across tiers of your own [[IT/AD/Design/Technical/Patterns/DDD/]] application. Can't think of a reason why yet, but there may be a case to consider if the application is being hosted in totally different Hosts Products. To Consider. |
| |