Conhecendo o Microsoft Orleans

Thiago Loureiro
3 min readMar 7, 2018

--

Nesse artigo irei falar um pouco sobre o Microsoft Orleans, ainda não muito conhecido mas um framework muito bacana!

O Orleans é um Framework desenvolvido pela Microsoft, com código aberto utilizado em algumas plataformas conhecidas assim como nos jogos Halo 4 e 5.

Mas afinal pra que serve?

Orleans é um framework que fornece uma abordagem direta para a construção de aplicativos de computação de grande escala distribuídos, sem a necessidade de aprender e aplicar uma concorrência complexa ou outros padrões de escala. Foi criado pela Microsoft Research e projetado para uso na nuvem.

O Orleans é um Actor-based framework, isso significa que cada ator tem a sua responsabilidade, e cada objeto desse é chamado de Grain, e consequentemente os Grains ficam dentro dos Silos.

Silos são o que hospedam e executam Grains. Novamente, os grãos são seus objetos que expõem o comportamento e encapsulam o estado. Orleans cria seus grãos no Silo e os executa. Seu código de cliente fará referência somente às interfaces que seus grãos implementam. E é possível você ter um conjunto de silos na sua aplicação.

Vamos ao que interessa? :)

Para facilitar vamos baixar o Microsoft Orleans Tools for Visual Studio

Após a instalação do Tools abra o Visual Studio, File -> New -> Project

Vamos criar Inicialmente o Dev/Test Host, escolha um nome para o Projeto e clique em OK.

Será criado um novo projeto, já com o Program.cs com algumas informações:

Startup do Silo no Server

Adicione agora um novo projeto do tipo Orleans Grain Interface Collection

Esse projeto ficarão apenas as interfaces.

No exemplo irei renomar a interface padrão criada de IGrain1.cs para IConverter.cs, onde irei implementar um conversor de distância/velocidade.

Agora vamos criar um outro projeto do tipo Orleans Grain Class Collection.

Projeto chamado de ConverterGrain

Após a criação do projeto, altere o Grain1.cs para ConverterGrain.cs, adicione a referência ao ConverterContracts e implemente a Interface criada no Interface Collection:

No projeto principal (Silo/Host) adicione referência ao projeto da Interface Collection e em seguida realize a chamada ao Grain da seguinte forma:

E então nosso tão esperado F5 com os resultados

No próximo artigo irei aprofundar mais e citar mais exemplos.

Projeto utilizado no artigo:

Até a próxima!

Ciao!

--

--