-
Notifications
You must be signed in to change notification settings - Fork 459
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cross target NETSTANDARD2.0/NETCOREAPP2.0 #278
base: master
Are you sure you want to change the base?
Conversation
Well, there are many windows dependencies like all the com objects, the calls to windows functions etc. |
NETSTANDARD is just an abstraction that delegates down a native runtime (e.g. NET461, NETCOREAPP, or Mono). We can target NETSTANDARD and utilize either the full or core runtimes (2.0 has reached near parity) without regressing on Windows. There's a bigger discussion on how to effectively target Linux & OSX -- and whether additional abstractions are needed to utilize different Media frameworks (CoreAudio, FFmpeg, and MediaFoundation) to support each. Still fussing with NET35 but the tooling is still giving me trouble. Do we have any users depending on NET35? If we can bring up the target, we have a viable path to begin utilizing the wave of features coming in C# 7.2 (Instruction Primitives, span/memory, etc) that will allow us to Vectorize hot paths and reduce allocations across the entire codebase. |
Ok, so if we target netstandard, we would support different runtimes but still just the windows platform. To summerize it: We can add netstandard but if we want to target linux officially, there are some key components that have to be available. A resampler is one of them. What are your thoughts on that? |
Exactly. What do you think of utilizing the Cockos re-sampler that was already ported to C# by NAudio (Ms-PL licensed). https://github.com/naudio/NAudio/blob/master/NAudio/Dsp/WdlResampler.cs |
Let me know when we've created a new branch for this! |
Branch is available. Now we'll have to fill it ... |
Great! I think the next step would be start the work on breaking out the Windows / COM logic into CSCore.Windows (CSCore.MediaFoundation would be a good name too) targeting NETFX and validating the postbuild IL rewrite step. Let me know if you're able to start this work. That should uncover everything we need to make CSCore platform neutral. |
I've just checked out a new branch: https://github.com/filoe/cscore/tree/netstandard |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1
Does this branch work? I am trying to get CSAudio to compile for Windows IoT on Raspberry Pi |
@filoe Because I also have some ideas on how to continue / start on this task.
|
Does this work? Could I use this on UWP? |
This commit adds cross-targeting for NETCOREAPP2.0 & NETSTANDARD2.0.
In the process, I've bumped up the minimum framework target to NET451 (the default toolset installed with VS2017) and the framework version on all sample libraries.
Likely some things left to sort out, but hoping this is a good start to begin talking about NETSTANDARD support.