Rank: Advanced Member
Groups: Authorized User, Developers Joined: 5/30/2020(UTC) Posts: 125
Thanks: 14 times Was thanked: 3 time(s) in 3 post(s)
|
I started tinkering with the source today by trying to update the NuGet packages. I ran into the following issue:
1) When I updated Castle.Core to the latest version, I received a version mismatch. It looks like NHibernate.Bytecode.Castle.dll relies specifically on Castle.Core v4.1.1. This library was included directly via the /Lib folder rather than via a NuGet package. When I looked at the dependencies of NHibernate.Bytecode.Castle package in NuGet, it appeared to be older than what is included in the /Lib directory. Where did this version of NHibernate.Bytecode.Castle come from?
2) I tried to update to the latest version of NHibernate. It looks like beginning with version 5.2.0 they changed the way they eager fetch with QueryOver. Unfortunately, I cannot find documentation on the new syntax, so the highest I can go is 5.1.7 without breaking the AC repositories. How big of a priority is it for AC to use the latest supported versions of libraries in their code? We get a little nervous about potential security issues when things start falling too far behind.
|
|
|
|
Rank: Administration
Groups: Admin, Administrators, HelpDesk, System, Authorized User, Developers, Registered Joined: 10/5/2018(UTC) Posts: 175
Thanks: 8 times Was thanked: 17 time(s) in 15 post(s)
|
Quote:1) When I updated Castle.Core to the latest version, I received a version mismatch. It looks like NHibernate.Bytecode.Castle.dll relies specifically on Castle.Core v4.1.1. This library was included directly via the /Lib folder rather than via a NuGet package. When I looked at the dependencies of NHibernate.Bytecode.Castle package in NuGet, it appeared to be older than what is included in the /Lib directory. Where did this version of NHibernate.Bytecode.Castle come from? Looks like we need to clean up this old reference which is no longer needed. In the older version of Nhibernate probably before 3.3, you had to use the Byte Code proxy. In later releases, they made it part of the NHibernate assembly itself so you don't have to use external DLL. If you look at the Website/bin folder you will notice that this DLL is never copied to the bin folder and is not in use. We overlooked the dead reference in CommerceBuilder project, thanks for pointing it. Quote: 2) I tried to update to the latest version of NHibernate. It looks like beginning with version 5.2.0 they changed the way they eager fetch with QueryOver. Unfortunately, I cannot find documentation on the new syntax, so the highest I can go is 5.1.7 without breaking the AC repositories. How big of a priority is it for AC to use the latest supported versions of libraries in their code? We get a little nervous about potential security issues when things start falling too far behind.
The package updates are important but we would also want to make sure that things are stable when we upgrade any packages. I did a test upgrade a while ago to 5.3.6. You are correct about eager loads, I had to update the code to run the tests. I found an issue with that particular release, which was reported and later resolved by Nhibernate Team in 5.3.7. We will definitely like to make the package upgrades when we find it's viable for the application. Edited by user Wednesday, June 16, 2021 11:20:02 AM(UTC)
| Reason: Not specified
|
|
|
|
Rank: Advanced Member
Groups: Authorized User, Developers Joined: 5/30/2020(UTC) Posts: 125
Thanks: 14 times Was thanked: 3 time(s) in 3 post(s)
|
Mazhar, thank you for clearing that up. I had not realized that the Bytecode provider was not being copied to the bin directory. Now it makes sense why I cannot find a newer version :)
I'm glad to hear package updates are a priority and that NHibernate had a specific issue that prevented upgrade, but was reported and hopefully fixed.
|
|
|
|
Rank: Administration
Groups: Admin, Administrators, HelpDesk, System, Authorized User, Developers, Registered Joined: 10/5/2018(UTC) Posts: 175
Thanks: 8 times Was thanked: 17 time(s) in 15 post(s)
|
BTW I updated the eager loads as below for my upgrade test deprecated code Code:
ICriteria productOptionsCriteria = (ICriteria)criteria.Clone();
productOptionsCriteria.SetFetchMode("ProductOptions", FetchMode.Eager)
.Future<Product>();
updated code Code:
ICriteria productOptionsCriteria = (ICriteria)criteria.Clone();
productOptionsCriteria.Fetch(SelectMode.Fetch, "ProductOptions")
.Future<Product>();
Also, you may see the compiler complaining about session.Transaction property which is replaced with a method deprecated code updated code Code:
session.GetCurrentTransaction()
Quote:but was reported and hopefully fixed. Yes for that I appreciate the Nhibernate development team, the issue was addressed in 5.3.7 and can be seen in their release notes. UPDATE: I was testing against 5.3.6 and the fix was made in 5.3.7. Edited by user Wednesday, June 16, 2021 11:34:30 AM(UTC)
| Reason: Not specified
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.
Important Information:
The AbleCommerce Forums uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close