gigya / microdot

Microdot: An open source .NET microservices framework
Apache License 2.0
1.54k stars 230 forks source link

.NET core porting #33

Open VenkateshSrini opened 7 years ago

VenkateshSrini commented 7 years ago

Hi, We have an up coming requirement in doing MicroServices in .NET core 2.0. What is the time line by which the .NET core port will be available.

Thanks and regards Venkatesh

tsibelman commented 7 years ago

We would love to move to .NET core but because our framework is working with MS Orleans, it would not be possible to support .NET core before Orleans is supporting .NET core.

Allon-Guralnek commented 7 years ago

You can track Orleans' progress towards .NET Core here:

https://github.com/dotnet/orleans/issues/2145

VenkateshSrini commented 7 years ago

Hi Allon,

I see that the preview 2 has been released. So I guess if you could start targeting .NET framework 2.0 standards then you should be good to go.

On Mon, Jun 19, 2017 at 11:05 AM, Allon Guralnek notifications@github.com wrote:

You can track Orleans' progress towards .NET Core here:

dotnet/orleans#2145 https://github.com/dotnet/orleans/issues/2145

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gigya/microdot/issues/33#issuecomment-309342922, or mute the thread https://github.com/notifications/unsubscribe-auth/ABHPMP4WvgsBp1-TYw8gz5IqVkwpy0X0ks5sFgiXgaJpZM4N9sjK .

Allon-Guralnek commented 7 years ago

@VenkateshSrini I'm not sure what you mean by "preview 2". Could you provide a link?

VenkateshSrini commented 7 years ago

@Allon-Guralnek I was referring to this one https://blogs.msdn.microsoft.com/orleans/2016/12/05/orleans-20-tech-preview-net-core/

Allon-Guralnek commented 7 years ago

@VenkateshSrini Thanks for the link. It seems these are really early prototypes of Orleans 2.0 that do not even contain all the features of Orleans 1.3 which we currently use. It doesn't even support any membership provider other than Azure. This will make porting Microdot to Orleans 2.0 preview way more difficult that it should, since none of the tests will run successfully and most of the code won't compile due to missing features.

As Sergey wrote in a comment, they'll start working on 2.0 in a few weeks and it'll take another three months to release. I think it would be wiser to start working on it when it has feature parity with the existing Orleans release, which will help make it a smoother transition. In the meantime, our next goal is Orleans 1.5.

We'll keep an eye out for a more complete 2.0 release since we are also interested in transitioning to .NET Core as soon as we can.

VenkateshSrini commented 7 years ago

Hi, Would you be happy to consider some other framework like Akka.NET. That is also based of Virtual actor pattern.

Allon-Guralnek commented 7 years ago

@VenkateshSrini Sorry, we're integrated pretty tightly with Orleans. Also, Akka.NET is not a Virtual Actor framework, it's a regular actor framework. And it doesn't yet support .NET Core either. So I'm not sure how that's relevant.

VenkateshSrini commented 7 years ago

Here you go for the .NET core version of Akka https://github.com/akkadotnet/akka.net/tree/dev/src/core.

I suggest that you should have an adapter such that we can either inject Orleans or Akka based on the need. That way you will be more agile.

On Tue, Jun 20, 2017 at 5:58 PM, Allon Guralnek notifications@github.com wrote:

@VenkateshSrini https://github.com/venkateshsrini Sorry, we're tied pretty closely to Orleans. Also, Akka.NET is not a Virtual Actor framework, it's a regular actor framework. And it doesn't yet support .NET Core either. So I'm not sure how that's relevant.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gigya/microdot/issues/33#issuecomment-309737694, or mute the thread https://github.com/notifications/unsubscribe-auth/ABHPMGNrrvJIElCYWfqIo6Q6B0UxQe9Dks5sF7rngaJpZM4N9sjK .

daniellm commented 7 years ago

@VenkateshSrini, Microdot is not strongly tied to Orleans. Microdot glues together disparate services that may or may not run on top of Orleans. You can definitely try using Akka.Net in your services. To connect Microdot to Akka.Net, take a look at out HttpListener, it uses an abstract IActivator to pass incoming RPC requests to the service. We got two implementations: one that calls into Orleans, and another for non-Orleans services. You can develop and inject an IActivator that binds to Akka.Net. There might be a few more integration points, but that's the only major one I can think of. If you do integrate with Akka.net, we'll be happy to include it with Microdot.

It's important to understand that microservices frameworks are large and need to be customized in each organization. Some development and integration will be needed, no matter which one you choose. And you'll need robust build, deployment and monitoring systems as well.

Regarding .net core, we also would like to switch to it as soon as it's viable, so we can run our microservices over Linux and Docker. But the industry is just not there yet, a lot of important third party libraries we depend on haven't been adapted yet. I would suggest, if possible, that you start your development over .net 4.5.x + Windows, and switch to .net core later on.

quinvit commented 5 years ago

Just want to share my ported version https://github.com/quinvit/microcore. I used it for my company project. It runs perfectly on Linux and docker.