I downloaded the CTP of RIA Services for Silverlight along with accompanying documentation this morning. I have read the documentation and wanted to share a few thoughts on this product.
The product looks very promising to me. Here is an overview of the key features. You can configure RIA Services to use ether Linq to SQL or Entity framework as data access layer, which gives you flexibility along with possibility to use services over non-SQL Server databases. You can quickly generate service class directly off your EF or LTS data model. This means direct support for RAD application development. There is no difference in accessing the service from Silverlight client in comparison to plain WCF service. The RIA Services also support validation via custom attributes. It has built-in attributes such as required field or minimum / maximum string length attribute. These attributes are setup on metadata class that corresponds to the entity class it is designed to validate and enhance. In addition to pre-built attributes you can create custom validation via custom validation attribute. You can also share classes between client and server side via shared class (decorated with Shared attribute). You can also define custom queries on your data context. You can use the following Linq clauses for querying: where, orderby and skip or take. You also have support to delete, insert and update operations. All CRUD operations are supported either via attributes or naming conventions for access methods. There is also built-in change tracking and ability to revert changes via interfaces: IEditableObject, IChangeTracking, IRevertibleChangeTracking, IEditableCollection. There is also support for authorization via custom attributes as well.
One interesting thing to notice is that the code for client side is entirely generated by RIA Services framework. So, on the client side you do not see any code – it is in hidden classes under the project. Very nifty trick.
One last note – RIA Services framework seem to implement a lot of the features that CSLA for Silverlight has. Almost feels like the authors of RIA Services were quite familiar with CSLA for Silverlight 🙂