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

Mhadonis

using OpenRiaServices.DomainServices.EntityFramework;
using OpenRiaServices.DomainServices.EntityFramework.ObjectContextExtensions;

[EnableClientAccess()]
public class DomainService1 : LinqToEntitiesDomainService<CustomerAddressEntities> // Error Line
{
public IQueryable<CustomerAddress> GetCustomerAddresses()
{
return this.ObjectContext.CustomerAddresses;
}
}


ERROR

The type 'CustomerAddressEntities' must be convertible to system.data.entity.Core.Objects.ObjectContext in order to use it as parameter 'TContext' in the generic class 'OpenRiaService.DomainServices.EntityFramework.LinqToEntitiesDomainService<TContext>'

1/6/2015 5:44:16 AM
lillypad-33

lillypad_33

I'm having problems with my silverlight web project.
I installed open ria and entity framework 6.
I was able to get the web project to build, but now the client project is having issues...
I am unable to reference web.models on any of my pages, and there are 1000 errors. I feel like there is something small that I am doing wrong, but I can't figure it out.

8/17/2015 12:53:06 PM
Michael

Michael

Hi,

I'm having the same problem, server is compiling good but not my client models. I follow all migration tips from WCF RIA to OpenRia but the generated code on client side is still not generated.

The only thing I have while compiling the client project is this :

packages\OpenRiaServices.Client.CodeGen.4.4.1.1\build\OpenRiaServices.Client.CodeGen.targets(302,5): warning : The following exception occurred creating the MEF composition container:

packages\OpenRiaServices.Client.CodeGen.4.4.1.1\build\OpenRiaServices.Client.CodeGen.targets(302,5): warning : Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

packages\OpenRiaServices.Client.CodeGen.4.4.1.1\build\OpenRiaServices.Client.CodeGen.targets(302,5): warning : The default code generator will be used.

It seems that the 'CreateOpenRiaClientFilesTask' is generating those warnings.

Could you help me because I can't fix this issue since I upgraded my solution to SL5 / EF 6 / Open RIA / .NET 4.6...

Thank you,

Michael

12/21/2015 4:12:20 PM
ColinBlair

Colin Blair

The MEF warnings are always there unless you have provided your own code generator. You can safely ignore them. The requested type error may be the VS 2015 breaking change. Check the release notes for the 2.0 tooling at http://openriaservices.codeplex.com/wikipage?title=Tooling%202.0%20Release%20Notes&referringTitle=Documentation especially the link about the httpRuntime.

12/21/2015 5:22:25 PM
Michael

Michael

Thank you for the advice but I already found this note earlier and did the modification in my web.config files but I still have the problem on client side....

12/21/2015 5:41:41 PM

Chuck

Hello Colin. Thanks for your work.
I am about to install OpenRiaServices.Server NuGet package and I notice there is an OpenRiaServices.Signed.Server package also. In fact it looks like there are Signed versions of all of the OpenRiaServices packages. Can you, or anyone else actually, tell me the difference? Thank you.

2/4/2016 4:40:45 PM
rfrick

rfrick

Hi Chuck,

The signed version is only there if you need to also sign your dll's. If you are not strongly signing your code then you don't need the signed versions of OpenRIA. Hope that helps. Good luck!

2/4/2016 4:46:48 PM

Chuck

Thank you Rfrick. We do sign our xap file because we use some functions in our client that require Elevated Trust, which requires signing. Does that mean I should use the signed version of the Server, Client or both?

Do you mind one more question? I tried installing OpenRiaServices.Client and I get an error that says "Child dependencies of dependency only packages cannot mix external and project packages.". I think that by installing this package it automatically tries to install the 3 dependency packages (OpenRiaServices.Client .Core, OpenRiaServices.Client.CodeGen, and OpenRiaServices.ViewModel). This also happens when I tried installing OpenRiaServices.Silverlight. I was trying OpenRiaServices.Client to see if that fixed the error as I noticed that OpenRiaServices.Silverlight is just an alias.

2/4/2016 6:43:29 PM
rfrick

rfrick

Hey Chuck, Sorry you are having issues. I assume you are using nugget to install this into your solution in VS? I have never seen that error so we may need Colin to comment.

Without looking I think he had one signed package for each (client and server) that included all of the dependent packages.

2/4/2016 6:50:16 PM

Chuck

Well you know...stuff happens :)

Yes I am installing the package into VS2012 using the Manage Nuget Packages tool.

2/4/2016 6:56:14 PM
1 2 3 4 5
Notify me when new comments are added to this post
Save comment