The Service Object Model producer generates the Service Object Model layer on top of the Business Object Model layer and it generates:
On the server side: contracts, and services exposing the generated object model,
On the client side: an enhanced proxy consuming the generated services taking care of all communication aspects; this proxy is actually a remote version of the server object model, this way providing Smart-Client developers the same ease of development as when developing a client-server application.
Using the generated enhanced proxy is optional, since the generated services are absolutely standard WCF services, you can consume them using the standard proxy generated by Visual Studio when adding a service reference.
This producer also provides a set of handy features such as:
- Support for automatic asynchronous paged mode for large size collections,
- Support for WCF streaming for binary large objects (e.g. videos, documents, pictures, audios),
- Support for WPF automatic validation (IDataErrorInfo),
- Support for WPF automatic data binding (INotifyPropertyChanged, INotifyCollectionChanged),
- Automatic generation of validation rules on the client side, if needed,
- Automatic generation of custom business rules on the client, if needed,
- No need for metada (mex) which saves network bandwith