GitHub: criando um Fork e enviando um Pull Request

Já pensou em contribuir com aquele projeto bacana opensource e deixar sua marca, mostrando que você é uma pessoa aberta a interagir com a comunidade de desenvolvimento? Pois bem, neste artigo vou mostrar como criar um fork de um repositório do GitHub, e depois enviar a contribuição para o autor aprovar. Para nosso exemplo vou usar o projeto Flunt do André Baltieri para sugerir uma alteração.

Primeiro, vamos no repositório do Flunt, no perfil do André, acessando https://github.com/andrebaltieri/Flunt, e então vamos clicar em fork, que irá criar uma cópia de todo o projeto em um repositório na minha conta.

Aguarde o processo terminar.

Agora eu tenho um cópia do projeto em um repositório próprio, onde posso fazer todas as alterações na branch master que eu quiser.

Antes de prosseguir, é preciso criar clone local, clicando em Clone or download, e copiando a URL.

Agora vamos criar um clone no meu computador, usando o comando do Git e para isso abra o Git Bash e cole o endereço, como o exemplo a seguir.

Obs.: Se você for repetir o tutorial, use seus dados de usuário do seu repositório.

Acesse a pasta e abra no Visual Studio o projeto, e abra a classe Notifiable.cs, e nela vamos alterar o trecho de código destacado da linha 12.

Onde temos a variável somente leitura de notifications:

Vamos alterar a declaração usando a sintaxe chamada expression-bodied property, como segue:

Agora vamos fazer upload da alteração via comando do Git, usando a sequência que segue.

Na tela a seguir é mostrado todos os comandos, desde o acesso à pasta até o envio do código.

Abra o o seu repositório pelo site do GitHub, no meu caso, acessando https://github.com/tiagopariz/flunt e clique em Pull requests, em seguida em create a pull request.

Em Comparing changes, clique em compare across forks e por fim clique em Create pull request.

Em Open a pull request, confira a descrição e adicione informações adicionais se assim for necessário, e finalmente clique em Create a pull request.

A alteração será enviado ao dono do repositório, com os detalhes do que irá mudar. 

Pronto, agora é só esperar a aprovação.

IIS: efetuando deploy no Windows 10 e IIS 10

Não é mais recomendado usar o protocolo FTP para transferência de arquivos por conta de suas vulnerabilidades, tão pouco para publicar aplicações que carregam consigo códígos e senhas altamente sensíveis. Então, a plataforma do Visual Studio e o IIS fornecem um meio muito mais rápido e seguro de subir publicações para aos ambientes de testes e produção chamado Web Deploy, neste artigo vou mostrar como configurar e publicar a um site a partir do Visual Studio 2017.

Web Platform Installer

Para facilitar a Instaleinstalação de ferramentas no IIS é preciso instalar a Web Platform Installer, para isso acesse o site https://www.microsoft.com/web/downloads/platform.aspx.

Clique em Install this extension e faça download do pacote para IIS.

Excute o instalador, e clique em I accept the terms in the License Agreement e em seguida em Install. Se o instalador pedir para executar como administrador, clique em Sim.

Aguarde o término da instalação e clique em Finish.

Agora no IIS, em gerenciamento, teremos a opção do Web Platform Installer.

Instale Web Deploy 3.6

Abra o IIS, e clique duas vezes em Web Platform Installer e pesquise por Web Deploy 3.6. Clique em Adicionar e então em Instalar.

Em Pré-Requisitos, clique em Aceito.

Aguarde o download e instalação.

Ao terminar a instalação, clique em Concluir.

Obs.: Talvez seja preciso verificar algumas coisas antes de publicar uma aplicação, segue uma lista de procedimentos que talvez sejam necessários:

  • Reiniciar os serviços do IIS,
  • Reiniciar o Site,
  • Reiniciar o Serviço de Gerenciamento da Web (wmsvc),
  • Desativar o Firewall ou liberar a porta 8172,
  • Fechar e abrir novamente a aba de Profile de publicação no Visual Studio.

Adicione o host deploy.sitelocal.com

Para facilitar o trabalho de depuração com a aplicação e simular um acesso direto pela internet, configure o host e adicione o site no IIS com a URL deploy.sitelocal.com seguindo este artigo.

Crie uma aplicação ASP.NET MVC

No Visual Studio, crie uma solução chamada DeploySite, e adicione um projeto do tipo ASP.NET Web Application chamado Deploy.Site. O nível de detalhes e complexidade não importa, pois só será preciso para publicação, eu criei um aplicação MVC e deixei pronta no GitHub, caso não queira nem se dar ao trabalho e só fazer um clone.

https://github.com/tiagopariz/DeploySite

Crie o perfil de publicação

Após criar e carregar a aplicação, vamos usar nosso servidor de deploy para subir nosso site. Para isso, clique com o botão direito sobre o projeto e clique com o esquerdo em Publish.

Em Pick a publish target, clique em IIS, FTP, etc e em seguida em Create Profile.

Preencha os campos de conexão, com os dados:

  • Server: O endereço do servidor de deploy, que pode não ser o mesmo do host, pois um servidor com IIS pode ter vários hosts, no nosso caso, é http://localhost.
  • Site name: o nome do site configurado no IIS, no caso deploy.sitelocal.com.
  • Destination URL: o endereço da Internet da aplicação que está sendo publicada, no nosso caso http://deploy.sitelocal.com, este endereço será aberto ao final da publicação.

Clique em Validate Connection para testar a configuração e se estiver tudo ok, clique em Next >.

