gulp-dotnet5

Todos desenvolvedores .NET (estou falando dos de verdade) já estão cientes que temos agora o lançamento do .NET 5, também conhecido como .NET 2015. Várias novidades surgiram, Visual Studio 2015 Comunity, Visual Studio Code, .NET Core, ASP.NET 5, etc.

Uma das coisas mais legais que achei foi que a equipe do ASP.NET está recomendando o uso de várias tecnologias open source já estabelecidas no mercado, tipo Node, Grunt, Gulp, e etc.

Eu então comecei a testar o uso do Gulp em meus projetos ASP.NET, tem até esse tutorial na documentação oficial. É bastante legal e simples a utilização, e ao mesmo tempo bastante poderosa.

Só que pra mim existia um porém!

Quando você está criando um site que usa o Gulp para automatizar as tarefas básicas de transpiling de Less pra CSS, TypeScript pra JavaScript, JsHint, teste unitário JavaScript, etc., tá tranquilo. Porque você tem o Gulp dentro do seu projeto, e o VisualStudio ou DNU vai executar o Gulp como mais uma tarefa no seu fluxo padrão.

Só que, e se você estiver desenvolvendo algo como o próprio Framework ASP.NET MVC? Nesse projeto você tem vários componentes (observe o diretório src), além de exemplostestes unitários, build automatizado pra Windows e Unix, que são usados principalmente na integração contínua com ferramentas iguais ao Travis, AppVeyor. Além de uma série de outras características que são inerentes a grandes projetos da vida real que aplicam a portabilidade e automação como essência.

Pois bem, eu estou em um projeto com essas características, e percebi que o Gulp pode ser um grande aliado nessas tarefas, mas você precisa entendê-lo e usar de verdade, e não só como um brinquedo dentro do Visual Studio.

Aí eu foi a procura de plugins e formas de automatizar minhas tarefas. E o que aconteceu? Não encontrei. Na verdade encontrei algumas (gulp-dnx-tasks e gulp-dnx), só que não serviam pra o meu cenário. Até porque elas seguem a mesma linha do uso em um projeto básico.

Então como um bom e velho programador, o que eu fiz? Criei meu próprio plugin. E como não sou pão duro, estou disponibilizando pra comunidade no GitHub e já está registrado no NPM pra você simplesmente começar a utilizar.

Repositório no GitHub: https://github.com/e5r/gulp-dotnet5
Registro no NPMJS: https://www.npmjs.com/package/gulp-dotnet5

Talvez depois eu crie algum material mostrando como utilizo ele no meu dia a dia. Por enquanto fica o anúncio dessa ferramenta, quem sabe ela também seja útil pra você.

Na versão liberada agora, a 0.1.0, está implementado somente o utilitário DNU, mas ele já é suficiente para compilar, empacotar, publicar e fazer tudo o mais que o dnu faz na linha de comando. Porém ainda estarei implementando as ferramentas DNVM principalmente para deixar meus deploy’s mais autônomos, e em seguida implementar o DNX para auxiliar o dia a dia do desenvolvimento.

Bom é isso aí, utilizem como preferirem, e se puder, seu feedback é bem vindo também.

E se quiserem saber mais sobre os projetos que estou envolvido, e até mesmo se tiver a coragem de se envolver em projetos de verdade. Procure pela comunidade E5R Development Team no Google+ e solicite o convite, lá te conto mais. Por enquanto você pode conhecer algumas ideias no GitHub.