I have two applications developed in C# .NET framework 4.6.2 that attacks against an Oracle 10g Database, now planning to upgrade the database to an Oracle 19c. One of the applications is a web application and the other is a desktop application. At this moment I am using Oracle.DataAccess.dll and it is working properly. Will my applications keep working properly after the upgrade or should I recompile my applications with another dll? Or what other configurations required for C# application?
What version of Oracle.DataAccess are you using? The answer depends on it. Are you getting the ODP.NET driver via NuGet?
In theory a 11.2.0.3 client should be able to connect to a 19 database.
Personally, I would ensure that the client driver is at least of version 12.2.
Related
I have two applications developed in C# .NET that attacks against an Oracle 10g Database, now the client is planning to upgrade the database to an Oracle 18c. One of the applications is a web application and the other is a desktop application. At this moment I am using Oracle.DataAccess.dll and it is working properly. Will my applications keep working properly after the upgrade or should I recompile my applications with another dll?
It depends on the version of your Oracle.DataAccess.dll. You did not tell us, so please have a look at Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)
If your Database is 10.2.0 then Oracle.DataAccess.dll version 11.2 and 12.1 should work, otherwise you have to upgrade your Oracle Client.
Note, version of Oracle.DataAccess.dll has to match exactly the Oracle Client. Installing more than one Oracle Client can be a challenge, better remove old versions completely before you install new one.
In case you will install Oracle Client 12.2 or newer have a look at this: SSMA unable to find specified provider
Usually you don't have to recompile your application. If Oracle.DataAccess.dll is defined in GAC then your application will automatically load the correct version of Oracle.DataAccess.dll driven by GAC Policies.
I'm in the process of developing an application that interacts with a MySQL database. Because it interacts with some older software, it has to be built in .NET 3.5.
Another application I'm developing was made from scratch and doesn't talk to anything other than MySQL. Therefore I built it with .NET 4.5.
I have the latest version of the MySQL connector installed on my developing machine to work with .NET 4.5, but 3.5 doesn't like it because the connector requires 4.5.
Here are my questions:
Is it safe to uninstall the newer MySQL connector, since the reference DLL's have already been copied to that project, without breaking my 4.5 project?
Is it a better idea to just run both off of the older connector version?
I'd test this out myself but I'm in a position where I don't have admin rights. I have to bother IT anytime I want to do anything, and they generally like it if I know what I'm doing before I go talk to them.
Thanks all.
In case anyone else stumbles upon the same issue:
You can run both applications off of the old framework, even if one is built with .NET 4.5 it can handle the old MySQL connector framework. I have yet to experience any issues with version compatibility between the .NET 4.5 project and the connector built for 3.5.
You will have to make a new reference to the older framework, however - once the new MySQL connector is uninstalled your applications that rely on it will cease to function until you install another version and reference that one.
I'm using the oracle.dataaccess.dll when having to query an Oracle DB. But it doesn't work if the user doesn't have an Oracle client installed on his machine. Is it possible to somehow include the Oracle client inside a dll so the user won't have to explicitly install the client?
The managed ODP.net client is exactly what you want. Now that there's a 12c version out, it's a simple single assembly that you can deploy with your application and not have to worry about Oracle installations.
There's also a nuget package that you can use if you don't want to install on your system. That is very painless to get up and running. Here's some links to those:
Main package
Second package to use Entity Framework 6/Code First
You can ship the Oracle Instant Client with your application.
This is a complete Oracle client but it doesn't require installation, it can be used directly.
However, you need to be aware of the following:
The instant client is over 120 MB in size.
You need different versions of the instant client for x86 and x64, bringing the size to about 250 MB.
The advantage of using the instant client is that you don't have to worry about the installed version of the Oracle client. Even if the computer already has an incompatible version installed, your application will work, because it comes with the correct version.
If you're able to pay, I've had fair success with DevArt's DotConnect for Oracle as an alternative to the client provided by Oracle.
It provides a completely managed way of connecting to and querying Oracle, along with Entity framework & nHibernate support and emulation for GUIDs, booleans and a few other datatypes where Oracle lacks support (GUID is raw(16) in Oracle).
All you have to do is ship a single managed DLL with your project.
I finally got it to work by making the Oracle connection string in my app.config and copying all the client DLL's as in this picture:
I have created a simple c# console application with .net framework 2.0 that uses MySql. What steps should I do in order to get the program run on another computer(Windows Server 2008)?
I already have MS .Net framework Clent Profile and MS .Net framework Clent Profile Extended installed.
Should I install .net framework 2.0 Service pack too on the other pc?
Thanks.
You just need .Net Framework 2.0 or later to be installed on the machine.
It would would be better to make an installer.
Make sure you have .Net framework 2.0 installed on the computer. Also make sure you have the .Net dlls required for making connection. If your application is going to use the local machine as MySQL server then, you may have to intall MySQL on the client machine as well, or you can make an installer with MySQL installation included. You can use InnoSetup or you may check out the following thread Deploy MySQL Server + DB with .Net application
Environment - .Net Framework.
Version - Same as one or higher in which you app is targeted.
Why i said no particular version number because what if you app is in 4.0 and you have 2.0 installed?
That's why same version or higher.
We upgraded our application to .NET 4.0 a while ago, and now need to add the ability to backup SQL Server 2008 databases from the app. However, it doesn't seem that SMO is available for .NET 4. Is there a workaround or better way to perform a database backup (note that our backups need to be user initiated over a website, so we cannot schedule them).
Use BACKUP DATABASE?
Otherwise, try these One, Two
You can still reference SMO from a .NET 4.0 application, even with it targeting the .NET 2.0 framework.
If you get the Mixed mode assembly is built against version 'v2.0.50727' of the
runtime and cannot be loaded in the 4.0 runtime without additional
configuration information. exception, installing the latest version of the SQL Server SDK (SQL Server 2008 R2) should fix it, even if the machine is running an older version of SQL Server e.g. 2005.