Em Settings, selecione Release em Configuration e clique em Save.

Ao abrir a aba de publicação, clique em Rename Profile.

Digite o novo nome como DeployReleaseProfile e clique em Save.

Clique em Publish e visualize na janela Output os resultados.

Após a publicação, o site será aberto no navegador.

Dica: instale apenas o Web Deploy

É possível instalar no windows apenas o Web Deploy sem o Web Platform Installer, então para isso, entre no site https://www.iis.net/downloads/microsoft/web-deploy e faça o download do Web Deploy Installer.

IIS: adicionar endereços válidos locais para depuração

Muitas vezes, ao trabalhar com aplicações Web e/ou WebAPI, deparamos com limitações e dispositivos de segurança nos navegadores, pois eles exigem um endereço válido para comunicação, tanto entre APIs quanto para requisições Ajax. Geralmente, quando configuramos nosso IIS, o endereço default costuma ser:

http://localhost/nomeapp

Mas, este endereço é inválido para a segurança de uma aplicação web, principalmente para algumas chamadas AJAX, que procuram algo no padrão:

http://nomeapp.com ou http://nomeapp.dominio

Para contornar este problema é preciso editar o arquivo hosts (sem extensão mesmo) em C:\Windows\System32\drivers\etc, abrindo em um editor de texto. Inclua um formato de endereço válido seguindo o padrão nomedoapplocal.com, para todos os aplicativos necessários.

Obs.: Talvez seja preciso alterar as configurações de segurança da pasta C:\Windows\System32\drivers\etc, fornecendo acesso completo ao seu usuário.

Agora, é só usar estes endereços no seu IIS.

Jenkins: Instalar no Windows

Integração continua é uma necessidade neste novo mundo de mudanças constantes e metodologias ágeis com entregas constantes, e para isso temos muitas ferramentas, mas uma das mais populares é o Jenkins, que funciona para inúmeras plataformas e sistemas operacionais. Neste artigo vou ensinar como fazer uma instalação básica do Jenkins em um servidor Windows e deixá-lo pronto para publicar a partir de repositórios Git.

Baixe o Jenkins para Windows

Entre no site do Jenkins em jenkins.io, clique em Download.

E clique na versão para o Windows.

Descompacte o arquivo jenkins-(versão).zip e execute o instalador jenkins.msi e ao abrir a tela de bem-vindo, clique em Next.

Mantenha a pasta padrão de destino da instalação e clique em Next.

Em Ready to install, clique em Install.

Aguarde o processo de instalação, se for solicitado pelo Windows para executar como administrador, clique em Sim.

Após a conclusão, clique em Finish.

Configuração inicial do Jenkins

Após o térmno da instação, o endereço http://localhost:8080/ vai abrir no browser e então uma tela de desbloqueio do Jenkins será exibida, com o caminho da senha inicial.

Abra o arquivo initialAdminPassword no Bloco de Notas e copie a senha.

Digite a senha no campo Administrator password e clique em Continue. Em Customize Jenkins clique em Install suggested plugins, para que o Jenkins instale o plugins mais usados.

Aguarde o término das configurações iniciais e a instalação dos plugins.

Após a instalação dos plugins, será preciso criar o primeiro usuário administrador, para isso preencha o formulário em Create First Admin User e por fim clique em Save an Finish.

Após a conclusão, em Jenkins is ready!, clique em Start usign Jenkins.

Agora o jenkins está pronto para uso! O próximo passo é criar os Jobs e instalar os plugins adicionais.

Entity Framework: migrations com vários projetos e bancos de dados

Quando trabalhamos com soluções grandes, onde há vários projetos e cada um tem sua própria base de dados, assim como seu próprio versionamento usando Migrations do Entity Framework, fica meio complicado ficar alterando o Set as startup project e o Default Project na janela do Package Manager Console. Então, o ideal é apontar os projetos de configuração e dados na mesma linha de comando do Add-Migration e Update-Database.

Atualizando o banco de dados

Quando abrimos uma projeto que já tem migrations, precisamos atualizar o banco de dados, e para isso usamos o comando Update-Database. Mas podemos ser mais específico, e não precisar escolher nada em tela para que ele saiba onde achar a Connection String e Contexto, usando o comando abaixo.

Update-Database

Este comando atualiza o banco de dados com a ultima versão das migrations registradas, assim como roda algum Seed que pode popular tabelas.

-ProjectName

Nome do projeto onde está a configuração das entidades que representam os objetos do banco de dados, ou os DbSets.

-StartUpProjectName

O projeto que contém a Connection String para conexão com o banco de dados.

-ConfigurationTypeName

Nome completo, incluindo as namespaces, da entidade de configuração das migrations. Este arquivo é aquele que é gerado automaticamente ao usar o comando Enable-Migrations para ativar as migrações.

-Verbose

Este parâmetro exibe na tela todas as alterações efetuadas, assim como configurações definidas nos parâmetros anteriores.

Adicionando uma nova migração

Após atualizar o banco de dados, fazer as alterações nos objetos de domínio, precisamos adicionar a migração para depois enviar ao banco de dados as alterações versionadas, e novamente, é preciso que não precisemos definir o projeto de inicialização e dados. Para isso, use o comando a seguir:

Além dos parâmetros -ProjectName, -StartUpProjectName e -ConfigurationTypeName que já foram explicados no tópico anterior, precisamos incluir o parâmetro -Name e definir um nome que identifique qual alteração será feita no banco de dados.

Após adicionar a migration, só é preciso digitar o comando Update-Database com os parâmetros corretos.