Skip to content
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 2.0 Release Master Issue #527

Closed
dls314 opened this issue Mar 29, 2016 · 66 comments
Closed

.NET Core 2.0 Release Master Issue #527

dls314 opened this issue Mar 29, 2016 · 66 comments

Comments

@dls314
Copy link

@dls314 dls314 commented Mar 29, 2016

Get MassTransit running on .net core.

Some related dependencies (there are a lot more that deserve tracking down):

@TravisTheTechie
Copy link
Contributor

@TravisTheTechie TravisTheTechie commented Mar 29, 2016

First, the .NET Core 2.0 roadmap is expecting to see a Q3 2017 release, which is the time at which we hope to have a release of MassTransit nearly complete for use with this new standard framework. See the .NET Core roadmap for details.

Transports

Containers

Loggers

Saga persistence

@dls314
Copy link
Author

@dls314 dls314 commented Mar 29, 2016

@TravisTheTechie that's super markdown fu

I think that Autofac and Serilog get "does support .net core" checks--if that's what you meant there.

@TravisTheTechie
Copy link
Contributor

@TravisTheTechie TravisTheTechie commented Mar 29, 2016

We don't have to support everything on .NET Core, but I think it will be a challenge to communicate it if we don't support most things.

@phatboyg
Copy link
Member

@phatboyg phatboyg commented Mar 30, 2016

Sounds like we'll need to use some of your -Fu to get the readme.md updated with a grid as support for that various runtime versions is added.

Nice work on the issue documentation!

@EugeneKrapivin
Copy link

@EugeneKrapivin EugeneKrapivin commented Apr 15, 2016

Seems like castleproject is going on with .net core https://github.com/castleproject/Core/tree/netcore

@phatboyg phatboyg removed the v3 label Apr 21, 2016
@dls314
Copy link
Author

@dls314 dls314 commented Jun 8, 2016

It looks like some work is moving forward in RabbitMQ.
rabbitmq/rabbitmq-dotnet-client#148 (comment)

@newsash
Copy link

@newsash newsash commented Jun 28, 2016

RabbitMQ has a new issue for .NET Core: rabbitmq/rabbitmq-dotnet-client#213

@jarroda
Copy link
Contributor

@jarroda jarroda commented Jul 21, 2016

I'm moving ahead with some of the work on this. Currently porting the core MassTransit project to Core. Issues so far:

  • No System.Transactions in .NET Core 1.0 (support has been added)
  • No BinaryFormatter in .NET Core 1.0 (support has been added)
  • No Performance Counters in .NET Core 1.0 (support is being considered)
  • No System.Runtime.Caching in .NET Core 1.0. Looking at using Microsoft.Extensions.Caching.InMemory as a replacement.

I think support for the MT features that depend on these APIs could be selectively dropped until they become available.

  • No System.Net.Mime namespace in .NET Core 1.0. This is a big one since the ContentType class is used all over the place. Not sure what to do about this...
@TravisTheTechie
Copy link
Contributor

@TravisTheTechie TravisTheTechie commented Jul 21, 2016

Performance counters could be extracted in an assembly supporting the required the runtime. I don't remember what we use System.Transactions for, likely Saga related. Might be able to extract this as well.

We could replace ContentType class with a custom implementation. I don't think we need it for much, just used it because it is there. However, I'd have to dig in to make sure there's not a case I'm forgetting. So 👍, I'm excited to see someone make some progress and we can try and help out if you have questions.

@jarroda
Copy link
Contributor

@jarroda jarroda commented Jul 22, 2016

So far, I have
MassTransit
MassTransit.TestFramework
MassTransit.Tests
MassTransit.RabbitMqTransport
ported and compiling for net452 and netstandard1.5.
The main thing I'll need help with is getting the build process working. I have nunit updated and running on the .NET Core command line runner, but I don't really have any experience with FAKE, so I have no idea how it plays with Core and the new tooling.

@daanl
Copy link

@daanl daanl commented Jul 29, 2016

@jarroda can you push this to your local branch? When checking out everything seems to be broken

@daanl
Copy link

@daanl daanl commented Jul 29, 2016

After some research Azure ServiceBus will provide a new opensource implementation somewhere soon see: https://twitter.com/jtaubensee/status/759031851537227780

@jarroda
Copy link
Contributor

@jarroda jarroda commented Jul 29, 2016

So far I just have the main MT project and the RabbitMq transport working. I have been testing it out with our app for a week or so and it seems to be functioning well. I hope to have time over the next week or so to finish porting the other MT projects (that can be ported at this time) and then we'll need to get the build process working.

@daanl
Copy link

@daanl daanl commented Jul 29, 2016

If you commit a working phase for MT then ill investigate for azure service bus

@jarroda
Copy link
Contributor

@jarroda jarroda commented Jul 29, 2016

I have committed the nuget config I am using, which should be all you need to get the MassTransit project to build. It depends on the port of NewId by @lahma that I packaged and pushed to myget, until those changes get merged into the main repository.

