Question
· Aug 12, 2020

dotnet core

Is there an InterSystems supported dotnet core library or community contributed repo on the horizon?  At this time we are exploring installing the ODBC driver in our containers but would rather use more robust solution.

Discussion (15)0
Log in or sign up to continue

Took a look at the latest IRIS library, it is not dotnet standard nor core.  It is actually based on .NET 4.5 which is not even supported by MSFT any longer.  Looking at the structure of the Cache v. IRIS, it appears to be very similar.  I wonder if it is a "port".

As more and more clients of Intersystems are moving to modern architectures that are not coupled to the OS, it would be in their interest to spend a bit of time porting their existing libraries to dotnet core.

Hi, Peter, i see this must need .net framwork 2,3or 4, but how it support for .net 5 on centos, when i using  InterSystems.Data.CacheClient.dll   and the write this code it makes error 

the code is here

public System.Data.DataSet exeSqlForDataSet(string QueryString)
        {

           string strConnection = "Server=" + "192.168.102.87" + ";Port=1972; Namespace=" + "IMEDPACS" + "; Password=" + "sys" + "; User ID = " + "_system" + ";Pooling=true;"; ;

           var conn = new CacheConnection(strConnection);
            try
            {
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }
                CacheCommand cmd = new CacheCommand();
                cmd.Connection = this.conn;
                if (inTransaction)
                    cmd.Transaction = trans;
                DataSet ds = new DataSet();
                CacheDataAdapter ad = new CacheDataAdapter();
                cmd.CommandText = QueryString;
                //CLogger._log.Debug(QueryString);
                ad.SelectCommand = cmd;
                ad.Fill(ds);
                ad.Dispose();
                return ds;
            }
            catch (Exception e2)
            {
                throw e2;
            }
        }

this exception is here 

System.UnauthorizedAccessException: Access to the path '/root/0000/00/Debug/dbnet5.0' is denied.
---> System.IO.IOException: Permission denied
--- End of inner exception stack trace ---
at System.IO.Enumeration.FileSystemEnumerator1.CreateDirectoryHandle(String path, Boolean ignoreNotFound) at System.IO.Enumeration.FileSystemEnumerator1.Init()
at System.IO.Enumeration.FileSystemEnumerator1..ctor(String directory, Boolean isNormalized, EnumerationOptions options) at System.IO.Enumeration.FileSystemEnumerable1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized)
at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options)
at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
at System.IO.Directory.GetFiles(String path, String searchPattern)
at Microsoft.DotNet.CommandFactory.ProjectFactory.GetMSBuildProjPath(String projectDirectory)
at Microsoft.DotNet.CommandFactory.ProjectFactory.GetMSBuildProj(String projectDirectory, NuGetFramework framework, String configuration, String outputPath)
at Microsoft.DotNet.CommandFactory.ProjectToolsCommandResolver.ResolveFromProjectTools(CommandResolverArguments commandResolverArguments)
at Microsoft.DotNet.CommandFactory.ProjectToolsCommandResolver.Resolve(CommandResolverArguments commandResolverArguments)
at Microsoft.DotNet.CommandFactory.CompositeCommandResolver.Resolve(CommandResolverArguments commandResolverArguments)
at Microsoft.DotNet.CommandFactory.CommandResolver.TryResolveCommandSpec(ICommandResolverPolicy commandResolverPolicy, String commandName, IEnumerable1 args, NuGetFramework framework, String configuration, String outputPath, String applicationName) at Microsoft.DotNet.CommandFactory.CommandFactoryUsingResolver.Create(ICommandResolverPolicy commandResolverPolicy, String commandName, IEnumerable1 args, NuGetFramework framework, String configuration, String outputPath, String applicationName)
at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, TimeSpan startupTime, ITelemetry telemetryClient)
at Microsoft.DotNet.Cli.Program.Main(String[] args)

what can I do for this?

We use Caché 2015 with the CacheProvider. 
We connect with a CacheConnection Object to the Database and use the Method GenSourceFile to generate C# Classes from the Caché Classes. We then compile this c# Code into a DLL and use it together with the InterSystems.Data.CacheClient.dll for working with the Caché Objects in C#. Eventhought the DLL is compiled with .net 4.5 it works great together with .net core 3.2 ASP.NET.  But we only use it on windows plattforms. So maybe not working on linux?!