dotnet / orleans

Cloud Native application framework for .NET
https://docs.microsoft.com/dotnet/orleans
MIT License
10.07k stars 2.03k forks source link

Orleans 2.0 documentation page inaccuracies #4528

Closed dandago closed 5 years ago

dandago commented 6 years ago

This thread relates to the Orleans 2.0 documentation page.

Explicit programmatic specification of application assemblies that replaces automatic scanning of folders by the Orleans runtime upon silo or client initialization. Orleans will still automatically find relevant types, such as grain interfaces and classes, serializers, etc. in the specified assemblies, but it will not anymore try to load every assembly it can find in the folder. An optional helper method for loading all assemblies in the folder is provided for backward compatibility. See Configuration and Migration sections for more details.

I thought that automatic scanning for assemblies was the default behaviour - ref Application Parts documentation and https://github.com/dotnet/orleans/issues/4420#issuecomment-379962127 .

Overhaul of code generation. While mostly invisible for developer, code generation became much more robust in handling serialization of various possible types. Special handling is required for F# assemblies. See Code generation section for more details.

Code generation is not very invisible, given that Orleans won't work without it - ref https://github.com/dotnet/orleans/issues/4417 .

ReubenBond commented 6 years ago

@dandago would you be able to submit a PR to fix that piece?

sumeetekbote commented 6 years ago

@dandago In regards to the second point you make, the bulk of the code gen is invisible to developers. I don't think the word invisible is used in a way to mean you can't see it at all. You just have to install the package then the framework handles the rest. You don't have to actually worry about the implementation of the code gen.

dandago commented 6 years ago

@sumeetekbote I follow your logic. Makes sense.

@ReubenBond I suppose you are referring to the first one? Just one thing I'd like to clarify first.

An optional helper method for loading all assemblies in the folder is provided for backward compatibility. See Configuration and Migration sections for more details.

Is this actually valid? Is there an actual helper method for loading all assemblies, even though it's the default behaviour?

ReubenBond commented 6 years ago

There is, it's IApplicationPartManager.AddFromApplicationBaseDirectory()

JillHeaden commented 6 years ago

@dandago I updated the (Orleans 2.0 page)[https://dotnet.github.io/orleans/Documentation/Orleans-2.0.html] with the IApplicationPartManager.AddFromApplicationBaseDirectory() helper method name.

Are you wanting a further change to the wording about code generation invisibility, or did the reply from @sumeetekbote clear things up?

dandago commented 6 years ago

@JillHeaden I don't see the change on the page you linked, but I do see the change in the related commit - perhaps the docs need to be rebuilt.

No change required re codegen invisibility.

Though I think there is a further change that should be made to fix the first point in my original post, i.e. that "it will not anymore try to load every assembly it can find in the folder" is not really true because it's the default behaviour.

JillHeaden commented 6 years ago

@dandago How about this?

Orleans will still automatically find relevant types, such as grain interfaces and classes, serializers, etc. in the specified assemblies. By default, it will try to load every assembly it can find in the folder.

dandago commented 6 years ago

Sounds good to me.

JillHeaden commented 5 years ago

@dandago The wording change has been implemented: https://dotnet.github.io/orleans/Documentation/Orleans-2.0.html

Okay to close this issue? @sergeybykov