danbarua / NEventSocket

A reactive FreeSwitch eventsocket library for Modern .Net
Mozilla Public License 2.0
74 stars 37 forks source link

NEventSocket.Channels #46

Open pragmatrix opened 8 years ago

pragmatrix commented 8 years ago

As discussed in https://github.com/danbarua/NEventSocket/issues/41 one of the next steps for NEventSocket is to separate the Channels API. The main reasons are:

So I've tried to separate them and tinkered around until the project was buildable again, it went straight forward:

Then there is the packaging. it's probably best to introduce a second NuGet package named NEventSocket.Channels. To make that work, I guess that the Rx dependencies should be referred instead of ilmerged into NEventSocket.dll. I am not sure what was the initial reason to use ilmerge, but I am pretty sure that it will open a can of wormes if it'll be left that way.

Regarding tests, I have no idea yet :( I hope Dan has some ideas.

What do you think? Can we proceed with the separation, or is it just too early? Is another branch a good way to figure out if we can resolve all these issues, or is it better to just tag what's there with v2 and continue to work on the master branch.

danbarua commented 8 years ago

We ILMerge Rx in so that we only expose 'IObservable' on the public API, and then consumers of the library are free to use whatever version of Rx they are using in their apps - similar to how most libraries [should] ILMerge NewtonSoft.Json