qbo.Core.sln Upgraded to .NET Framework 4.6.1

posted Sep 2, 2016, 6:19 PM by Eric Patrick
To leverage Microsoft extension to TransactionScope when using the async/await pattern, the QBO 3 core framework has been updated to target the .NET Framework 4.6.1.

This change will break every plugin targeting .NET 4.5 or earlier.

Most of the plugins in trunk have been updated; more precisely:
  • Every plugin found in the qbo.Core.sln
  • Plugins in qbo.Amazon.sln
  • Plugins in qbo.Rebex.sln
  • Plugins in qbo.Queuing.sln
  • Plugins in qbo.Google.sln
To update your plugins (cooking time: 2 minutes):
  • Right-click on your project, choose Properties
  • From the Application tab, change the Target Framework to .NET Framework 4.6.1
  • Click 'Yes' when asked if you're sure you want to update the framework
  • If a new web.config is added, make sure you mark it's build action to 'None'
  • Commit to SVN
Why we had to do this:
  • a 4.6.1 project can depend on older version, but older versions cannot depend on newer versions
  • qbo.Application uses TransactionScope and async/await
  • everything depends on qbo.Application
Frequently Asked Questions

Q: What happens if my server does not have .NET Framework 4.6.1?
A: Install .NET 4.6.1. Google is your friend.

Q: What happens if I deploy a 4.6.1 plugin to a site running QBO core 4.0?
A: It will work just fine. We already have plugins targeting 4.5 in PROD for over a year.

Q: Why are you making us suffer so?
A: It's the right thing to do.

Q: No, really. I've got enough on my plate!
A: The async / await pattern offers a big performance lift. Ever wonder why the QBO was slow and the web CPU spiking? Now we have the patterns to fix much of that.

Q: My system is fast enough. Do I still need to do this change?
A: Yes. The sooner the better. Otherwise your site will die a slow, horrible death in the next 18 months, and will never leverage the QBO4 goodies coming down the pike.

Q: Where does changing my plugins fall on my priority list?
A: Do it the next time you 'touch' (change or deploy) a plugin that is not part of the core solution. It take somewhere between 15 and 30 seconds. 2 minutes if your mouse is slow.

Q: Where does updating my site to use the latest framework fall on my priority list?
A: Same as it ever was. Builds from 201609 and on will be targeting .NET 4.6.1.

Q: So I don't have to worry about this til I update to 201605 or later?
A: Wrong! Next touch to a plugin, update it to 4.5. It will be backward compatible with old and new core.

Q: Argh!
A: Right. Right. :-)