I have an idea for a C # class library that I would like to develop and publish in open-source. I would like to make it easily accessible (with recompilation, if necessary) on as many available .Net platforms as possible (for example, full .Net, Mono, .Net Core, Xamarin, only classic .Net compatibility - however). The library will not be affected by any UI and Windows-related things like WPF.
All I need is:
- common .Net and API types (I don't want to be surprised at the lack of something that I consider an important part of the language)
- JSON and XML controls
- access to the file system (possibly somewhat limited)
- HTTPS client
- RDBMS client at SQL level (I do not need ORM functions, although, of course, I do not mind that it is available).
- Reflection if possible
- Asynchronous and inline devices, if possible
- The latest version of C # is possible
I choose between the following types of projects
- Class Library (.NET Core)
- Class Library (.NET standard)
- Class Library (.NET Framework)
- Class Library (Portable)
I heard that Portable is what it says, but now we have a Core that runs on Linux and Mac (maybe Windows Phone and Xamarin?), And I have almost no problems using EF Core, which is clearly aimed on it in my classic Windows Desktop.NET Framework Application. The classic .NET Framework code seems to be very well supported on platforms other than Windows, thanks to Mono and Xamarin..NET Standard - I have no idea what this means, I just opened this type using the window search tool "New Project" "by viewing all the options for the Class Library.
Which one to choose, why and what should I know about this?
source share