Windows: instalando o Erlang OTP

Introdução

Erlang é uma linguagem de programação desenvolvida pela Ericsson para suportar aplicações distribuídas e tolerantes a falhas.

OTP é o framework feito em Erlang para abstrair algumas funções e tarefas internas, possibilitando o uso por outros frameworks, desenvolvidos em outras linguagens.

Instalação

Entre no site http://www.erlang.org, clique em Downloads e baixe o arquivo OTP 20.1 Windows 64-bit Binary File.

Execute o arquivo otp_win64_20.1.exe.

Escolha todos os componentes para instalar e clique em Next.

Escolha a pasta de instalação e clique em Next.

Mantenha o atalho no menu iniciar e clique em Install.

Aguarde o processo de instalação.

Se for solicitado a instalação do Microsoft Visual C++, aceite os termos e clique em Install.

E aguarde o processo de instalação.

E clique em Close.

Após completar a instalação, clique em Close.

Referências

Git: publicando em dois ou mais servidores de repositórios diferentes

Introdução

Quando pensamos em criar um projeto open-source, é preciso pensar na estratégia de publicação, e muitas vezes não queremos trabalhar direto no GitHub ou outro servidor de repositórios aberto durante algumas etapas de desenvolvimento. Pra isso é possível adotar um forma de publicar em dois locais o mesmo código, com os mesmos commits. Neste exemplo vou abordar uma projeto que nasceria no Git privado, dentro de um servidor de TFS da Microsoft e depois seria publicado em um diretório público do GitHub. Vou mostrar duas maneiras de fazer esta publicação dupla, uma onde os commits são simultâneos e outra onde trabalho em um repositório privado e depois envio o código para o espaço compartilhado.

Publicação simultânea

Crie dois repositórios em servidores diferentes, no caso, eu criei um repositório no TFS e outro no GitHub.

  • GitTFSProject
  • GitHubProject

Abra o GitBash e clone um dos repositórios.

Faça uma alteração no diretório, como incluir um arquivo de texto. Execute o comando:

E agora execute um commit com a devida mensagem:

Adicione a configuração de push para o diretório original:

Em seguida a configuração para o outro servidor:

Execute finalmente o push:

Se quiser ver todos os repositórios que estão configurados, execute:

Referência: https://stackoverflow.com/questions/14290113/git-pushing-code-to-two-remotes

Commits em tempos diferentes

Crie dois repositórios em servidores diferentes, no caso, eu criei um repositório no TFS e outro no GitHub.

  • GitTFSProject
  • GitHubProject

Abra o GitBash e clone um dos repositórios.

Abra o diretório pelo GitBash:

Neste caso, você pode criar uma branch a partir da master, executando o comando:

Faça uma alteração no diretório, como incluir um arquivo de texto. Execute o comando:

E agora execute um commit com a devida mensagem:

Faça mais algumas alterações, para que tenha ao menos 3 commits.

Execute o push e publique a branch.

Agora temos 3 commits com push no TFS.

Vamos alterar o servidor de repositórios para o GitHub e enviar pra lá estes commits.

Agora precisamos executar novamente o processo de publicação da branch e envio dos commits, com o comando:

Então, temos a mesma branch com os mesmos commits no GitHub!

Agora, retorne a configuração de push para a URL original:

Referência: https://git-scm.com/docs/git-remote

Conclusão

Assim é possível criar uma estratégia de publicação de códigos, sem precisar lançar em todos os diretórios ao mesmo tempo.

C# DDD: conhecendo os Domain Events

Ao desenvolver um projeto em C#, usando a abordagem DDD, após criar as entidades e seus comportamentos, muitas vezes precisamos criar eventos que são disparados após um comportamento específico do domínio.

Neste caso, nós temos uma abordagem chamada Domain Events, que após a executar uma função, é disparada um ou mais comandos que são executados após, ou até mesmo em segundo plano.

O Projeto

Para criar o projeto, se pressupõe que você já entende de abordagem por domínio, A estrutura conta com três projetos: um projeto para o domínio, outro console para exibir os dados e disparar os eventos e um projeto de IoC, ou seja, para usar Inversão de Controle ou Injeção de Dependência.

Criando os Projetos

Abra o Visual Studio 2017, e crie uma nova solução chamada DDDDomainEvents, e inclua um projeto tipo Class Library chamado DDDDomainEvents.Domain,  adicione outro projeto do tipo Class Library chamado DDDDomainEvents.IoC e por fim adicione um projeto do tipo Console App chamado DDDDomainEvents.Prompt. Todos os projetos foram criado em .NET Framework 4.7.

No projeto DDDDomainEvents.Domain, crie uma pasta chamada Entities, e dentro desta pasta, adicione uma classe chamada Person.cs.

No mesmo projeto, crie uma pasta chamada Events, e dentro desta pasta, adicione uma interface chamada IDomainEvent.cs.

Na pasta Events, adicione uma classe chamada PersonRegisteredEvent.cs.

Crie uma pasta chamada Handlers, e dentro desta pasta, adicione uma interface chamada IHandler.cs.

Na pasta Handlers, adicione uma classe chamada PersonSave.cs.

No projeto DDDDomainEvents.IoC adicione uma referência ao projeto DDDDomainEvents.Domain.

Abra o Package Manager Console, e instale o SimpleInjector no projeto DDDDomainEvents.IoC.

Adicione uma classe chamada BootStrapper.cs.

No projeto DDDDomainEvents.Prompt adicione uma referência aos projetos DDDDomainEvents.Domain e DDDDomainEvents.IoC.

Abra o Package Manager Console, e instale o SimpleInjector no projeto DDDDomainEvents.Prompt.

Altere a classe Program.cs para que ela dispare o evento.

Defina o projeto DDDDomainEvents.Prompt como o projeto padrão, clicando o botão direito sobre ele e em seguida clicando em Set as StartUp Project.

Acesse o código da solução:

github.com/tiagopariz/DDDDomainEvents

Visual Studio: alterar o framework padrão para novos projetos

Introdução

Muitas vezes é preciso que todos os novos projetos já estejam em uma versão do .Net Framework específica, ou simplesmente, que já seja criado com o target na última versão disponível no Visual Studio.

Alterando a versão padrão

Abra o Visual Studio, clique em File, em seguida em New e por último em Project…

Anote a versão do .Net Framework que será a padrão para os novos projetos, como por exemplo “4.6.1”.

Pressione as teclas Win + R, em Abrir digite o comando regedit e clique em Ok.

A janela do Editor do Registro será exibida.

Localize a chave HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\NewProjectDialog, e edite a chave fxVersion para a versão do .Net Framework desejada.

Observação: onde está escrito 14.0, que equivale a versão do Visual Studio 2015, pode ser alterada para a versão do seu Visual Studio, como por exemplo, 13.0 para o 2013.

O Visual Studio 2017 não precisa desta configuração, pois ele lembra a última versão usada ao criar um projeto.

Pronto, agora todas os novos projetos serão automaticamente definido com a versão configurada por padrão.