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

.NET Core support #148

Closed
ghost opened this Issue Dec 29, 2015 · 20 comments

Comments

Projects
None yet
7 participants
@ghost

ghost commented Dec 29, 2015

Hey,

Do you have any plans to port to CoreClr? Happy to help out if there is buy-in etc.

UPD1: prerelease NuGet feed: https://ci.appveyor.com/nuget/rabbitmq-dotnet-client-ci
UPD2: RabbitMQ.Client releases on NuGet are now .NET Core compatible.

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin Dec 29, 2015

Member

Duplicate of #103.

We already have a WinRT port which ended up reusing most of the code, so I'd be interested in seeing how difficult can it be to support CoreCLR.

Member

michaelklishin commented Dec 29, 2015

Duplicate of #103.

We already have a WinRT port which ended up reusing most of the code, so I'd be interested in seeing how difficult can it be to support CoreCLR.

@michaelklishin michaelklishin changed the title from CoreClr Port to CoreCLR port Dec 29, 2015

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Dec 29, 2015

I should have some free time over the weekend, so i'll pull down the code and have a go at porting it for you. Will report back with my findings.

ghost commented Dec 29, 2015

I should have some free time over the weekend, so i'll pull down the code and have a go at porting it for you. Will report back with my findings.

@jeremymeng

This comment has been minimized.

Show comment
Hide comment
@jeremymeng

jeremymeng Jan 9, 2016

@sblackler How is it going? I attempted the port too as a hobby: master...jeremymeng:CoreClr. Both client and unit test project build. I attempted to run the tests but it seems like I don't have the rabbitmqctl so the test process crashed on me. Anyway hope this is helpful to anyone who wants to continue working on it.

jeremymeng commented Jan 9, 2016

@sblackler How is it going? I attempted the port too as a hobby: master...jeremymeng:CoreClr. Both client and unit test project build. I attempted to run the tests but it seems like I don't have the rabbitmqctl so the test process crashed on me. Anyway hope this is helpful to anyone who wants to continue working on it.

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin Jan 9, 2016

Member

@jeremymeng thank you. If you can explain what kind of environment is necessary to give it a try (I have Windows 8.1), I can do it.

Member

michaelklishin commented Jan 9, 2016

@jeremymeng thank you. If you can explain what kind of environment is necessary to give it a try (I have Windows 8.1), I can do it.

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin Jan 9, 2016

Member

@jeremymeng the changes look smaller than I thought, this is encouraging. Note that I'm afraid we can't license parts as MSPL and to integrate your changes eventually we'd have to ask to you sign our CA.

Member

michaelklishin commented Jan 9, 2016

@jeremymeng the changes look smaller than I thought, this is encouraging. Note that I'm afraid we can't license parts as MSPL and to integrate your changes eventually we'd have to ask to you sign our CA.

@jeremymeng

This comment has been minimized.

Show comment
Hide comment
@jeremymeng

jeremymeng Jan 9, 2016

thank you. If you can explain what kind of environment is necessary to give it a try (I have Windows 8.1), I can do it.

VS 2015 Community Editor with update 1 should be good. For command-line only experience, you can install ASP.NET 5 RC as described at https://docs.asp.net/en/latest/getting-started/index.html.

I now use the code from Stephen's blog so there should be no license involved.

jeremymeng commented Jan 9, 2016

thank you. If you can explain what kind of environment is necessary to give it a try (I have Windows 8.1), I can do it.

VS 2015 Community Editor with update 1 should be good. For command-line only experience, you can install ASP.NET 5 RC as described at https://docs.asp.net/en/latest/getting-started/index.html.

I now use the code from Stephen's blog so there should be no license involved.

@theparticleman

This comment has been minimized.

Show comment
Hide comment
@theparticleman

theparticleman Jan 12, 2016

@ru-sh has created a fork that targets CoreCLR that I've been using (he also has an unofficial NuGet package). It has a bug where trying to connect via IPv6 throws an unexpected exception type, so then it doesn't try connecting via IPv4. Once I fixed that it would connect from my Windows client host to my Rabbit running on my Linux Vagrant guest. But going from a Linux Vagrant client to Rabbit running on another Vagrant client hangs. Haven't gotten farther than that yet.

Here's a link to his fork: ru-sh@ffedb32

theparticleman commented Jan 12, 2016

@ru-sh has created a fork that targets CoreCLR that I've been using (he also has an unofficial NuGet package). It has a bug where trying to connect via IPv6 throws an unexpected exception type, so then it doesn't try connecting via IPv4. Once I fixed that it would connect from my Windows client host to my Rabbit running on my Linux Vagrant guest. But going from a Linux Vagrant client to Rabbit running on another Vagrant client hangs. Haven't gotten farther than that yet.

