rabbitmq/rabbitmq-dotnet-client

Support the new project.json and coreclr

rmja opened this issue · 8 comments

rmja commented

Hi,

The RabbitMQ.Client should support the new project.json project format https://github.com/aspnet/Home/wiki/Project.json-file, and the "dnxcore50" target framework moniker (TFM), to allow for the client to run on the new platform independent coreclr.

Here is an incomplete project.json draft:

{
  "version": "3.5.3",
  "compile": "..\\..\\..\\gensrc\\RabbitMQ.Client\\*.cs",
  "frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
        "System.Xml": "4.0.0.0"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.Console": "4.0.0-*",
        "System.Diagnostics.TraceSource": "4.0.0-*",
        "System.Linq": "4.0.0-*",
        "System.Net.Requests": "4.0.10-*",
        "System.Net.Sockets": "4.0.10-*",
        "System.Net.Security": "4.0.0-*",
        "System.Runtime.Extensions": "4.0.10-*",
        "System.Runtime.Serialization.Xml": "4.0.10-*",
        "System.Text.RegularExpressions": "4.0.10-*",
        "System.Threading": "4.0.10-*",
        "System.Xml.XmlSerializer": "4.0.10-*"
      }
    }
  }
}

Thanks, we will consider supporting it as soon as a .NET version based on dnxcore50 is released. We have Windows Runtime support to ship first, and it is non-trivial to support both frameworks.

The .NET Core RC1 is now available, and has a "Go Live" license: http://blogs.msdn.com/b/dotnet/archive/2015/11/18/announcing-net-core-and-asp-net-5-rc.aspx

Any updates on plans for .NET Core support?

@jdmcnair as time permits after GA is released. We are a tiny team. On the upside, client library releases after 3.6.0 will be detached from RabbitMQ server releases, so changes like this wouldn't have to wait for 3.7 or 3.8.

@michaelklishin Personally I would recommend supporting CoreCLR as a first given that this is a subset of the Windows Runtime and can target other platforms like iOS/Linux; after which a recompile of the CoreCLR implementation for Windows Runtime can be achieved by sharing code from the CoreCLR projects.

+1 for ASP.NET v5 & CoreCLR support

PS. more than happy to help out on the implementation for CoreCLR

Anyone interested are welcome play with my fork, which builds but untested: master...jeremymeng:CoreClr

rmja commented

I also have a fork which seems to work and uses the "netstandard1.5" TFM. It runs on the latest corefx bits: master...rmja:NETStandard

+1 for .NET Core support (RC2 is now out)

@rwkarg please see #148.