If you want to know more about .NET, what it is and its level of compatibility with IBM technologies, I've taken it upon myself to summarize it in a short blog article. Happy reading.
Let me tell you a bit about .NET
If we look at the moves Microsoft is making with .NET, it is obvious they are trying to be ahead of the curve when it comes to software development. Encouraging cloud development with the latest changes to their certification program as well as working hard to push .NET Core to the forefront in an attempt to put themselves first in line for anyone looking to do cross-platform developing. Or any software development for that matter as .NET also has a lot of versatility in what you can do with it. You want a web service? ASP.NET! Need a small script running on your server? C# is there for you! Have a cool idea for an app? There’s multiple options for you within .NET! Have a cool idea for a game? Unity!
Will it always be the most efficient or all around best option? Maybe not, but the fact that you can do pretty much anything imaginable using C# is pretty great as a .NET developer!
How does IBM fit into this?
IBM is a giant in the sector, so it is inevitable that IBM gets used in environments where .NET is applicable. Whether it is modernization of existing implementation built on IBM infrastructure or new applications that use IBM technology behind the scenes.
Deploying .NET applications on IBM Power System Servers
Since 2015, IBM’s cloud solution Bluemix supports deployment of .NET and C# projects! This was possibly because Microsoft went open source with .NET and IBM was able to get .NET working on their cloud platform as a result. It is also possible to deploy .NET core applications on IBM i or AIX. In 2018 a port (Mono for i) was released that enabled running of .Net framework applications. All you must do is install the Mono for i packages through the YUM package manager.
Connecting to an IBM DB2 database from .NET
There are multiple options to make a connection to a db2 database from .NET. You could use the IBM DB2 .NET provider that is available through a nuget package, but documentation can be improved upon. This nuget package is the only way of using Entity framework to my knowledge. If the target system you want to connect to is supported by the package you will also need an IBM licence. This licence will have to be placed in a specific directory within the nuget package.
Another option is to use the ODBC driver for db2. This option only requires you to have a connection to the database and install the driver manually. Once all of this setup is done correctly you can install the System.Data.ODBC nuget package and use it as expected! You will need to specify the driver name in your odbc If you are hard-pressed to use LINQ, what you could do is pour your initial query results into a c# DataSet and use LINQ from there on. This would require that you pull more data from the datebase than you actually need, and then use LINQ to filter out the unnecessary data so this will not be the most performant option.
Looking ahead, we can only be optimistic. The compatibility between .NET and IBM technologies has been growing steadily over the past few years and will continue to do so. We are now at a point where they are fully compatible, so there is no reason not to!