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.

Picture1

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 :

Picture2

 

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 :

Picture3

Comments are closed.