GitHub: uma visão geral e como a Microsoft apoia esta iniciativa

github-00

O objetivo deste artigo é discutir, num primeiro momento, a utilização do GitHub como mecanismo para o controle de projetos de software. Mais adiante será avaliado o papel que este serviço possui hoje para a Microsoft, assim como fornecidas algumas referências para a utilização do GitHub em projetos criados na plataforma .NET.

GitHub e o desenvolvimento de software

As atividades relacionadas ao desenvolvimento de software costumam exigir uma organização mínima, sobretudo no que se refere à estruturação dos diferentes artefatos criados ao longo de um projeto. Documentações, arquivos com código-fonte, bibliotecas e executáveis são alguns exemplos notórios destes artefatos.

Ainda sobre a questão da organização, projetos maiores exigirão uma dose extra de cuidados. Em situações como estas, o mais comum é que as tarefas sejam divididas entre um time de desenvolvedores, com cada membro executando ações para a implementação de uma ou mais partes especificadas para a aplicação.

Outro ponto importante a ser levado em conta envolve as mudanças, algo praticamente certo ao longo do ciclo de vida de um projeto de software. Sejam motivadas por novos requisitos de negócio ou buscando corrigir falhas não detectadas num primeiro momento, tais alterações produzirão como resultado inúmeras versões de uma mesma aplicação. É possível inclusive que algum destes releases introduza problemas novos ou, mesmo, revele erros que passaram até então despercebidos aos usuários do sistema considerado.

Os sistemas controladores de versão correspondem à solução para os diversos cenários citados. Partindo de um repositório centralizado para cada aplicação, este tipo de ferramenta permite o gerenciamento das versões dos diferentes artefatos que compõem um projeto de software. Algumas funcionalidades comuns a esses sistemas incluem a consulta ao histórico de cada modificação realizada, a possibilidade de se restaurar uma versão antiga de um artefato (ou até de todo um projeto), bem como meios de se bloquearem mudanças enquanto um desenvolvedor não confirmar uma série de modificações produzidas pelo seu trabalho.

Como exemplos de sistemas de versionamento que gozam de grande popularidade, é possível citar o Team Foundation Service da Microsoft, além de soluções abertas como o Apache Subversion (SVN) e o Git. No caso específico do Git (concebido ainda em 2005 por Linus Torvalds, o “pai” do Linux), as funcionalidades deste projeto serviriam de base para o surgimento em 2008 do serviço conhecido como GitHub.

Partindo da criação de repositórios na Web, o GitHub é hoje uma das principais alternativas para o controle de versões em soluções open source. Dentro deste serviço é possível tanto a criação sem custo de repositórios públicos (justamente o tipo de funcionalidade utilizada por projetos de software livre), quanto o armazenamento de forma privada de soluções mediante a escolha de um plano pago.

Inúmeras companhias, institutos de pesquisa e, mesmo, órgãos governamentais têm utilizado o GitHub como um importante aliado na implementação de aplicações. Uma relação com inúmeros casos de utilização deste serviço pode ser encontrada no link abaixo:

https://government.github.com/community/

Trabalhar com o GitHub é uma tarefa relativamente simples. Do ponto de vista prático, os desenvolvedores manterão cópias de projetos em seus computadores, atualizando os repositórios hospedados neste serviço tão logo concluam as mudanças planejadas. Este processo de sincronização pode ser realizado tanto por ferramentas de sincronização disponibilizadas pelo GitHub, quanto em funcionalidades oferecidas por IDEs. Um exemplo de aplicativo que facilita a utilização deste serviço é o GitHub for Windows; o link apresentado a seguir é de um tutorial a respeito do mesmo:

http://www.devmedia.com.br/github-for-windows-2-0-controlando-projetos-de-software-hospedados-na-web/31347

E qual a posição da Microsoft diante do GitHub?

A Microsoft vem fazendo uso do GitHub como repositório para o armazenamento de soluções, com isto acontecendo sobretudo em iniciativas relacionadas à plataforma .NET. Bons exemplos disto são as recentes versões de projetos como o Entity Framework 7, o ASP.NET 5 (vNext), o .NET Core 5 e o .NET Compiler Plataform (Roslyn). No link indicado a seguir é possível encontrar uma listagem de todas as soluções disponibilizadas pela Microsoft no serviço GitHub (incluindo o código-fonte das mesmas):

https://github.com/Microsoft/dotnet

O fato do GitHub estar substituindo gradativamente o portal CodePlex faz parte da nova estratégia da Microsoft em oferecer uma opção de desenvolvimento multiplataforma realmente viável. Um dos objetivos com isto é se aproximar de outras comunidades técnicas, principalmente aquelas engajadas na implementação de softwares para sistemas Linux e Mac.

Importante destacar que o próprio Visual Studio 2013 pode utilizar o GitHub como alternativa para controle de versões de projetos .NET. É o que demonstra a Figura 1, na qual a publicação do código-fonte de uma aplicação está sendo feita a partir da janela Team Explorer:

github-01
Figura 1: Publicando um projeto no GitHub a partir do Visual Studio 2013

Maiores informações sobre a integração entre o Visual Studio 2013 e o GitHub podem ser encontradas no seguinte link:

http://michaelcrump.net/setting-up-github-to-work-with-visual-studio-2013-step-by-step/

Conclusão

A ideia com este post foi ressaltar a importância que o GitHub adquiriu nos dias atuais dentro da área de desenvolvimento de software, bem como fornecer uma visão geral acerca da evolução e das possibilidades oferecidas pelo mesmo. A opção da Microsoft pelo GitHub contribuirá para popularizar mais ainda este serviço, o que certamente deve motivar inúmeras empresas a adotar esta solução num futuro próximo.

Espero que tenham achado este conteúdo útil

Até uma próxima oportunidade!

 

Renato Groffe – Consultor em TI, MCTS
https://www.facebook.com/RenatoGroffeSW