Here's a link to his fork: ru-sh@ffedb32

@doc

This comment has been minimized.

Show comment
Hide comment
@doc

doc Mar 26, 2016

Hey Guys, any updates on this port? Keen to see support for .net core arrive so happy to help in any way I can.

doc commented Mar 26, 2016

Hey Guys, any updates on this port? Keen to see support for .net core arrive so happy to help in any way I can.

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin Mar 26, 2016

Member

No updates besides that we've decided it should be a completely new client.

On 26 mar 2016, at 3:03, Mark notifications@github.com wrote:

Hey Guys, any updates on this port? Keen to see support for .net core arrive so happy to help in any way I can.


You are receiving this because you commented.
Reply to this email directly or view it on GitHub

Member

michaelklishin commented Mar 26, 2016

No updates besides that we've decided it should be a completely new client.

On 26 mar 2016, at 3:03, Mark notifications@github.com wrote:

Hey Guys, any updates on this port? Keen to see support for .net core arrive so happy to help in any way I can.


You are receiving this because you commented.
Reply to this email directly or view it on GitHub

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin May 5, 2016

Member

We've outlined our plan for the future of this client on rabbitmq-users.

Member

michaelklishin commented May 5, 2016

We've outlined our plan for the future of this client on rabbitmq-users.

@jacksontbryan

This comment has been minimized.

Show comment
Hide comment
@jacksontbryan

jacksontbryan Jun 3, 2016

I see this as a pretty big blocker for building real enterprise applications with CoreCLR. Building a brand new client sounds pretty ominous with long timelines. Should this maybe get forked to give the community a temporary solution sooner?

jacksontbryan commented Jun 3, 2016

I see this as a pretty big blocker for building real enterprise applications with CoreCLR. Building a brand new client sounds pretty ominous with long timelines. Should this maybe get forked to give the community a temporary solution sooner?

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin Jun 3, 2016

Member

@jacksontbryan we can't prevent people from forking but it'd be a huge waste of time. We have a branch that works on CoreCLR but we cannot really test it beyond small F# scripts because the NUnit version we use doesn't run on CoreCLR. We'll try NUnit 3 or a different library but there is no guarantee that those work. Moving to a different testing framework is not a small task either.

I don't know what "real enterprise applications" means but the overall ecosystem migration to CoreCLR is far from being on the finish line, so "pretty big blocker" is a bit of an overstatement if you ask me. And our little client barely has any dependencies to worry about.

Anyhow, I'm going to lock this as we do not use GitHub issues for lengthy discussions. If we can find a testing framework that works on CoreCLR today, there will be a branch of this client available as an interim step to the new client.

Member

michaelklishin commented Jun 3, 2016

@jacksontbryan we can't prevent people from forking but it'd be a huge waste of time. We have a branch that works on CoreCLR but we cannot really test it beyond small F# scripts because the NUnit version we use doesn't run on CoreCLR. We'll try NUnit 3 or a different library but there is no guarantee that those work. Moving to a different testing framework is not a small task either.

I don't know what "real enterprise applications" means but the overall ecosystem migration to CoreCLR is far from being on the finish line, so "pretty big blocker" is a bit of an overstatement if you ask me. And our little client barely has any dependencies to worry about.

Anyhow, I'm going to lock this as we do not use GitHub issues for lengthy discussions. If we can find a testing framework that works on CoreCLR today, there will be a branch of this client available as an interim step to the new client.

@rabbitmq rabbitmq locked and limited conversation to collaborators Jun 3, 2016

@kjnilsson

This comment has been minimized.

Show comment
Hide comment
@kjnilsson

kjnilsson Jun 7, 2016

Contributor

I've been working on this and have just about got it to pass the test suite. It needs a bit of tidying up and documentation needs to be updated but I should be ready to push a branch with dotnetcore support in the next couple of days or so. @doc @jacksontbryan are you up for doing a bit of testing when that happens?

Contributor

kjnilsson commented Jun 7, 2016

I've been working on this and have just about got it to pass the test suite. It needs a bit of tidying up and documentation needs to be updated but I should be ready to push a branch with dotnetcore support in the next couple of days or so. @doc @jacksontbryan are you up for doing a bit of testing when that happens?

@rabbitmq rabbitmq unlocked this conversation Jun 7, 2016

@kjnilsson

This comment has been minimized.

Show comment
Hide comment
@kjnilsson

kjnilsson Jun 8, 2016

Contributor

