Conhecendo o Microsoft Orleans
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:
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.
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!