My Project solution is as below:
IN MVC - Calling the WCF service method is as follow - IList<Employee> RetriveData()
it is called from MVC - ServiceClient.RetrieveData() , now problem is return object Employee
point to ServiceHost.Employee
object instead of - Common.DTO.Employee
object (Library project) so, it gives type casting error.
Can any one suggest me what is the solution over here or i should remove "Common.DTO" project refernece from MVC and only use Servicehost.Employee
object.
Please guide me on this design, what should use.
NOTE: all objects are DATACONTRACT (serilizable).
In MVC applicaiton, after retrieing DTO object, i do convert them into Viewmodel (It also internally refer any collection object like IList<ServiceHost.LookupItem>
. Does it ok to use all generated serilized object directly OR , do i have to convert/cast each return object into common.DTO.
object and then convert into ViewModel ?
Thank You
Don't use Visual Studio's Add Service Reference. Doing so will result in multiple types being defined in the solution and client-proxies that over time will become out of sync.
It is much better to define a common contracts assembly that your whole solution uses.
Please see WCF the Manual Way…the Right Way specifically page 3
You should try to follow patterns such as canonical data model whenever possible. This means the same type for POCO ORM; WCF; and as aggregates in your view model. Data conversion is expensive; leads to increased maintenance and possible fidelity loss. http://www.soapatterns.org/ http://www.eaipatterns.com/