Amazon.com Widgets Welcome to WCF RIA Services Beta! - Brad Abrams - Site Home - MSDN Blogs

Brad Abrams

Design Guidelines, Managed code and the .NET Framework

Welcome to WCF RIA Services Beta!

Welcome to WCF RIA Services Beta!

  • Comments 40

Today at PDC09, Scott Guthrie Announced the beta of WCF RIA Services.  As you may know RIA Services is a set of end-to-end experiences that makes it as easy to build Silverlight based n-tier applications as it is to build traditional 2 tier apps.   I am very excited about this release as it represents a lot of great feedback we have heard from many of you. 

A few goodies in this release based on your feedback

  • You told us you wanted to get up and running with the UI quicker, so we enabled the “DataSources” window that allows you to drag and drop “tables” exposed by your Domain Service onto the form and get meaningful UI to start with.   No more guessing about the Xaml syntax for databinding, or incantation for layout, etc.

image

  • You told us error handling was not intuitive\consistent with the rest of the framework, so we we simplified error handing both on the server and client.  This will help errors get noticed quicker at development time so they don’t sneak into production
  • You told us you wanted Inheritance support from the Data Model to just flow through the Domain Service to the client, so we gave it to you, works exactly as you’d expect.
  • You told us you didn’t always want to expose DAL types to the client, but rather a custom “presentation model” where you can customize the shape of the entities, so we gave it to you.. and in a complete way where we handle all  the update and error cases.
  • You told us you wanted the fastest possible communication channel between the client and the server, so we gave an optimized binary channel by default! 
  • You told us it was a pain to install so we integrated the RIA Services installer into the Silverlight 4 installer making it very easy to get started.   We also created a “server only” installer to use on your production boxes.   
  • You told us real world data models use a lot of Compositional hierarchy (Order->OrderDetails) so we have improved the handling of this scenario by making it more built in. 
  • You told us you wanted GAC *and* bin deployment.  So we gave it to you. By default RIA Services look for our server assemblies in the GAC as this is the most secure and efficient model, but just like ASP.NET MVC, you can simply select “copy local” in your VS project and those assemblies work fine bin deployed. 
  • You told us you really liked the easy on ramp with the Business Application Template, but that you wanted it to be more complete.  So we added globalization support, user state example, persisted sign in, etc. 
  • You told us you wanted to go live today (and many of you already have) so we are providing .NET Framework 3.5\Visual Studio 2008\Silverlight 3 based bits that are ready for you to go live on today!   We hope that this release will be a bridge to you that will make it easier for you to (eventually, when you are ready) move to our finally RTM bits which will be on .NET Framework 4, Visual Studio 2010 and Silverlight 4. 
  • You gave us a LOT of other feedback as well, some of which will come in V1, and some will have to wait until the next releases, but please keep it coming. 

WCF: What’s in a Name?

Many of you will notice the slight change in the branding around RIA Services.  RIA Services is now part of the WCF family (as is ADO.NET Data Services, which is now WCF Data Services).  This branding change is a direct result of some significant work we are releasing in this beta and it hopefully makes it very clear that we have one technology base for doing services on the .NET platform and that is WCF. 

Our driving principle with using WCF has been “All the power and none of the complexity”.  That is we wanted to enable all the power that WCF brings (for example, the binary end-point, data contract serialization, all the extensibility points, fully management support with the AppFabric we announced yesterday).  But none of the complexity.  Just look at the web.config file… there is no  tedious config to get right.. there is no fragile contract interface and implementation class to keep in sync, none of the deployment headache around configuration.  This is still the RIA Services model where you can expect a deep simplicity across development, deployment and maintenance.  We accomplish this by creating a custom service host at runtime based on how you define your DomainService.

I am also very excited to get OData support into RIA Services.  OData is the protocol from “Astoria” that is already widely used in products like Sharepoint and PowerPivot.  Look for more details on that in future. 

Check out Henrik Frystyk Nielsen’s talk Developing REST Applications with the .NET Framework which will cover how WCF Data Services and WCF RIA Services work together. 

Call to Action

1. Please install Visual Studio 2010 and Silverlight 4 (this includes RIA Services)

2. Build something cool and tell us about it!

3. Send in your feedback.. we want to hear what rocked, and what needs more polish

 

