RIA Services July 2009 preview major changes
1) DomainContext class changed significantly
One of improvements is adding support for Asynchronous Domain Operations. DomainContext supports three kinds of domain operations : Query, Submit and Invoke .
I have example where I call Load method of DomainContext and the asynchronous Load call returns a LoadOperation instance immediately or you can add your custom code on load completed:
LoadOperation<Customers> load=this.context.Load(this.context.GetCustomersQuery());
load.Completed += new EventHandler(load_Completed);
this.dgGrid.ItemsSource = load.Entities;
2) DomainDataSource API Changes
Don’t break designer anymore. Minor paging problems are also solved.
Previously :
_domainDataSource.LoadMethodName = “GetCustomers”;
_domainDataSource.LoadParameters =new System.Windows.Data.ParameterCollection();
Now :
_domainDataSource.QueryName = “GetCustomers”;
_domainDataSource.QueryParameters =new System.Windows.Data.ParameterCollection();
Silverlight 3 databinding improvements with ElementName allows developers to bind one UIElement to another in XAML instead of having to write event handlers.
So now I bind DomainDataSource with my DataPager like this :
Source=“{Binding Data, ElementName=_domainDataSource}”
I have attached some demo project bellow to show this.
3) New project type called .NET RIA Services Class Library
This project is used to simplify creation of N-Tier RIA services applications.
When you choose to create .NET RIA Services Class Library it generates to class library projects
one for server and and for client side. Client side middle tier project you reference from your Silverlight app and server side middle tier you reference from your server side project. Project structure looks like this :
When you add Entity context and DomainContext to .NET RIA Services Class Library project for server side and build project, MS Build will generate client side proxy for you in generated code folder on client side class library project.
Advantages of middle tier class libraries are that they can be reused in other applications but shared code (specifically *.shared.cs ) in the class libraries is not propagated to the silverlight client during code generation.
4) No more need for add [Shared] metadata attribute
and much more changes….
Demo for paging with new DomainDataSource looks like this :