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
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
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?
Related
I have a silverlight application and uses wcf ria services. The question is about the options to host the wcf ria services.
In all the articles I read says, the RIA services should be hosted on the same web application where the silverlight app is hosted.
An alternative is , we can use WCF RIA class library, but still this need to be referenced in the silverlight web app where the silverlight is hosted.
I am wondering , for a cleaner implementation , can I host the WCF RIA services in any other web apps?
The default scenario for WCF RIA Services assumes that you will create your business objects to be shared between the server and the client within your web project, and these will be replicated within your Silverlight project.
However, this scenario doesn't create an ideal separate “middle tier” where your business objects are contained within a separate assembly that can then be reused between applications.
This is where the WCF RIA Services Class Library project template comes in. It is possible, however, to move the business logic out of the Web project and into a separate class
library, using the WCF RIA Services Class Library project template. So you can have your entities and metadata classes in a separate project from your server project. But you must add a reference to it in your web project where the silverlight is hosted.
This is a reasonable thing
What is the specialty of WCF? Does WCF have any relation to HttpWebRequest, WebClient, etc? What is the main functionality of WCF?
If there is a relationship between WCF and HttpWebRequest, how can I use them together?
WCF is meant for designing and deploying distributed applications under service-oriented architecture (SOA) implementation.
WCF is designed using service oriented architecture principles to support distributed computing where services have remote consumers. Clients can consume multiple services; services can be consumed by multiple clients. Services are loosely coupled to each other. Services typically have a WSDL interface (Web Services Description Language) that any WCF client can use to consume the service, regardless of which platform the service is hosted on. WCF implements many advanced Web services (WS) standards such as WS-Addressing, WS-Reliable Messaging and WS-Security. With the release of .NET Framework 4.0, WCF also provides RSS Syndication Services, WS-Discovery, routing and better support for REST services.
WCF is Windows Communication Foundation. It is a framework for composing data-driven services. These could be web services, but they don't have to be.
You're probably best off reading this:
Windows Communication Foundation is...
What is the difference between WCF Data Services and WCF Web API?
WCF Data Services is a framework on top of WCF that makes it easy to create RESTful services that "talk" Atom/OData based on specified LINQ context (object model, LINQ2SQL or Entity Framework).
The new WCF Web APIs are currently under development, and will enhance the existing WCF framework to build better HTTP/RESTful services in general.
--larsw
We are in the middle of the development cycle of our new product. When we designed it about a year ago, we chose WCF Services->Silverlight combination. Some of those WCF services are also consumed by WPF, Win Forms and third party Java clients. I have been reading about RIA Services lately.
My questions are
What are the advantages that we get using WCF RIA Services over plain WCF services?
Can a WCF RIA service can be consumed by a Java Client?
Does it make sense some part of the product with plain WCF services and some parts in WCF RIA services?
Are there any issues with configuration of these two parts?
What can WCF RIA buy us over plain WCF services?
Thank you for inputs,
Suresh
We currently have a Silverlight 2.0 application communicating with a set of WCF web services. These services communicate with other WCF services for business logic.
Client DMZ Intranet
Silverlight -> WCF Web Service Gateway -> WCF Biz service -> DB
The WCF web service gateway resides within the DMZ.
We see that Ria services can replace our WCF web Service gateway, but this means that it will be installed in our DMZ and have access to our database... Is this secure?
We also seem to loose our business logic WCF services... I would need to put the business logic within Ria services (as it has connection to the database and holds the domain...).
What is the recommended patter for Ria services? Where does it fit?
What is the approach for companies that already invested in WCF web services? Can they use RIA?
We are looking at this alternative, were we would expose both web services and Ria...
Silverlight -> WCF web service - > WCF biz service -> DB
-> Ria services -> DB
Any comments? I also wonder if anyone is actually using Ria in production....
Your proposal architecture with the silverlight app calling
both WCF Services and Ria services sounds fair to me.
Suppose your DB has an Employee Entity.
I can get this approach up and running, but have some issues
Suppose "the WCF biz service" accesses and modifies Employee.
does it get this data from the database directly?
(if so, is the EntityFramework edmx model shared between "the WCF biz service" and ria?)
does it in turn uses the RIA layer, and thus the EmployeeRiaProxy?
..?
Suppose you want to use the Employee Entity on your "WCF biz service" operation contract
This should not be possible in a pure SOA architecture?
Use a pure DTO data contract style approach with an EmployeeDto?
Should you use the Employee, or the EmployeeRiaProxy?
Using the Employee is not possible because the silverlight app does not know it
(or would cause another EmployeeWCFProxy type being created on the client)
Using the EmployeeRiaProxy is possible, but ties your operation contract to a
Ria proxy (pretty poor design) and assumes the service uses RIA for data access
Or should everything pass through this RIA layer? from which you call "the WCF biz service" in turn then?
Any opinions welcome!
Koen