<story><title>Microsoft Orleans – An approach to building distributed applications in .NET</title><url>http://dotnet.github.io/orleans/</url></story><parent_chain><item><author>refulgentis</author><text>&amp;quot;actors are called ‘grains’,&amp;quot;&lt;p&gt;If you can write a sentence &amp;quot;X are called Y&amp;quot;, and X is more well-known, drop Y.&lt;p&gt;&amp;quot;You can then send messages to the grain by creating a proxy object, and calling the methods:
var grain = GrainClient.GrainFactory.GetGrain&amp;lt;IMyGrain&amp;gt;(&amp;quot;grain1&amp;quot;); await grain.SayHello(&amp;quot;World&amp;quot;);&amp;quot;&lt;p&gt;var brain = BrainClient.BrainFactory.GetBrain&amp;lt;IMyBrain&amp;gt;(&amp;quot;brain1&amp;quot;); await brain.Say(&amp;quot;WTF&amp;quot;);</text></item></parent_chain><comment><author>theprotocol</author><text>I share your sentiment.&lt;p&gt;I&amp;#x27;d been away from .NET&amp;#x2F;C# for a few years and came back to find that they dialed the abstraction level to 11.&lt;p&gt;I adore C# as a language but I find myself increasingly alienated by its generally accepted coding style.&lt;p&gt;I find that Microsoft&amp;#x27;s products have extremely unintuitive naming schemes at both a low level (language, standard libraries) and a high level (.NET product word salad naming schemes, Office 365 referring to a diverse and inconsistent range of products...).&lt;p&gt;The skeptic in me thinks that this may be an attempt at educational lock-in.&lt;p&gt;The lines between marketing and technology have definitely been blurred.</text></comment>
<story><title>Microsoft Orleans – An approach to building distributed applications in .NET</title><url>http://dotnet.github.io/orleans/</url></story><parent_chain><item><author>refulgentis</author><text>&amp;quot;actors are called ‘grains’,&amp;quot;&lt;p&gt;If you can write a sentence &amp;quot;X are called Y&amp;quot;, and X is more well-known, drop Y.&lt;p&gt;&amp;quot;You can then send messages to the grain by creating a proxy object, and calling the methods:
var grain = GrainClient.GrainFactory.GetGrain&amp;lt;IMyGrain&amp;gt;(&amp;quot;grain1&amp;quot;); await grain.SayHello(&amp;quot;World&amp;quot;);&amp;quot;&lt;p&gt;var brain = BrainClient.BrainFactory.GetBrain&amp;lt;IMyBrain&amp;gt;(&amp;quot;brain1&amp;quot;); await brain.Say(&amp;quot;WTF&amp;quot;);</text></item></parent_chain><comment><author>KirinDave</author><text>I suspect the F# interface will not only be more to your liking, and probably be trivial to tie in with MBrace which is a pretty damn great library.&lt;p&gt;All C#&amp;#x2F;Java style static typing code not only looks like that, but often calls it &amp;quot;best practice.&amp;quot;&lt;p&gt;Worth noting that &amp;quot;await&amp;quot; use is quite elegant in what it does here.</text></comment>