Orleans: [CRAWL Phase] .Net Core Compatibility

Created on 12 Sep 2016  路  2Comments  路  Source: dotnet/orleans

_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:

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

Most helpful comment

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

image

馃拑

All 2 comments

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

image

馃拑

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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

scharada picture scharada  路  3Comments

bwanner picture bwanner  路  5Comments

pherbel picture pherbel  路  4Comments

Liversage picture Liversage  路  4Comments

guopenglun picture guopenglun  路  3Comments