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.

Rated 3.67, 3 vote(s). 

Comments

Chuck

Ok... using VS2015 I am able to successfully install the nuget packages as described. Question: In step 1, do you just delete the WCF RIA Services dll files or do you uninstall WCF Ria services altogether?

2/11/2016 4:38:10 PM
ColinBlair

Colin Blair

@Chuck
Just remove the dlls, WCF RIA Services does not need to be uninstalled.

2/11/2016 9:52:54 PM

Chuck

Thank you Colin.
I have followed all of the steps. When I build my solution, the server side builds, but the Silverlight client side does not with the following error:

file 'C:\Code\WTI_G1\ChuckTest\Source\WTI_G1\WTI_G1\Generated_Code\WTI_G1.Web.g.vb' could not be found

WTI_G1.Web is the name of my server side project. Is there something else I need to install to get this file to generate from the server?

Thanks

2/12/2016 4:48:29 PM

Chuck

A bit more background might be helpful. In addition to moving from Open Ria Services, we are moving from Visual Studio 2012 to Visual Studio 2015. The app uses both c# and vb.net. EF version is 4 (I installed proper NuGet package for that according to instructions). I changed LinkedServerProject to LinkedOpenRiaServerProject in the client project file.

Thanks for any help!

2/12/2016 4:56:02 PM

Chuck

Upon further review...
I did the trick of using $(LinkedServerProject) inside of the <LinkedOpenRiaServerProject> tags in the Silverlight project file, and I now get the autogenerated file in my project. However, the generated file doesn't have any of my entities, and it is Importing the System.ServiceModel.DomainServices.Client namespace instead of OpenRiaServices.DomainServices.Client namespace. I feel I'm missing one little thing here...

2/12/2016 6:14:16 PM
papuashu

papuashu

At a first glance, $(LinkedServerProject) is a macro which gets substituted with the <LinkedServerProject> tag's value which in turn produces the "old" namespace (System.ServiceModel.DomainServices.Client). Try $(LinkedOpenRiaServerProject).

2/18/2016 12:20:53 PM

Sumraya

We have our project in VS 2010, EF 4.0 for DB2 using third party drivers, WCF Ria Services V1.0 SP2, DB2 database, .Net framework 4.0 version currently. We are planning to upgrade to VS 2015, .Net 4.5.2, EF 6, Open Ria Services is this transition smooth or would it be a longer process ?

We are using objectcontext for all our operation currently now should be change lot of code if we upgrade to EF6 for all our services ?

I tried creating a sample with open ria and it has created dbcontext when I add new open ria domain service and trying to understand how to consume that in the Silverlight project, calling it in VM. can you provide me with a sample application for that please...VS 2015, EF 6.0, .Net Framework 4.5.2, DB2 database(using progress direct third party ado.net entity framework provider)

I mean to say should I upgrade to open ria service using VS 2010

8/5/2017 1:45:57 PM

Taylor

Absolutely loved the entire post, quite interesting and had a great time going through it. Thanks for sharing this with us and I hope to see more such good shares from you.

1/28/2018 9:47:42 PM

Taylor

Absolutely loved the entire post, quite interesting and had a great time going through it. Thanks for sharing this with us and I hope to see more such good shares from you.

1/28/2018 9:48:40 PM
1 2 3 4 5
Notify me when new comments are added to this post
Save comment