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

[CRAWL Phase] .Net Core Compatibility #2145

galvesribeiro opened this issue Sep 12, 2016 · 2 comments

[CRAWL Phase] .Net Core Compatibility #2145

galvesribeiro opened this issue Sep 12, 2016 · 2 comments


Copy link

@galvesribeiro galvesribeiro commented Sep 12, 2016

This issue will track the CRAWL phase of Orleans 2.X milestone as tracked by #2143

The idea with this task is to basically make Orleans Core compatible with .Net Core, by having it target .Net Standard and have the minimal impact as possible in the current codebase.

Since .Net Core tooling still unreliable and will (drastically) change before it reach RTM, we are following the guidelines from here and in a new temporary solution we will work at master branch.

The target is to have Orleans building and running on .Net Full CLR and .Net Core (hence why target .Net Standard) on Windows and have the full test set only for the .Net Full CLR (.Net 4.6.1+) while having basic validation on .Net Core on Windows.

We will focus on Windows as a baseline but that doesn't mean people can't run tests on Linux/OSX once this work is done. That means that the core test set will focus on .Net Full CLR and basic .Net Core on Windows but you can test your Orleans application on .Net Core supported OSes. The test framework should stay as is. That means the major efforts will not be to update the test kit to multiple OSes and full .Net Core coverage but, if you feel comfortable, we still accept (and really encourage and appreciate!) PRs however, it will take lower priority (and of course efforts on review) from the core team and people from the community working on this port.

Here are the macro tasks and its issues that will be tracked for this phase:

  • Add new solution targeting .Net Standard Library 1.5 (netstandard15) - #2177
  • Build Orleans.vNext.sln in the CI Build.cmd script - #2353 #2362
  • Replace Binary Serializer - #2162
  • Move Performance Counters to its own TelemetryConsumer - #2122
  • Use supported overloads from Socket class - #2195
  • Remove usage of named mutexes #2366
  • Remove AppDomain usage for assembly loading/scanning - #2025 and in continued progress by @attilah
  • Run non-silo tests (not blocked by Silo not working in memory) - in progress by @xiazen
  • Avoid Silo being MarshalByRefObject but support running tests - #2196
  • Avoid test hooks being MarshalByRefObject (a few still pending) - #2333
  • Avoid usages of CallContext - #2197
  • Run all silo tests that do not use extensibility features (such as external storage providers)
  • Add storage providers with tests (all implementations that support .net standard out of the box) - #2615
  • Add stream providers with tests (all implementations that support .net standard out of the box) - #2615 and #2637
  • Extract client implementation from main Orleans.dll (with should have the minimal abstractions)
  • Migrate off the MSBuild hack for building .NET Standard once new tooling is available
  • Support codegen in the final tooling
  • Remove all NETSTANDARD_TODO comments by implementing workarounds
  • Clean up: Remove all NETSTANDARD comments by moving platform specific components to platform specific DLLs
  • Design our desired 2.0 nuget package structure (IDs and contents)
  • Restructure vNext projects to recreate our expected 2.0 nuget packages output structure
  • Full test set passing on .Net Framework 4.6.2 (net462)
  • Basic validation tests on .Net Core 1.0 (netcoreapp10)

Note: This list will be updated as new sub-tasks (issues and/or PRs) will emerge from this work.

Copy link
Member Author

@galvesribeiro galvesribeiro commented Oct 29, 2016

For those following this issue, we are one step closer:



Copy link

@sergeybykov sergeybykov commented Jan 6, 2018

Closing this one, as it has served its purpose by now.

@sergeybykov sergeybykov closed this Jan 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Linked pull requests

Successfully merging a pull request may close this issue.

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