The situation:
- My company delivers an installed Windows Forms application to our clients.
- This client application comes bundled with an object binary (let's call it
Objects.dll
) Objects.dll
contains the object properties, fields, method signatures, etc.Objects.dll
also contains the Service Contracts (interfaces), used by the object to communicate to a remote web service- The remote web service (let's call it
Service.dll
) is hosted remotely, along withObjects.dll
. It implements the Service Contracts inObjects.dll
The problem:
- When the
Objects.dll
changes in any way (including the Service Contracts), an update must be sent out to the client application. Updates like these require 48+ hour notice, and a pretty hefty middle of the night maintenance window. This is painful, and it goes against our internal development credo of having low-impact deployments.
The hope:
- There exists a tool/product/service that allows some level of decoupling of the object tier from the client application. I'm envisioning some service/object discovery service for the client application to communicate with in order to get the object tier.
It's possible that a solution doesn't necessarily exist. While that would be less than ideal, I'm fully anticipating this solution.
Objects.dll
changes in any way, which includes Service Contracts changes. In my "perfect world" scenario, which may not be realistic, I would like to have the application "self-aware" of the implementation of theObjects.dll
, so it doesn't need an application update, but can just update its internal implementation.