Hi daelmo,
The best would be that the clients would be up-to-date, many things about the service functionality relays on new fields anyway.
I agree but unfortunately I cannot force users to take the latest version of the client each time there is a change. For some changes this is unavoidable but in general it is possible to avoid the situation.
Now, the OptionalField specifies that a field can be missing from a serialization stream, this is .net code. I don't know how it will work due to the WCF data contracts, you should give it a spin.
The OptionalFieldAttribute works fine with DataContracts over WCF and this is the one of the techniques we have used in previous projects to offer backward compatitibility. The question I have is whether this can be applied to an entity field and if so where should place the attribute? I know that LLBLGen uses its own serialization and therefore I was unsure about what to put where.
What about your DTO's? I didn't understand why you want to drop them and take the entities instead.
I'm not entirely sure I do to be honest, the key requirement that got me thinking about using the entities is that the client application must track changes to the objects to which it is bound. Users need to be aware of the changes that they have made and in certain circumstance must review these changes before submitting. I could add change tracking to the DTO's (Not quite sure how yet
) but if the entities are small enough and can offer backward compatibility then I they may be the better option.
Thanks
Oliver