-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Minimal Service Fabric integration #2120
Minimal Service Fabric integration #2120
Conversation
I'd be happy to remove code which sets DeploymentId - it's unnecessary. When deeper integration is done, there will be other ways to configure the target SF service on the client. |
There's no easy way to test this, right? |
So this is just the Stateless service support, right? |
@sergeybykov I investigated a little bit and no, there is no easy way to write automated tests for this without writing abstractions for various SF classes. In this case, where the support is very rudimentary, I don't see much value in going to those lengths. If you prefer, I'm happy to try to mock/abstract the SF bits. @galvesribeiro yes, you're right, this is essentially a port of the |
I agree.
If it's relatively easy to do. |
"dependencies": { | ||
"Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0", | ||
"Microsoft.ServiceFabric.Services": "2.1.163", | ||
"Newtonsoft.Json": "7.0.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please remove transitive dependencies from other projects (DI and Json)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do, thanks
I'm removing some of the code, push incoming. |
14e7af6
to
e9a054e
Compare
The latest revision upgrades the packages to v1.3.0 and removes the code used to detect the IP address, using code already in Orleans for that. I also dropped the DeploymentId stuff, since it's not needed. |
650ff03
to
5f7c5fb
Compare
I simplified the code further. I'm happy with it now. |
5f7c5fb
to
2a92dad
Compare
Added basic tests & improved error handling: now errors should occur on construction rather than when opening the listener. I believe this PR is ready for review now (I know, it should be ready when I first submit it - apologies for the many revisions.) |
Is anyone able to review this for inclusion into 1.3.0? It does not touch any core Orleans code, it's purely new code and it's very simple. |
LGTM |
{ | ||
"dependencies": { | ||
"Microsoft.ServiceFabric.Services": "2.1.163", | ||
"Newtonsoft.Json": "7.0.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that this is no longer a transitive dependency since it's being used to return the endpoints to SF
👍 |
I'll test it. Great job @ReubenBond! |
The only comment I have is that if you're going to be adding new projects, then I would prefer to see |
Thanks all :) |
Please dont convert to project.json; we don't know what the future of that format is going to be, do we? |
The Nuget team has replaced |
To answer your question Reuben, yeah, I'd prefer to see all projects with |
I don't know the statistics for this, but I suspect the majority (by a large margin) of Orleans users are using Visual Studio, not VS Code. Orleans does not even currently support dotnet core. I see now reason to use anything 'ahead' of what Orleans itself uses. Wait for the project.json/xproj tooling to go beyond preview/alpha. |
I think you misunderstood me. The combination of |
The reason samples use packages.config is because they can be opened even without the new tooling. It's OK to have Orleans contributors be on whatever tool we find more useful (especially since these tools are free for OSS projects), but we should not mandate that on users of Orleans that want to check out the samples |
There seems to be some misconception about project.json: it's not a part of the dotnet core stuff. It's the preferred file format for Nuget 3.x. However, we're kind of getting off topic here. I don't really care -- I'm a consumer here, not a contributor and didn't mean to derail anything. In short, 👍 to the PR. :) |
Yup, I'm aware of it. It still requires nuget v3.5 and VS2015, where all of our samples can run in VS2013 (or even 2012 I believe). |
2a92dad
to
b8ead50
Compare
Fixed the NuGet package headers, thanks @jdom 👍 |
In contrast to #2070 (Deep Service Fabric Support) and the related issue #1059, this implements minimal Service Fabric support.
This is a replacement for OrleansContrib/OrleansFabricSilo and introduces a new NuGet package,
Microsoft.Orleans.ServiceFabric
, which is referenced by both the client and silo.A sample project is also included in its own solution. Note, however, that the sample relies on a non-existent version of the nuget packages, so either I can split the samples into a separate PR and wait unitl NuGets are published, or we can determine when this will ship and I can stick those versions in the samples.
Please let me know if you have any questions.