Yesterday, CoreLab has released v3.2 of their .NET provider for MySql. v3.2 comes with .NET 2.0 final support. LLBLGen Pro's mysql driver and DQE are compiled against v2.80.7 of the CoreLab mysql provider.
During the beta period of vs.net 2005, the MySql corelab provider v2.80 was also released in beta form for .NET 2.0. However, this provider didn't work with .NET 2.0 final.
We tried to contact Corelab with the question if v2.80.x is upgraded to be able to work on .NET 2.0 but they said it wouldn't, and that we had to upgrade to v3.2 as .NET 2.0 support was 'a new feature'. We tried to express our problems with upgrading to 3.2, because if we upgrade to v3.2, all our customers have to do that too. Up till today we still haven't received an answer. I've contacted Corelab again, let's see how that pans out.
The core issue
I already briefly mentioned the problem in the previous paragraph, but here's it in detail: to be able to let the MySql DQE work on .NET 2.0 final, we have to compile against v3.2 This version comes with a different licensing scheme: component licensing. Also, it might be code-incompatible with v2.8.
If we upgrade to v3.2, all our customers who currently use 2.8 have to upgrade as well, as their code will stop working once they use the new DQE or use llblgen pro and try to create a new project/refresh a catalog. Upgrading to v3.2 isn't free however: Corelab decided that licensees of 2.8 have to pay for a new license for v3.2. So if we upgrade, every LLBLGen pro user who uses MySql as well, has to shell out money for v3.2 as well.
We decided that's not the decision we should make nor want to make for you, it should be your decision if you want to upgrade to a higher version and pay money for that, not us.
Obviously we're in a Catch-22 at the moment: if we don't upgrade, .NET 2.0 support for MySql is not working, if we do upgrade, our customers have to upgrade and pay money to corelab.
We could compile the DQE for .NET 2.0 against v3.2 and the DQE for .NET1.x against 2.8. (if they let you keep the 2.8, which isn't the case as well). However we have a single MySql driver, not two. Shipping 2 driver versions, compiled against each version is a pain to say the least (we already know that from the Oracle/ODP.NET situation) and it's also not ideal for our customers, because existing projects will break and other misery.
The options we're considering
We've thought of a couple of options. None of them are ideal.
a) We drop MySql support entirely and keep the DQE / Driver as sourcecode on the website for the people who want to use it.
b) We switch to MySql S.A.'s GPL-ed provider, we pay for a license, and can then distribute the compiled version. Our customers however have to switch provider then as well, and if they don't want to use a GPL-ed provider, (which is a problem on its own) they have to pay MySql, which is a higher fee than to Corelab
c) We move to v3.2 and keep the sourcecode around for v2.8 so customers can use the code to compile against 2.8 and keep on working on 2.8. This code is already available to you, via the SDK and the runtime library sourcecode.
d) We stick with 2.8 and people who migrate to 3.2 have to use a policy file or other config voodoo to work with the code but this doesn't work on .NET 2.0
None of them are great options. We're still undecided what to do about this so if you have anything to say about this, please step forward and post below your comments.
One other thing is problematic at the moment: the v3.2 is released with component licensing, which means our code has to be compiled with a licenses.licx file which contains corelab references to make it work. This isn't the case at the moment and this can be a problem, because the 2.8 version doesn't have component licensing, so it might be that if we add this, it might not work for 2.8, we haven't tested this yet.
Conclusion
All in all, we're very unhappy with the situation. Corelab's support has been miserable in the past and people who have had to contact them for support know what I'm talking about, so if possible we'd like to cut out the dependency on Corelab, however the alternatives aren't that great. The sad thing is that whatever decision we take, some customers of ours will be unhappy with that decision.
Thanks for your time, and I hope as much MySql users chime in with their thoughts. I'm looking forward to your opinions about this.