@lahma
Copy link
Contributor

@lahma lahma commented Jul 29, 2016

I could probably give a hand with the Quartz integration project at least next week.

@phatboyg
Copy link
Member

@phatboyg phatboyg commented Jul 29, 2016

Progress is great, I'll be ready to pull in these changes once they're ready.

The NewId project needs to be updated to Fake, if possible. Otherwise I can install all the old Ruby bits on my machine to get it building (new VM, doesn't have ruby).

Excited to see all the efforts coming together!

@daanl
Copy link

@daanl daanl commented Jul 30, 2016

@jarroda can you also save the solution file? If i open it then the .net core projects aren't loading -> open .sln file try to build.

edit: if anyone else is trying besure you have the latest version of dotnet cli it doesn't compile with RC2 but with preview 3 it does

@jarroda
Copy link
Contributor

@jarroda jarroda commented Jul 30, 2016

Sorry, I had been doing all my work in VSCode and the cli, and had not generated xproj files or a working solution. I have committed xproj files for the projects I have working, and I created a new solution that we can use to add the ported projects to as we get each one working. Use the MassTransit.Netcore.sln and add you're projects there.

We will have to flatten the folder structure, since it appears the dotnet tooling does not support projects nested into subfolders (project references do not work), but I am keeping the existing VS solution folder layout, so the impact on organization will be minimal.

@daanl
Copy link

@daanl daanl commented Jul 30, 2016

Yeah thanks its building now 👍

@daanl
Copy link

@daanl daanl commented Jul 31, 2016

Small update we have:

MassTransit
MassTransit.TestFramework
MassTransit.Tests
MassTransit.RabbitMqTransport
MassTransit.StructureMapIntegration
MassTransit.CoreLoggingIntegration
MassTransit.NLogIntegration
MassTransit.SerilogIntegration

I am working on MassTransit.AzureServiceBusTransport its being bit of a pain as the package we where using (WindowsAzure.ServiceBus) is deprecated and won't get .NET core support

@phatboyg
Copy link
Member

@phatboyg phatboyg commented Aug 1, 2016

Busy activity, looking forward to having this ready to pull - great work so far!

@daanl
Copy link

@daanl daanl commented Aug 7, 2016

Small update on my side got Masstransit + Azure ServiceBus to run on dotnet core still needs a lot of polish.

https://twitter.com/daanleduc/status/762246995780202496

@phatboyg
Copy link
Member

@phatboyg phatboyg commented Aug 7, 2016

Nice!

@gertjvr
Copy link
Contributor

@gertjvr gertjvr commented Aug 16, 2016

Nice way to keep track of whats .net core compatible https://icanhasdot.net/result?github=MassTransit~2FMassTransit
image
image

@kcootedinh
Copy link

@kcootedinh kcootedinh commented Nov 10, 2016

I think the issue would be that while the runtime is RTM, the tooling isn't mature yet and there's still the migration to csproj that's outstanding.

@adamralph
Copy link

@adamralph adamralph commented Nov 10, 2016

IMHO .NET Core 1.0 made a mockery of the term "RTM" (and to a worse extent, "RC") .NET Core 1.x is far from ready and the releases are premature.

A base level of tooling for any runtime is essential and therefore part of the product. Arguments to the contrary remind me of:

image

By all definitions known to me, the product is still in the alpha phase.

That said, .NET Core 2.0 is shaping up very nicely. I suspect it's going to be the first version that will truly progress past alpha through to RTM and be suitable for general use, and I'm looking forward to it.

(These feel like echoes of the original .NET Framework 1.0 and 2.0 releases, but on a grander scale.)

@atrauzzi
Copy link

@atrauzzi atrauzzi commented Nov 10, 2016

Ugh. Yes, .net Core was a big shock for dark matter developers and not all of them are handling it very well.

Welcome to the world of FOSS. Lots of things at 0.*.* get used. That isn't a reflection on the people. There are countless technologies with vastly inferior tooling experiences that enjoy much broader adoption. It was a matter of shape up or ship out for Microsoft as the Rubys, PHPs, nodes, Pythons and Scalas ran off with the market.

Even during the last ASP.net community standup, Damian remarked how easy it was to go from 1.0 to 1.1. Having the opinion that "things aren't stable enough" gives way to eventually never seeing when things are "stable enough".

Just embrace change, things get easier -- and better.

@adamralph
Copy link

@adamralph adamralph commented Nov 10, 2016

The OSS development model and the following of recognised development and release phases are demonstrably not mutually exclusive. I'll stop here because I don't want to hijack this thread any longer. Happy to discuss elsewhere.

@daanl
Copy link

@daanl daanl commented Nov 11, 2016

I got Azure Service Bus kinda working not sure if @jarroda continued. Yesterday tried RabbitMQ implementation and it was not completely working for me.

@davidMuir
Copy link
Contributor

@davidMuir davidMuir commented Nov 11, 2016

Do we have a branch to check out and pitch in if we're feeling brave?

@dls314
Copy link
Author

@dls314 dls314 commented Nov 11, 2016

@jarroda
Copy link
Contributor

@jarroda jarroda commented Nov 11, 2016

We are currently working on the upstream dependency of this, GreenPipes, which is basically finished other than getting the build running. That work is happening here https://github.com/phatboyg/GreenPipes/tree/develop-netcore

Once this is is finished (along with NewId), we can focus on getting the rest of MT ported.

@phatboyg phatboyg changed the title Get running on `dotnet` cli / .NET Core .NET Core 2.0 Release Master Issue Feb 27, 2017
@phatboyg phatboyg added this to the .NET Core 2 Support milestone Feb 27, 2017
@stromblom
Copy link
Member

@stromblom stromblom commented Mar 1, 2017

@andymac4182
Copy link
Contributor

@andymac4182 andymac4182 commented Apr 24, 2017

Any chance of supporting .NET Core 1 now that the tooling is a lot better in VS2017.

@sirlukecoop
Copy link

@sirlukecoop sirlukecoop commented Apr 30, 2017

If we wanted to help out with this issue, what would be the best way?

@andymac4182
Copy link
Contributor

@andymac4182 andymac4182 commented May 1, 2017

@sirlukecoop There is some work going on to finish off some of the other dependent libraries MassTransit/GreenPipes#3 and phatboyg/NewId#8 personally not sure what is next after they are updated. #874 will hopefully speed up things a little.

@andymac4182
Copy link
Contributor

@andymac4182 andymac4182 commented May 1, 2017

@jarroda Did you have to make many changes to support core? I have a PR with the csproj changes for VS2017 RTM.

@jarroda
Copy link
Contributor

@jarroda jarroda commented May 1, 2017

@andymac4182 Yeah there were quite a few, though not major changes. Mostly stuff like working around the lack of [Serializable] attribute, BinaryFormatter classes and a few other small pieces that were missing. Easy to work around, but a little tedious fix. We have been running our application on my forked version of MassTransit, on core for about a year now with great results. However our version is out of date now so I'm very excited to see the renewed interest in getting it officially ported.

I was just never able to overcome the tooling problems to the point of getting my PRs accepted.

@andymac4182
Copy link
Contributor

@andymac4182 andymac4182 commented May 1, 2017

I just finished moving to the VS2017 tooling so should be easy to add the changes you were doing on top. Any chance you could rebase your branch? I can take a look tomorrow at cherry picking those changes over or rebasing on top of my changes as I made zero changes to the actual code just the csproj files.

@jarroda
Copy link
Contributor

@jarroda jarroda commented May 1, 2017

Rebasing will definitely be a challenge. I think somewhere along the way the history changed on the branch I did my work in, and I had tried to rebase once before and had difficulty. Also, my branch was before the GreenPipes project, which caused a big chunk of code to move from MT.

Some of the supporting projects I ported or created (like the IoC providers, logging providers etc) should be able to be pulled over easily, but it might be just as easy to manually port the two core projects again.

I should be able to lend a hand in doing that.

@phatboyg
Copy link
Member

@phatboyg phatboyg commented May 1, 2017

This week is a good week for me to engage on this, I'll have 2017 installed tonight.

Looking at the "ICanHas.NET Core" site there are a couple of projects that won't build for .NET core (not a big deal, but NHibernate, Unity are big ones).

It will work for RabbitMQ, seems like ServiceBus (Azure) isn't ready yet. But that's fine, we can build the projects that work with that solution type or something.

@andymac4182
Copy link
Contributor

@andymac4182 andymac4182 commented May 2, 2017

@jarroda I have started to manually pull over the changes for the MassTransit project only at this point. https://github.com/andymac4182/MassTransit/tree/initial_netstandard

@syberside
Copy link

@syberside syberside commented Jun 19, 2017

Do you have any news about porting progress? How can we help you?

@jarroda
Copy link
Contributor

@jarroda jarroda commented Jun 19, 2017

@syberside Process is well underway. Check out #909
There are enough projects ported at this point to make MassTransit usable on netstandard for most people I'd imagine.

@syberside
Copy link

@syberside syberside commented Jun 20, 2017

@jarroda that's awesome! Thank you!
As I can see MassTransit.QuartzIntegration is not supported yet.
Does this mean that there will be no Shedule support for sagas until quartz 3.0 will be released?
Do you plan to support any other sheduler? May be it's time to make scheduler replaceble?
There are many schedulers awailable for .NET Core. For our projects we use Hangfire (it's primary task is not sheduling but this feature also awailable)

@syberside syberside mentioned this issue Jun 20, 2017
32 of 48 tasks complete
@andymac4182
Copy link
Contributor

@andymac4182 andymac4182 commented Jun 20, 2017

I would suggest posting another issue around support for other schedulers if that is something you need since this task is just around getting the existing compatible packages up to date to support core.

@phatboyg
Copy link
Member

@phatboyg phatboyg commented Oct 4, 2017

All further discussion should refer to: #909

@phatboyg phatboyg closed this Oct 4, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.