12/9/2013 Porting from WCF RIA Services to Open RIA Services

Other articles by:ColinBlair Colin Blair

All Open RIA Services components are installed from NuGet packages. Those packages are currently available from a MyGet feed. You can add the MyGet feed in Visual Studio on the Tools->Library Package Manager->Package Manager Settings->Package Sources screen. The URL is https://www.myget.org/F/openriaservices/

UPDATE: Open RIA Services has been released, NuGet packages are now available from NuGet,


  1. Remove all WCF RIA Services NuGet packages and DLLs. Look for DLLs with the System.ServiceModel.DomainServices and Microsoft.ServiceModel.DomainServices namespaces.
  2. Install the OpenRiaServices.Server package for all project that previously referenced System.ServiceModel.DomainServices.Server
  3. If you are using Entity Framework 6, install the OpenRiaServics.EntityFramework package.
  4. If you are using Entity Framework 4 (ObjectContext), install the OpenRiaServices.EntityFramework.EF4 package.
  5. If you are using Entity Framework 5, you will need to upgrade to 6.
  6. Install the OpenRiaServices.Silverlight package in the Silverlight projects that previously had the System.ServiceModel.DomainServices.Client DLL.
  7. The OpenRiaServices.Silverlight package includes the OpenRiaServices.Silverlight.Core, OpenRiaServices.Silverlight.CodeGen, and OpenRiaServices.ViewModel packages in one install.
  8. Unload the Silverlight project and edit the project file.
  9. Find the LinkedServerProject tag inside the project file. Rename the tag to LinkedOpenRiaServerProject and then reload the project. Repeat for any other projects that are RIA Linked.
  10. Added 4/14: If you are using the RiaClientUseFullTypesNames in the project file, rename it to OpenRiaClientUsefullTypesNames.
  11. Find all references to the System.ServiceModel.DomainServices namespace in your solution and replace them with OpenRiaServices.DomainServices.
  12. In the web.config, the PublicKeyToken for the RIA Services dlls needs to be changed to null in addition to changing form System.ServiceModel.DomainServices to OpenRiaServices.DomainServices
  13. If you are using the DomainDataSource, then remove the System.Windows.Controls.DomainServices dll and install the OpenRiaServices.Silverlight.DomainDataSource package. The namespace changes match the dll changes.








Breaking Changes

  • DbDomainService does not support older version of Entity Framework.
  • Open RIA Services dlls are not strongly signed.
  • Open RIA Services does not support partial trust.

This content has not been rated yet. 

Comments

rfrick

rfrick

Thanks for all the hard work so far. Where can I go to see what has changed besides the namespaces?

1/12/2014 6:50:23 AM
ColinBlair

Colin Blair

Most of the changes are foundational, like you don't need to install RIA Services on your build server anymore. There is a complete list on the latest blog post.

1/13/2014 9:40:18 PM

me

Hi. I'm planing to migrate our project with ~500 tables ~300 viewModels. From RiaServices and EF5 to OpenRiaServices and EF6.

1/27/2014 8:36:13 PM
rfrick

rfrick

I would be very interested to see how it goes for you. We also have a very large RIAServices application and I was hoping to give it a try mid February. Good Luck!

1/27/2014 9:19:51 PM

Dave

This myget.org is really slow in China......
why not use nuget?

2/3/2014 3:03:10 AM
ColinBlair

Colin Blair

We are using myget for prerelease because we have greater control and MyGet has a build server we can use. Full releases will be put up on NuGet. I am thinking that I will only put up prerelease versions on NuGet that require other prerelease NuGet packages.

2/3/2014 3:42:46 PM

ME

Can't migrate to OpenRiaServices, because we are using DevExpress controls and those controls expects System.ServiceModel.DomainServices.Client.Entity() and System.ServiceModel.DomainServices.Client.DomainCotext() in DevExpress.Xpf.Core.ServerMode.RiaInstantFeedbackDataSource()

DX sample http://demos.devexpress.com/democenter/Silverlight/?GridDemo#Module=WCF_RIA_Services?Product=DXGrid.SL

2/25/2014 10:53:06 AM

ME

https://www.devexpress.com/Support/Center/Question/Details/Q558852

2/25/2014 10:56:04 AM
ColinBlair

Colin Blair

One problem DevExpress is going to have is that Open RIA Services is not strongly named and I would assume that their assemblies are strongly named. We don't use strong names because Microsoft recommends against it.

If all you need is EF 6 support, as one of the DevExpress people somewhat inaccurately pointed out, RiaServicesContrib.EntityFramework provides EF6 support for WCF RIA Services.

2/25/2014 6:06:38 PM

joachim welker

Hi,
I am in the process of switching from Microsoft RIA services to OpenRiaServices but now I encountered an issue when trying to exchange System.Windows.Controls with OpenRiaServices.Controls in the *.g.cs files.
Here I get the error: "The type or namespace name 'DomainDataSource' does not exist in the namespace 'System.Windows.Controls' (are you missing an assembly reference?)"
And the problem is that I am not able to exchange the reference to System.Windows.Controls in these files manually as I did in the other sources.
What is it that I am missing? Thanks a lot in advance for your help.

4/9/2014 9:48:34 AM
1 2 3
Notify me when new comments are added to this post
Save comment