Thanks. That helps a lot. I am thinking a static initializer to set the shared library filename; however, i would like to provide some way to override this maybe via a config file in case a certain platform uses a different filename than what is determined in the static initializer.
Since what I am doing is based on Mono, i am thinking of having #if around code for . Net core vs. .net fx or mono. This is so any bug fixes could find their way back to the Mono project. Especially the Oracle client. > On Dec 5, 2016, at 10:05 AM, David Curylo <[email protected]> wrote: > > On .NET Core, you determine the platform like this (full namespaces since > this is a new spot): > > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows); > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Linux); > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.OSX); > > As far as a configuration to map to libraries with different names per > platform, I don’t believe there is a solution yet, but hope someone can prove > me wrong. It would be messy to have multiple “extern” methods decorated with > the different platform-specific names and call the appropriate method based > on the “IsOSPlatform” checks above, but I guess that would work. > > >> On Dec 4, 2016, at 10:47 PM, Daniel Morgan <[email protected]> wrote: >> >> How do I determine what operating system/platform >> .net core is running on? >> >> On Mono, you could handle different library names and file extensions via a >> config file for the library. .net framework does not have this. Not sure >> about .net core. >> >> Example, i have a library foo.dll on Windows, libfooclient.so on Linux and >> libfoo.dynlib on macOS. >> >> I ported mono's old Odbc to .net core. Porting the .Net Reference >> implementation would be better, but this was an effort so we could connect >> to data sources with no .net core data access provider like IBM DB2 now. >> >> https://github.com/LinqDan/Mono.Data.OdbcCore >> >> Same thing with the oracle client i ported, i need to modify it to work on >> Linux too. >> >> Any suggestions? >> >> Thanks, >> Daniel >> >> danmorg on GimpNet IRC >> >> Begin forwarded message: >> >>> From: Daniel Morgan <[email protected]> >>> Date: November 11, 2016 at 9:44:42 AM EST >>> To: [email protected] >>> Subject: Oracle .net core provider >>> >>> I took Mono Project's System.Data.OracleClient implementation and modified >>> it for .net core. It works on .net core via visual studio 2015 on a >>> Windows 10 64-bit machine with a local Oracle 12c database. Feel free to >>> fork it. >>> >>> This was done in one evening to get it to build and run. It will need to >>> be reviewed and cleaned up. >>> >>> Some notes: >>> - string.Copy does not exist in .net core so i just called ToString or set >>> a reference. So, i need to re-visit that code in oci define handles and >>> parameters. >>> - no DataTable so a lot of code for getting schema and db data adapter was >>> commented. >>> - string.Compare(string, string, bool, globalization) did not exist but >>> Compare(string, string, bool does. >>> - remove all design-time component attributes >>> - added various usings for the different namespaces for some stuff >>> - added reference to System.Data.Common >>> - I may have added SqlClient as well for SqlTypes.INullable. Added other >>> references to satisfy errors. >>> >>> >>> https://github.com/LinqDan/oracleclientcore >>> >>> https://blogs.msdn.microsoft.com/dotnet/2016/11/09/net-core-data-access/ >>> >>> What would it take to build a EF Core provider for Oracle? >>> >>> Been awhile since i played with Mono. >> _______________________________________________ >> Mono-devel-list mailing list >> [email protected] >> http://lists.dot.net/mailman/listinfo/mono-devel-list >
_______________________________________________ Mono-devel-list mailing list [email protected] http://lists.dot.net/mailman/listinfo/mono-devel-list
