segunda-feira, 4 de abril de 2016
Anotações do vídeo "ASP.NET 1.0 Core: Advanced TagHelpers"
No vídeo há uma demonstração do TagHelper (Forma de escrever componentes utilizando o formato de um XML/Html ao invés do HtmlHelper) para criar um controle que resolve dependências de javascript(De forma parecida que faz o Reactcomo RequireJS). Na funcionalidade a proposta é fazer de maneira recursiva, respeitando a ordem do script que deve ser adicionado primeiro à página.
Demonstra a injeção de dependência pelo construtor das interfaces abaixo (Necessária para atingir o objetivo deste TagHelpere em específico):
IUrlHelperFactory = Para resolver a url que está definida como "~/lib/"
WebRootFileProvider = Para buscar as informações de um arquivo em um caminho
Também mostra a injeção de dependência de propriedade com metadados (ViewContext)
O código fonte gerado pelo vídeo está disponível no Github.
quinta-feira, 31 de março de 2016
Build 2016 - Dia 1
Está ocorrendo desde 30/3/2016 o evento Build da Microsoft. São várias novidades e o vídeo completo do dia 1 pode ser assitido aqui:
Assisti o vídeo e na metade comecei a fazer algumas anotações de pontos relevantes que gostaria de compartilhar (Ou até ser anotações de lembrete para mim no futuro). Então segue alguns pontos que irei acrescentar ao longo do tempo:
O Bash do Linux é um interpretador de linha de comandos para realizar as operações no sistema operacional, muito utilizado pelos desenvolvedores para instalar pacotes.
Em mais uma ação da Microsoft, para aproximar da comunidade Open Source, agora será possível executar o Bash de forma nativa no windows como escreveu o Scott Hanselman em um post:
"This isn't Bash or Ubuntu running in a VM. This is a real native Bash Linux binary running on Windows itself. It's fast and lightweight and it's the real binaries. This is an genuine Ubuntu image on top of Windows with all the Linux tools I use like awk, sed, grep, vi, etc. It's fast and it's lightweight. The binaries are downloaded by you - using apt-get - just as on Linux, because it is Linux. You can apt-get and download other tools like Ruby, Redis, emacs, and on and on. This is brilliant for developers that use a diverse set of tools like me."
Exemplo de código C# da utilização do bot que já tem uma framework disponível:
https://youtu.be/GgutlKV42SY?t=2h34m
Muito interessante o exemplo de ensinar o bot com as perguntas dos usuários:
https://youtu.be/GgutlKV42SY?t=2h30m
https://youtu.be/GgutlKV42SY?t=2h41m30s
Assisti o vídeo e na metade comecei a fazer algumas anotações de pontos relevantes que gostaria de compartilhar (Ou até ser anotações de lembrete para mim no futuro). Então segue alguns pontos que irei acrescentar ao longo do tempo:
Linhas de comando Bash(Linux) no Windows
O Bash do Linux é um interpretador de linha de comandos para realizar as operações no sistema operacional, muito utilizado pelos desenvolvedores para instalar pacotes.
Em mais uma ação da Microsoft, para aproximar da comunidade Open Source, agora será possível executar o Bash de forma nativa no windows como escreveu o Scott Hanselman em um post:
"This isn't Bash or Ubuntu running in a VM. This is a real native Bash Linux binary running on Windows itself. It's fast and lightweight and it's the real binaries. This is an genuine Ubuntu image on top of Windows with all the Linux tools I use like awk, sed, grep, vi, etc. It's fast and it's lightweight. The binaries are downloaded by you - using apt-get - just as on Linux, because it is Linux. You can apt-get and download other tools like Ruby, Redis, emacs, and on and on. This is brilliant for developers that use a diverse set of tools like me."
Conversation Bot
Mostrou que há oportunidade de ter um Bot para conversar com seus clientes, no exemplo do Skype, o Bot de um hotel ajudou na reserva de um hotel.Exemplo de código C# da utilização do bot que já tem uma framework disponível:
https://youtu.be/GgutlKV42SY?t=2h34m
Muito interessante o exemplo de ensinar o bot com as perguntas dos usuários:
https://youtu.be/GgutlKV42SY?t=2h30m
Cognitive Services
Demostração de Apis de serviços cognitivos, que tem uma lista de vários serviços gratuitos disponíveis:https://youtu.be/GgutlKV42SY?t=2h41m30s
sábado, 13 de fevereiro de 2016
Gulp, Grunt, Bower e npm no Visual Studio
Scott Hanselman no artigo "Introducing Gulp, Grunt, Bower, and npm support for Visual Studio" (Introduzindo suporte para no Visual Studio para Gulp, Grunt, Bower e npm - Tradução literal do autor do artigo) de 2 de setembro de 2014 explica os benefícios de utilizar essas frameworks como alternativas ao nuget.
Hanselman faz a pergunta "Why client-side package managers for ASP.NET? Why not NuGet? Why not MSBuild?" (Por que gerenciados de pacotes do lado de cliente para o ASP.NET? Por que não NuGet? Por que não o MSBuild? - Tradução literal do autor do artigo)
E responde:
http://www.programmerinterview.com/index.php/javascript/what-is-javascript-minification/
https://developers.google.com/speed/docs/insights/MinifyResources
http://jshint.com/install/
http://jshint.com/docs/
Há vários plugins disponíveis:
http://gruntjs.com/plugins
https://www.npmjs.org/package/grunt
Post explorando Grunt:
http://blog.tomasjansson.com/asp-net-5-setting-up-frontend-build-with-grunt/
http://gulpjs.com/
https://www.npmjs.com/package/gulp
http://bower.io/
http://tableless.com.br/bower-na-pratica/
Outro link, referente à estratégia de pacotes no ASP.NET 5 (Que agora é o Asp.net Core 1.0):
http://www.jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/
Adicione o arquivo package.json à raiz da sua aplicação (Este arquivo será responsável por gerenciar os modulos NPM). Ao salva-lo as dependências são baixadas, o que também pode ser feito clicando com o botão direito no arquivo e escolhendo a opção "Restore Packages"

