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.

Hello ASP.NET/5 – Peças fundamentais de um projeto

Este artigo é parte da série Hello ASP.NET/5.

No post anterior falamos sobre “como preparar o nosso ambiente”, agora vamos meter a mão na massa escrevendo nosso primeiro código e executando-o para ver no que dá.

O código fonte usado neste artigo está disponível em: https://github.com/e5r-learning/serie-helloaspnet5/releases/tag/topico03

Introdução

Para uma melhor experiência e entendimento do assunto tratado nessa série de artigos, foi criado um repositório no GitHub (https://github.com/e5r-learning/serie-helloaspnet5) para que você possa praticar o que é proposto aqui.

Vamos fazer de tudo para não usar exemplos aleatórios, ao invés disso vamos construir uma base de código simples, porém evoluí-la a cada post. Dessa forma teremos um material completo ao final, que você pode usar para revisar cada assunto aqui apresentado. Além é claro de poder consultar o histórico do artigo sempre que quiser. Continuar lendo

Hello ASP.NET/5 – Preparando o ambiente

Este artigo é parte da série Hello ASP.NET/5.

Série - Hello ASP.NET/5

Iniciando o roteiro proposto no artigo anterior, iremos agora preparar nosso ambiente, para só depois, colocar a mão na massa.

Algumas considerações

Talvez você já esteja acostumado a instalar seus ambientes de desenvolvimento em PHP (com o WAMP, LAMP e MAMP), ou Java (com as IDE’s Eclipse ou Netbeans), ou até mesmo ASP.NET  do jeito antigo (com as IDE’s Visual Studio ou Xamarin Studio), e não tenha nenhuma dificuldade em fazer isso. Talvez você nem se lembre como isso era difícil a um tempo atrás, ainda mais se você levar em consideração desenvolver em vários sistemas operacionais diferentes (Windows, Mac e Linux por exemplo). Continuar lendo

Hello ASP.NET/5 – Introdução

Série - Hello ASP.NET/5

Olá mais uma vez. Demorei mas estou aqui novamente.

Como eu havia prometido em um post anterior, vamos falar um pouco mais sobre ASP.NET vNext ASP.NET/5.

Como o tempo passa

Muita coisa aconteceu desde que postei sobre o assunto, o conteúdo anterior já está obsoleto. Isso não é ruim,  muito pelo contrário, mostra o quanto a comunidade é dinâmica e está ativa, e é isso que está me deixando cada dia mais entusiasmado com o novo ASP.NET.

Pra quem já conhece e usa o ASP.NET em seu dia a dia, terá que se adaptar a muitas mudanças (muitas mesmo), pois não é somente uma mudança de componente ou nova funcionalidade que está sendo inserida, mas todo o ecossistema que está mudando.

Quem mais sentirá a mudança é quem não tem costume com o mundo de desenvolvimento open source. Quem já tem alguma experiência com projetos open source (eu por exemplo) notará que na verdade o que a Microsoft está fazendo é se adaptar a realidade desse mundo. Notamos isso ao observar a estrutura dos projetos no GitHub, as novas ferramentas introduzidas, o suporte a cross plataform, a independência de ferramentas visuais priorizando a otimização dos recursos para servidores dedicados, a legibilidade e simplicidade nos arquivos de definição de projeto (project.json), além de muitas outras coisas que já fazem parte do mundo de quem desenvolve projetos open source a muito tempo; e isso muito me alegra. Continuar lendo

Remover acentos C#

Esta é uma dica rápida!

Procurando na internet sobre dicas de como remover acentuação de palavras (coisa comum no desenvolvimento brasileiro) em C#/.NET, encontrei coisas como:

Solução 1:

public static string RemoveAccents(this string text){   
    StringBuilder sbReturn = new StringBuilder();   
    var arrayText = text.Normalize(NormalizationForm.FormD).ToCharArray();
    foreach (char letter in arrayText){   
        if (CharUnicodeInfo.GetUnicodeCategory(letter) != UnicodeCategory.NonSpacingMark)
            sbReturn.Append(letter);   
    }   
    return sbReturn.ToString();   
} 

Solução 2:

public static string removerAcentos(string texto)
{
    string comAcentos = "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç";
    string semAcentos = "AAAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUuuuuCc";

    for (int i = 0; i < comAcentos.Length; i++)
    {
        texto = texto.Replace(comAcentos[i].ToString(), semAcentos[i].ToString());
    }
    return texto;
}

Se continuarmos teremos várias opções, e uma mais engenhosa do que a outra.

Mas… Você sabia que nós podemos simplesmente utilizar os recursos de codificação já disponíveis no .NET em nosso favor?

Pos é. então #FICAADICA:

string RemoveAcentos(string palavacomacentos)
{
    return Encoding.ASCII.GetString(
        Encoding.GetEncoding("Cyrillic").GetBytes(palavacomacentos)
    );
}

Até a próxima, e espero ter ajudado!

.NET e ASP.NET vNext – Prepare-se para o futuro

Olá galera!

Já faz um bom tempo que não escrevo, espero que esse mal hábito acabe logo (rsss…).

Hoje quero aproveitar e falar de um assunto bem legal, e que todo programador adora.

Novidade!

Todo programador adora novidade, tanto é que se ele pudesse reescreveria o sistema a cada vez que uma manutenção fosse solicitada. Diga se não é verdade? (kkk), quem não adora um green field?

Pois bem, falando em novidade, uma que achei bastante interessante foi o anuncio da nova versão do ASP.NET (tá, já faz um bom tempo – mas ainda não está muito difundido na comunidade), a chamada ASP.NET vNext. Já faz algum tempo que o ASP.NET estava disponível como código aberto no CodePlex com o projeto AspNetWebStack, só que agora é pra valer, veja:

  • Primeiro – O projeto foi migrado totalmente para o GitHub;
  • Segundo – Está totalmente liberto do pipeline do IIS, ou seja, não depende mais do monstruoso System.Web.dll;
  • Terceiro – É totalmente multiplataforma, e o time do Mono está envolvido.

Uma outra coisa que gostei muito foi o formato do arquivo de projeto, que agora passa a ser JSON.

Comecei a usar o brinquedinho e posso dizer que promete muito, e neste post pretendo mostrar como você pode preparar seu ambiente para também brincar com o novo .NET e ASP.NET vNext.

Continuar lendo