WPF client hangs on Save() since upgrade to 4.5

WPF client hangs on Save() since upgrade to 4.5

Old forum URL: forums.lhotka.net/forums/t/11861.aspx


kmavis posted on Friday, March 01, 2013

I am a member of a team working on a largish app that uses CSLA. This app has both a Silverlight and a WPF client. The data portal runs in a Windows Service. We recently upgraded from CSLA 4.3 to 4.5. We are targeting Framework 4. The Silverlight client seems to be working fine. The WPF client however, hangs whenever we try to save changed data. In fact it hangs on the line "response = await tcs.Task;" in Csla.DataPortalClient.WcfProxy.Update.

Anyone have any hints as to what might be causing this? I've been chasing this for a while and I'm not getting anywhere.

 

RockfordLhotka replied on Friday, March 01, 2013

Please try the current beta version (4.5.12, or 4.5.13 this weekend), because this is a known issue that should be addressed at this time.

The next release will be 4.5.20, and I anticipate this coming out in about a week.

kmavis replied on Saturday, March 02, 2013

Rocky, thank you for the response.

I used VS12's Package Manager app to update to the CSLA 4.5.12 Beta. Now when I try to build the solution I get "Error 55 A stable release of a package should not have on a prerelease dependency. Either modify the version spec of dependency "CSLA-Core (≥ 4.5.12-Beta)" or update the version field. Vass.UI.Eng" for every project in the solution. I think it may be due to CSLA-Core's dependency on Microsoft.BCL.Async 1.0.14-RC.

Comments in the NuGet forum seem to indicate that this behavior is intentional. Have I done something wrong? Or is there a work-around?

RockfordLhotka replied on Sunday, March 03, 2013

What is Vass.UI.Eng?

It is also possible that you were using the old async library and that doesn't upgrade smoothly to the new one. I have had to manually remove and reads nuget references to the async library.

kmavis replied on Monday, March 04, 2013

Vass.UI.Eng is one of the projects in our solution. I expect it was the project that was referenced by that particular instance of that error message. It looked like I got an error for every project that referenced CSLA.

Sorry, I'm not sure that I know what you mean by "the old async library". Is that something prior to the "async targeting pack"?

RockfordLhotka replied on Monday, March 04, 2013

The async targeting pack changed pretty radically a few months ago. The one targeted by the latest CSLA is not the one targeted by version 4.3.

The old async targeting pack doesn't properly upgrade to the new async targeting pack, causing all sorts of build issues.

To fix those, I have found it necessary to manually remove any async targeting pack references in every one of my projects. Then I reference the current async targeting pack in every one of my projects. Then things work.

kmavis replied on Monday, March 04, 2013

Thanks Rocky. I understand now. I don't believe that is what is happening in our case. We just added the async targeting pack to our app at the same time we upgraded to CSLA 4.5.10. And FWIW, that is also when we upgraded to VS12 and was our first experience with using NuGet.

I appreciate your help on this issue. We have a sprint demo this week that we need to be ready for, so we are about out of time. Our current plan is to replace the more mainstream calls to Save() with calls to SaveAsync() wrapped in async methods. The way we are doing it is on the Q&D side but it should be good enough to get us through the demo. Then when 4.5.20 comes out we'll likely upgrade to it and rollback our fixes.

RockfordLhotka replied on Monday, March 04, 2013

I just put 4.5.13 beta into nuget, so you might try that before going back. This is the last beta release before 4.5.20 - in fact it might _be_ 4.5.20 if we don't fix any bugs this week.

kmavis replied on Monday, March 04, 2013

Thanks Rocky. I tried but I never could get rid of that "A stable release of a package should not have on a prerelease dependency..." error. One difference though is that I am only seeing that on the projects that reference CSLA -Silverlight. I think that's a change from 4.5.12 as I'm nearly certain I was getting that error for all of our projects that referenced CSLA. Mindful of your comments earlier in this thread, I went through and removed all of the NuGet packages for our solution. Then I added CSLA 4.5.13 Beta and let it get whatever it wanted. No joy.

RockfordLhotka replied on Monday, March 04, 2013

I just created a new SL5 project and used nuget to add the 4.5.13 CSLA Silverlight package. That added the new async targeting packages. This builds and runs fine.

Copyright (c) Marimer LLC