Adicione o arquivo bower.json à raiz da sua aplicação (Este arquivo será responsável por gerenciar os modulos NPM).

Todas as dependências podem ser buscada no bower.io/search e são automaticamente sugeridas pelo intellisense do visual studio:

Ao salvar o arquivo, as dependências do bower são baixadas.Veja os arquivos configurados no GitHub.
Para deixar o projeto baixando as dependências de maneira funcional são necessárias várias configurações, que não vou detalhar aqui. Caso queira ver um bom artigo em português, leia o artigo Visual Studio - Bower: Ferramentas modernas para desenvolvimento para a Web.
Outras referências:
http://blogs.msdn.com/b/cdndevs/archive/2015/02/17/using-bower-with-visual-studio-2013.aspx
Hanselman faz a pergunta "Why client-side package managers for ASP.NET? Why not NuGet? Why not MSBuild?" (Por que gerenciados de pacotes do lado de cliente para o ASP.NET? Por que não NuGet? Por que não o MSBuild? - Tradução literal do autor do artigo)
E responde:
Some of you may ask, why not use NuGet for JavaScript? Why not extend MSBuild for building CSS/JS? Simple. Because there's already a rich ecosystem for this kind of thing. NuGet is great for server side libraries (and some client-side) but there are so many more CSS and JS libs on npm and bower. MSBuild is great for server-side builds but can be overkill when building a client-side app.
So, use both. These are tools in your toolkit. Adding support for Gulp, Grunt, Bower, npm (and other stuff, in the future if needed) means a more familiar environment for front-end devs doing ASP.NET and it opens the doors for ASP.NET devs to bring in the JS and CSS libraries communities use every day.
Alguns podem perguntar, por que não utilizar NuGet para JavaScript? Por que não estender MSBuild para criar CSS/JS? Simples. Porque já existe um ecossistema rico para este tipo de coisa. NuGet é ótimo para bibliotecas do lado do servidor (e para algumas do lado do cliente) mas há muito mais bibliotecas CSS e JS no npm e bower. MSBuild é ótima para compilação em lado de servidor, mas pode ser um exagero para compilar o lado cliente da aplicação.
Então, use as duas opções. Estas são ferramentas para o seu kit de ferramentas. Adicionar suporte para Gulp, Grunt, Bower, npm (e outras coisas, no futuro se necessário) significa um ambiente mais familiar para desenvolvedores de cliente ASP.NET e isto abrem as portas para desenvolvedores ASP.NET para trazerem experiência de bibliotecas JS e CSS que comunidades usam no dia a dia. (Tradução literal do autor do artigo)
SASS e LESS
Os dois principais pré-processadores para ajudar na escrita de CSS com produtividade. O artigo da Thaiana Poplade no tableless mostra um excelente exemplo de uso de SASS. Veja também um artigo em inglês comparando SASS e LESS.Minification of CSS/JS
Processo de remover todos os caracteres que não são necessários do código javascript. Isso diminui o tamanho dos recursos necessários para o cliente acessar seu site, o tornando mais leve e rápido.http://www.programmerinterview.com/index.php/javascript/what-is-javascript-minification/
https://developers.google.com/speed/docs/insights/MinifyResources
JSHint ou JSLint
Ferramentas que interpretam os códigos javascripts e buscam erros. Veja o excelente artigo escrito pelo Davi Ferreira caso queira saber mais detalhes. Outras documentações:http://jshint.com/install/
http://jshint.com/docs/
Grunt
Automação de tarefas relacionadas a minificação (Reduzir o tamanho de arquivos), compilação, testes unitário, "linting" (programa que analisa código procurando erros potenciais) e configuração de um gruntfile(Em formato JSON).Há vários plugins disponíveis:
http://gruntjs.com/plugins
https://www.npmjs.org/package/grunt
Post explorando Grunt:
http://blog.tomasjansson.com/asp-net-5-setting-up-frontend-build-with-grunt/
Gulp
Automação alternativa ao Grunt, que utiliza uma sintaxe JQuery Like.http://gulpjs.com/
https://www.npmjs.com/package/gulp
Bower
Ferramenta para gerenciar dependências de cliente do desenvolvimento web. Veja alguns links com mais informaçõeshttp://bower.io/
http://tableless.com.br/bower-na-pratica/
Outro link, referente à estratégia de pacotes no ASP.NET 5 (Que agora é o Asp.net Core 1.0):
http://www.jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/
Usufruindo das ferramentas
O que você precisa para usufruir dessas ferramentas (Seguindo dicas do artigo Using Grunt, Gulp and Bower in Visual Studio 2013 and 2015):- Para o VS 2013: Grunt Launcher
- Para o VS 2015: Web Essentials
Adicione o arquivo package.json à raiz da sua aplicação (Este arquivo será responsável por gerenciar os modulos NPM). Ao salva-lo as dependências são baixadas, o que também pode ser feito clicando com o botão direito no arquivo e escolhendo a opção "Restore Packages"

Adicione o arquivo bower.json à raiz da sua aplicação (Este arquivo será responsável por gerenciar os modulos NPM).

Todas as dependências podem ser buscada no bower.io/search e são automaticamente sugeridas pelo intellisense do visual studio:

Ao salvar o arquivo, as dependências do bower são baixadas.Veja os arquivos configurados no GitHub.
Para deixar o projeto baixando as dependências de maneira funcional são necessárias várias configurações, que não vou detalhar aqui. Caso queira ver um bom artigo em português, leia o artigo Visual Studio - Bower: Ferramentas modernas para desenvolvimento para a Web.
Outras referências:
http://blogs.msdn.com/b/cdndevs/archive/2015/02/17/using-bower-with-visual-studio-2013.aspx
Assinar:
Postagens (Atom)