ok I've now pushed a branch named dotnetcore that passes all tests. Please feel free to try it out and let me know how you get on. There are some instructions in BUILDDOTNETCORE.md of how to build it.

Please note this branch is largely unproven/untested and here for previewing purposes only at this stage.

Contributor

kjnilsson commented Jun 8, 2016

ok I've now pushed a branch named dotnetcore that passes all tests. Please feel free to try it out and let me know how you get on. There are some instructions in BUILDDOTNETCORE.md of how to build it.

Please note this branch is largely unproven/untested and here for previewing purposes only at this stage.

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin Jun 8, 2016

Member

@kjnilsson we should produce a binary build (and upload it to GitHub as a release plus post to the mailing list with an announcement)

Member

michaelklishin commented Jun 8, 2016

@kjnilsson we should produce a binary build (and upload it to GitHub as a release plus post to the mailing list with an announcement)

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin Jun 13, 2016

Member

This client in master is now compatible with .NET Core (we have a .NET Core-based toolchain and all tests pass). We are planning to have a NuGet feed with master releases ready for public consumption soon. All credit for this work goes to @kjnilsson.

Note that this support is experimental at this point, both because .NET Core itself changes often and so does our understanding of how to best support .NET 4.5 and .NET Core (WinRT is not supported in master at the moment since we couldn't get the .NET Core build toolchain to work with WinRT).

The plan is to stabilize .NET Core support and then keep this client in maintenance mode (with .NET 4.5 and .NET Core being two supported targets) until a new client that exclusively targets .NET Core can be developed from scratch. That's why I think it's fair to close this issue. Please file new ones if you have suggestions about specific and actionable changes in master.

Member

michaelklishin commented Jun 13, 2016

This client in master is now compatible with .NET Core (we have a .NET Core-based toolchain and all tests pass). We are planning to have a NuGet feed with master releases ready for public consumption soon. All credit for this work goes to @kjnilsson.

Note that this support is experimental at this point, both because .NET Core itself changes often and so does our understanding of how to best support .NET 4.5 and .NET Core (WinRT is not supported in master at the moment since we couldn't get the .NET Core build toolchain to work with WinRT).

The plan is to stabilize .NET Core support and then keep this client in maintenance mode (with .NET 4.5 and .NET Core being two supported targets) until a new client that exclusively targets .NET Core can be developed from scratch. That's why I think it's fair to close this issue. Please file new ones if you have suggestions about specific and actionable changes in master.

@vassilvk

This comment has been minimized.

Show comment
Hide comment
@vassilvk

vassilvk Jun 14, 2016

Thank you @kjnilsson and @michaelklishin for prioritizing this!

vassilvk commented Jun 14, 2016

Thank you @kjnilsson and @michaelklishin for prioritizing this!

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin Jun 30, 2016

Member

Another update: as of #213 we target the most recent version of .NET Core available a.t.m.

Member

michaelklishin commented Jun 30, 2016

Another update: as of #213 we target the most recent version of .NET Core available a.t.m.

@kjnilsson kjnilsson changed the title from CoreCLR port to CoreCLR port: UPDATE: prerelease NuGet feed: https://ci.appveyor.com/nuget/rabbitmq-dotnet-client-ci Jul 1, 2016

@kjnilsson

This comment has been minimized.

Show comment
Hide comment
@kjnilsson

kjnilsson Jul 1, 2016

Contributor

Prereleases can be obtained from our AppVeyor NuGet feed: https://ci.appveyor.com/nuget/rabbitmq-dotnet-client-ci

Contributor

kjnilsson commented Jul 1, 2016

Prereleases can be obtained from our AppVeyor NuGet feed: https://ci.appveyor.com/nuget/rabbitmq-dotnet-client-ci

@zidad zidad referenced this issue Jul 5, 2016

Closed

support .NET Core #589

@michaelklishin michaelklishin modified the milestones: 4.0.0, 3.7.0 Aug 23, 2016

@michaelklishin michaelklishin changed the title from CoreCLR port: UPDATE: prerelease NuGet feed: https://ci.appveyor.com/nuget/rabbitmq-dotnet-client-ci to .NET Core support Jun 1, 2018

@michaelklishin

This comment has been minimized.

Show comment
Hide comment
@michaelklishin

michaelklishin Jun 1, 2018

Member

FTR, theere is no need to use the AppVeyor NuGet feed above. 4.0 and later releases of this client are distributed using the regular NuGet feed used by this library.

Member

michaelklishin commented Jun 1, 2018

FTR, theere is no need to use the AppVeyor NuGet feed above. 4.0 and later releases of this client are distributed using the regular NuGet feed used by this library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment