dotnet / orleans

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

Minimal Orleans Application and Running in a Stand-Alone Silo tutorial outdated #2617

Open attilah opened 7 years ago

attilah commented 7 years ago

Minimal Orleans Application and Running in a Stand-Alone Silo is outdated, need to revisit and update against the newest packages we've, some screenshots also need to be updated.

attilah commented 7 years ago

You can find the docs in the gh-pages branch.

snarlynarwhal commented 7 years ago

Forgive my lack of experience - I am new to working with open source projects and with markdown documentation. I forked the repo and switched to the gh-pages branch, but when I attempted to build, I got tons of build errors: Error occurred while restoring NuGet packages: Could not find file. It's a ton of .json files.

sergeybykov commented 7 years ago

Are you trying to build as described in https://github.com/dotnet/orleans/blob/gh-pages/readme.md?

docfx src\docfx.json

snarlynarwhal commented 7 years ago

Oops, I missed that. I got it working now, thanks!

miker1423 commented 7 years ago

Hello! I made some changes to the tutorial on my own fork of Orleans, here is the commit, what do you think about it? https://github.com/miker1423/orleans/commit/11fb5f813448c32e04c122f086b9090673403563

sergeybykov commented 7 years ago

@miker1423 I added a comment there.

raghav710 commented 7 years ago

I'd like to add some points to the discussion. I tried the stand alone silo example today and found that

Here is my Orleans.exe.config (which is set to Copy if newer)

<configuration>
  <system.diagnostics>
    <trace autoflush="true" indentsize="0">
      <listeners>
        <remove name="*" />
      </listeners>
    </trace>
    <switches>
      <add name="traceLevel" value="2" />
    </switches>
  </system.diagnostics>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
  </startup>
  <runtime>
    <gcServer enabled="true"/>
    <gcConcurrent enabled="false"/>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.WindowsAzure.ServiceRuntime" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.4.0.0" newVersion="2.4.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.WindowsAzure.Configuration" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.2.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

and here is my GrainsCollection app config:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.2.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
dandago commented 7 years ago

Aside from being outdated, the steps to set up a proper Orleans project are scattered across the documentation. I had written an article gathering those steps in one place, in case it helps.

Since I wrote that article, I learned that the AppDomain stuff is not necessary unless you're running silo and client in the same program. Also, the client code will need to be revised when Orleans 1.5 is released, since it introduces a non-static grain client.

There might be other things that need to be updated, and it would be good to mention them here.