(2/15/10) Note: This does not work on VS2010 RC -- Look for an update in the next month or so.

 

  • I hope there'll be an RTM version for 3.5 and Silverlight 3 for those who aren't in a position to upgrade right away.

  • Kevin - You can go-live with 3.5 and SL3... we think of that as a nice bridge to VS2010\.NET 4 and SL4 because we know you can't move their right away on all your projects.  

    That said, it doesn't look like we will have the cycles to drive the 3.5 and SL3 version all the way to RTM level of quality.  

  • Hello Brad,

    Is there any way of using the RIA Services capabilities over dynamic data sources?  This is the case when the application connects to a selectable data source at run time meaning that metadata information would be only available when the source has selected OR the some other cases where the metadata information would be transmitted at run time by a REST Service.

    Any comment or suggestion would be greatly appreciated!

    Thanks!

  • Do you ship SL4 and RIA togther with VS Studio 2010? One 'Problem' is that we can't use EF 4 with VS Studio 2008....

  • Hi,

    I am wondering why I should go for this while the same can be achieved using webservices ?

    Please give some valid points for me to explain the advantages about this if I face customers .

    Thanks,

    Thani

  • Hi Brad,

    Will Silverlight ever get real serialization like full trust WPF apps has?

    We have a very strict domain model today which requires serialization to work with fields only and this has been impossible in both SL and medium trust WPF apps.

    We want to be able to use our domain model in both the Silverlight app and the WCF server side and we cannot resort to using attributes only like RIA services suggests as this would seriously compromise the domain model of our entire architecture.

    Thanks,

    Hans

  • Datis - Yes, the fully dynamic scenario is one we are going to continue to look at... there is a lot we can do end-to-end to support that.  

    I have seen one demo where the validation ruled are pulled out of the datamodel by a shared code custom validation rule.  that is starting to be pretty dynamic..

  • > Do you ship SL4 and RIA togther with VS Studio >2010? One 'Problem' is that we can't use EF 4 with >VS Studio 2008....

    Daniel  - Yes, as you know RIA Services does not require EF, but you are right on 3.5 you have the option of using EF v1...  

  • >I am wondering why I should go for this while the >same can be achieved using webservices ?

    Thanigainathan,

    Yes, everything we are doing here can be done with a plain WCF service (after all it is simply built on top of WCF)... So the real benefits are in getting ride of the plumbing code between the client and the server.  think about how much plumbing code there is when doing something like paging, sorting and filtering.. how about building up a change set, and doing validation?  RIA Services saves you from all of that and let's you focus on YOUR business problems with just YOUR code.  

  • > Will Silverlight ever get real serialization like full trust WPF apps has?

    Hans --  I don't know what the plans are.. I will pass on your comments to the right folks.  

  • Just read SL4 will be able to run in full trust - doesn't this mean that serialization via reflection actually should work by default?

  • I totally agree with Hans, without full serialization we can't work with DDD on both sides.

    Today with WPF and WCF we can transfer objects over the wire that supports encapsulation (private fields/setters). With the same assembly at both sides the framework makes all the magic to rebuild our object when it arrives with reflection so we still can have data encapsulated. And with our methods.

    I really want to see the same functionality in Silverlight cause as I can see it I can't work the way I want and think is right.

  • I too echo what Hans and Niclas have said about full serialization.   That is how I want to write my apps--I am not writing web services and don't care about interoperability, I'm just writing a multi-tiered application.   The beauty of silverlight is that I get .NET in the browser.  So I just want to share my business object assembiles on both sides and seamlessly pass them over the wire, honoring inheritance, encapsulation, etc.  I have struggled a little bit to try to figure out if I might somehow get this to work, but I would very grateful if you guys did it for me instead.  :)

  • I could be wrong, but the link on this page says we are downloading v1.0.0.14 which is the beta, but when you install it it actually installs the Preview which is v1.0.0.11.  Am I crazy, or is something screwed up?

    http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&displaylang=en

  • It's disappointing that RIA Services won't RTM with full Silverlight 3 compatibility. I understand that it can be used during beta with SL3 and that includes "go-live" capabilities.

    But it means that anyone looking at releasing a production app with RIA Services next year now has to make that app targets SL4 - which requires .NET 4 - which requires Studio 2010. That's a lot of beta dependencies for production efforts to take on.

    I've no problem with taking on an RIA Services beta dependency with SL3/.NET 3.5 and trusting that RIA Services will "get there" early next year. But if I do that now, it means I have to plan for an SL4/.NET4/VS2010 conversion effort if I want the application to be on production bits when it releases. One beta variable in the mix I can live with... four of them? Not likely (RIAS, SL4, .NET4, VS2010).

    I appreciate the "cadence" of Silverlight releases and frequent improvements. But taking on multiple layers of dependencies like this works against being able to adopt those releases.

    So... you're starting a LOB Silverlight app today that you want to deploy in production in a 4-5 month timeframe *and* you think is a candidate for RIA Services -- what toolset do you use?

Page 1 of 3 (40 items) 123