The goal of Project Niagara is to democratize the validation support. The project wants to help developers add validation support to ADO.NET Data Services as well as Web Services in Silverlight. In addition, it has the goal of allowing multiple ways to supply the validation metadata to the different data access strategies. As it is my opinion that there are scenarios where attributes are not the best idea.
The deliverables for this project will include:
At this point the project is very young (version 0.1) and a lot of the pieces are not ready but I am looking for help! I can’t write it all. Please visit the CodePlex site and take a look at what I want to accomplish and send me a message if you want to help out:
Currently, I have built up some infrastructure to allow the whole project. This inlcudes a first pass at the DSL. The one working pieces is the ValidatingDataServiceUtil which allows you to manually generate (via the command-line) an ADO.NET Data Service proxy that includes support for validation attributes and calling validation during two-way binding.
The current version does not have a release yet, but if you’re brave and willing to report bugs, you can get the source and build it yourself.
To use the ValidatingDataServiceUtil, you can call it from the command-line:
NiagaraDataServiceUtil.exe http://localhost:14000/GameService.svc ..\Niagara.Sample.Web\bin\Niagara.Sample.Web.dll .\GameService.cs Niagara.Sample.Data /v /b /c:V2
While more complex than the original DataSvcUtil, the arguments are pretty straightforward:
This is an alternative to using a service reference. We hope to move this to be a project item instead of a command-line for the project.
NOTE: It requires the ADO.NET Data Services CTP2 to work.
Let me know what you think!