Geeks With Blogs
Josh Reuben
Integrate RIA and Data Services
  why do we need 2 high level service abstractions?
·        Aggregate and expose entities from multiple sources including other RIA / Data Services
·        Navigation Properties on Derived Types
·        Any / All LINQ Operators
·        OData Binary Serialization Format - Provide support for a binary wire format (to supplement JSON/ATOM).
·        Containment / Hierarchical Models - If I have a schema that has Orders and OrderDetails, I dont want /OrderDetails to be direclty accessible. I only want it to be readable through its parent: /Orders(1)/OrderDetails. See
·        MEF pluggable Custom serializers
·        Support async data change notification subscriptions from the server
·        Oauth Integration for App and Endpoint Security
·        Compression of transferred data - gzip, deflate
·        Caching - make HTTP and output caching
Multiplatform Support
·        support for Windows Phone 7
·        Support for WPF
·        Support for Self-hosted wcf ria services
EF Support
·        Support for EF Complex types
·        Allow multiple DomainServices to share the same Entity
·        Ability to Include Navigation Properties Based on M to M relationships  - Currently, when you apply the Include and Association attributes in the Domain Service MetaData class, you cannot add an association based on a many to many relationship since the keys don't match
·        POCO Support
Code Generation
·        Generic Validation Generation - generic error messages for required fields, as part of validation in Metadata should be generated
·        CodeGeneration should be T4 based to enable customization
·        Visual Studio Designer support for managing domain services
·        Efficient Context Refresh - a refresh on a domain context should bring all loaded entities in the context up-to-date – currently supported using
·        place Generated Service Code within Regions
·        EF EDMX files should allow custom data annotations to be stored on in the CSDL and pushed into the generated domain service
API Enahancements
·        Fluent-API based metadata (to replace buddy classes) - Prototype/description at
·        Syncronization services support - Offline data - enable saving and retrieving collections to the local store.
·        Aggregation - Support for OData Provider data source to feed other data services
·        Transaction support from client - So that multiple calls to SubmitChanges() of different domain contexts can we wrapped into a TransactionScope()
·        Integration with velocity (cache)
·        Domain Context support for RX - expose IObservable<T> based operations and entitysets - simplify the asynchronous programming model on the client side.
·        DefaultValueAttribute, Computed property and ReadOnly support
·        Cloning and merging of domain contexts - It is only possible to create empty domain contexts – it would be good to be able to derive a new context from an existing one (including its entities), make changes to it and populate the changes back to the original context without making any domain service call. Eg multi-level-undo.
·        Use shared binary instead of shared source (foo.dll instead of *.shared.cs)
·        Improved Data Annotation support through customizable sources - Rather than relying on "ugly buddy" classes for metadata via the MetadataTypeAttribute, provide extensible base classes for customization.
Client Enhancements
·        MVVM DomainDataSource – split into components – paging, hierarchial master-detail data loading functions could be utilized from a ViewModel. make PagedEntityCollectionView and EntityCollectionView public; use the DomainDataSource like a strongly typed, RIA Services compatible version of the PagedCollectionView.
·        Allow EntityQuery<T>.Select() to project entities from the RIA Client without requiring creating DTOs at the server
·        Extensible Filter Support for DomainDataSource  - define custom filter classes against an EntityQuery. Filter groups -  And/Or operator
·        AcceptChanges() method on DomainContext  - use when SubmitChanges fails because of a non-fatal server exception. In that case the transaction was still committed and changes should become effective client-side as well.
·        Prism support
·        client side Domain Model extensions - Support creating extension computed properties a on an object (eg SalesOrder.Total) based on a change in one of its siblings (eg LineItem.Price) – with notification support.
Posted on Monday, September 13, 2010 2:09 PM NET 5.0 | Back to top

Comments on this post: WCF RIA / Data Services 5.0 - not quite there yet!

# re: WCF RIA / Data Services 5.0 - not quite there yet!
Requesting Gravatar...
These ideas are new to me. It's good to learn all of these information. - Antiquities of California
Left by Lira Sale on Dec 22, 2016 4:40 PM

Your comment:
 (will show your gravatar)

Copyright © JoshReuben | Powered by: