1
votes

Im using DB2 on server and my application connects directly to that server. As data provider i use v9.7 FP5 ibm data server driver and visual studio addins. Now..To install my program on client computers im using ClickOnce and providing WHOLE IBM driver package and thats really not best solution, because if IBM update their drivers-all my clients will have to update them too. Cant i just include some provider DLLs into ClickOnce package and update them only on the computer that is deploying ClickOnce setup?
PS: seem that i cant just deploy some dlls :(
How do I redistribute DB2 .NET with my application?

The DB2 .NET provider can not simply be copied, it has several supporting files and installation actions, and thus it needs to be installed. This can be accomplished by one of these methods:

  1. Install the Data Server Runtime Client or the Data Server Driver for ODBC, CLI and .NET (ds driver for short) on the target machine(s)

  2. Package the Data Server Client Runtime merge modules with your application. Details are in the Runtime Client Merge Module online information

And this really is not solution from their side i think. Turns out that they provide solution to work with their DB while developing application and after it goes production- clients MUST install their drivers(~100mb) to allow my software to work with their database...

2
Dodging the question, but you could consider using a web service / WCF service that calls the database. It's uncommon nowadays to see a client app which connects to the DB directly.Kieren Johnstone
@Kieren Johnstone , yes, we could, but direct connect gave us more options and speed(in some aspects development speed too, because we had to write just some objects that work with DB and not DB+service(tho this is not a big deal..)). So the main goal of direct connect was maximizing performance of program in a trade of scalability..0x49D1

2 Answers

1
votes

I would suggest the app checks for existence of the drivers, and directs the user to an installion/setup page if they do not exist. This is not something easily installed with ClickOnce, though if you created a standalone installer (MSI) it would be an option to install automatically. (As well as suggesting that the client doesn't access the DB directly ;), which has all manner of problems including firewall config, driver installation, and security issues).

1
votes

I see two alternatives that you have here. One, you don't have to install the full 100mb+ db2 client. You can install the "Data Server Driver Package" which is only 31mb for the English version. You also don't have to update this on your clients every time IBM updates it unless you need new features or bug fixes that are included in the new version.

A second, better IMO, option is to use the Data Server Driver Merge Modules that IBM provides. You can include them with the installation package of your .Net application. But HOW you do that though I'm not sure. I asked a question on it a while back and never got a response.