As we are spiking on the EntLib Silverlight Integration Pack, we can use some feedback on the validation story. With the recent addition of DataAnnotations and RIA Services to the framework stack, we would like to avoid adding confusion to the Silverlight platform by introducing yet another validation framework. At the same time, we’d like to provide a cross-platform validation solution.
We are contemplating 2 options here:
- Porting the Validation Block “as is”.
- Implementing some VAB scenarios on top of the DataAnnotations
Porting the existing Validation Block gives the advantage of letting users take code and configuration that currently uses it and bringing it across unchanged to a Silverlight app. No new learning is required if you already know VAB.
However, with the recent improvements in the DataAnnotations validation and the RIA services additions, many of the scenarios that were originally supported only by VAB are now also addressed by the Silverlight / RIA services platform. If we were to instead provide a way to address those scenarios that are not currently there (primarily around config driven validation and validation rule sets), we could have a much smaller download, and better consistency with the rest of the Silverlight platform going forward. The downside is that code changes would be required to existing validation code that uses VAB.
The fundamental question becomes how important it is to have code/config sharing for validation between desktop and Silverlight apps? Is it acceptable to make code changes in your desktop apps for validation to get the validation work in Silverlight? Or is it essential that the validation attributes and configuration come across unchanged from a desktop/server app using VAB into your Silverlight clients?