Note that there are some explanatory texts on larger screens.

plurals
  1. POWCF - Domain Objects and IExtensibleDataObject
    primarykey
    data
    text
    <p>Typical scenario. We use old-school XML Web Services <em><code>internally</code></em> for communicating between a server farm and several distributed <em>and</em> local clients. No third parties involved, only our applications used by ourselves and our customers.</p> <p>We're currently pondering moving from <code>XML</code> <code>WS</code> to a <code>WCF/object-based</code> model and have been experimenting with various approaches. One of them involves transferring the domain objects/aggregates directly over the wire, possibly invoking DataContract attributes on them.</p> <p>By using <code>IExtensibleDataObject</code> and a <code>DataContract</code> using the Order property on the <code>DataMembers</code>, we should be able to cope with simple property versioning issues (remember, we control all clients and can easily force-update them).</p> <p>I keep hearing that we should use dedicated, transfer-only Data Transfer Objects (<code>DTOs</code>) over the wire.</p> <p>Why? Is there still a reason to do so? We use the same domain model on the server side and client side, of course, prefilling collections, etc. only when deemed right and "necessary." Collection properties utilize the service locator principle and IoC to invoke either an <code>NHibernate-based</code> "service" to fetch data directly (on the server side), and a <code>WCF</code> "service" client on the client side to talk to the <code>WCF</code> server farm.</p> <p>So - why do we need to use <code>DTOs</code>?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload