11
votes

We are in the middle of creating an n-tier Silverlight LOB application and are considering the use of .NET RIA Service. We are unclear where this fits in relation to our current WCF service API. Our Current architecture is:

Silverlight <--> WCF Service <--> Business Logic <--> Entity Framework Model <--> Database

Having watched Nikhils Mix 09 presentation it would appear that .NET RIA Services would replace our WCF and BusLog sections:

Silverlight <--> RIA Services <--> EF Model <--> DB

Which is fine, expect that we need to have a standard SOAP endpoint API exposed for use by other applications (Biztalk,Integration etc). Can .NET RIA Services be exposed as SOAP endpoints without the asynchronous requirement?

How easy is it to implement a WCF service over a .NET RIA Service? Do you know any good online examples of this?

Thanks, Mark

2

2 Answers

10
votes

Yes – In the next CTP for RIA Services we will have some very nice support for defining WCF service (via Astoria and eventual vanilla WCF) that exposes your business logic in RIA Services. So you’d have two heads on your RIA Services implementation.

Silverlight <---> RIA Services <---> EF Model <---> DB WCF Services <--->

I’d say this model makes sense if the primary goal is the Silverlight application, however if the primary goal is the WCF service, I’d hang with the model you have today.. Does that help?

..brad

0
votes

We're looking at the exact same scenario. Right now, we're thinking of going with this model:

Silverlight <--> RIA Services <--> WCF Service <--> Business Logic <--> Entity Framework Model <--> Database

We will be able to host our WCF services in a variety of bindings. We'll use an inProc call from RIA to WCF for the Silverlight app. For external consumers of the WCF services, we'll host them with a wsHttp endpoint.

Thus in our scenario we get the best of both. RIA services becomes part a set of presentation services for our app that eases the burden of programming the Silverlight app (i.e. async). The downside is that we've added an extra layer.

Thoughts?