Web – É um Desenvolvedor Web? Então use o Visual Studio!

Visual Studio

É possivel prever o quanto posso ser alvo de relataliações, mas isto é a internet, este é meu blog e não fosse a liberdade que este meio oferece, não teria sentido ele existir.

Contexto

Acredito ser justo contextualizar o que me levou a fazer este texto e minha trajetória do mundo web. Se você não estiver a fim de ler tudo isso, pode ir direto para a próxima tópico onde falarei diretamente do assunto relacionado ao título do artigo.

Atualmente sou desenvolvedor web com quase uma década de experiência no ramo. Passei um tempo programando para desktop e serviços, mas não demorou muito para me apaixonar por redes, daí para sockets, daí para protocolos e então cheguei no HTTP.

O problema é que aprendi web errado. Fiz curso de HTML e estático quando escrevendo as primeiras linhas de PHP, fui apresentado ao .NET (lá em 2002). Tudo começou no console, passou para o Windows e logo estava no ASP.NET. Na época, só tinha o Web Forms. Como o conhecimento de web era pouco, não tive muito como julgar o “crime” que o Web Forms cometia ao tentar simular um gerenciamento de estado em um protocolo sem estado.  A sacada era genial, mas o custo era demasiado alto. Simplesmente aceitei em fui em frente. Afinal de contas, o que contava era produzir, e nisso o Web Forms era bom.

Passado um tempo, me vi obrigado a encarar outras tecnologias web. Passei pelo até pelo ColdFusion (ouch!), que apesar de mal quisto, era muito bem feito. A Adobe, antes Macromedia tinha feito um ótimo trabalho. A adaptação foi terrível. Cadé os controles? Cadê a ferramenta? Os Adobe Builders da vida não ajudavam.  Cadê o vento click do lado server? Porque os dados dos controles são perdidos depois do click? Cadê o postback?

Estava perdido. Nascia a necessidade de entender o que era web de fato. Ter programado 4 anos de sistemas web sem saber o que era um POST ou um GET me deu um nó na cabeça. Quando a ficha caiu, o respeito pelo ColdFusion cresceu e pelo ASP.NET, bem…

Não tive escolha. Tive que voltar aos projetos ASP.NET pois era o meu “metiêr” e o C# já era a linguagem das linguagens. Mas claro, olhei o Web Forms de um jeito diferente, querendo mudar tudo. Já namorava intensamente o Castle Project, na época, um alívio para desenvolvedores Web que se viam obrigados a trabalhar com ASP.NET. Mas não havia espaço. Nenhum desenvolvedor .NET fazia ideia do que era tudo isso Eram raros os que se interessavam. Passou a ser um suplício. Na época, frameworks Java como o brasileiríssimo VRaptor me enchiam os olhos, o Ruby on Rails me encantava e o Javascript já era uma linguagem do coração. No Web Forms, era quase anti-produtivo utilizá-lo. Gurus da Microsoft tiveram a coragem de dizer que o Javascript estava com os dias contados.

Em dezembro de 2007, a Microsoft deu os primeiros sinais do ASP.NET MVC. Os esboços eram estupidamente animadores. Qualquer coisa que fizesse não mais pensar em postbacks e viewstates, além das rotas, eram um alívio. Nascia um mundo web de verdade para desenvolvedores .NET.

Há que tenha entrado em pânico. Afinal, quem quer jogar fora anos de experiência e conhecimento? Meu pensamento sobre isso é o seguinte. Nos dias de hoje, se você passa mais de uma semana sem ouvir falar de um novo framework ou biblioteca, você já está quase desatualizado. Se você gosta de um bloco de código que escreveu há mais de um ano, provavelmente você não aprendeu muito.

Bem vindo ao mundo do desenvolvimento web.

A imersão

No meio da aventura citada acima, a imersão em HTML, CSS e Javascript foram inevitáveis. No meu caso, foi amor à “primeiras vistas”. Adorei cada pedaço do que vi e me envolvi totalmente com o mundo front-end.

Comia Tableless no café da manhã, seletores eram fichinha e as novidades do HTML5 foram um bálsamo. Nessa época, lia sobre frameworks Javascript, CSS e afins na mesma intensidade que acompanhava a evolução do .NET.

Era muito bom ver o mundo web crescer e notar como o Single Page Apps vieram para ficar, tendo no server side algo tão poderoso como o que o ASP.NET e outros frameworks faziam. Tinha tudo o que precisava para criar soluções profissionais baseadas em web de ponta a ponta, sem deixar pontas soltas.

As ferramentas (enfim)

Era difícil fazer qualquer coisa fora do Visual Studio, pois ele estava ali, quase sempre aberto. O editor é confortável e o autocomplete (intellisense para os fanáticos) era essencial e inteligente, mesmo para htmls simples e javascript. Estava feliz.

Mas a pulga, aquela que fica atrás da orelha, não parava de incomodar quando, ao ler artigos e assistir tutoriais em vídeo, me deparava com o uso de outros editores como o Sublime Text e o WebStorm. Alguns mais atrevidos usavam o Atom e os corajosos me faziam sentir um newbie quando criavam seus exemplos direto no vim ou emacs.

Parecia mágico. Me perguntava se realmente precisava de tudo aquilo que a ferramenta da Microsoft oferecia, pois tinha um custo, monetário e de memória. Os requisitos para instalação são generosos e o grande calcanhar de Aquiles é precisar estar no Windows.

Fui aos poucos me convencendo e deixando o Visual Studio de lado para tarefas mais simples como editar CSS, HTML ou mesmo Javascript, mesmo abrindo mão do autocomplete. Aquela sensação de estar livre do Windows era muito agradável. Sendo boa parte das ferramentas para a web multiplataforma, estando num Windows, Mac ou Ubuntu, não havia entrave algum para iniciar um desenvolvimento ou fazer uma manutenção.

O git, node e ruby, ferramentas sob as quais a maioria dos pacotes e utilitários executa atualmente já são quase tão comuns de instalar ou já estarem instalados quanto o python ou mesmo o java. Desenvolver para a web havia se tornado algo quase transversal.

Então porque o Visual Studio?

Apesar do que gostei por muito tempo chamar de “liberdade”, descobri que era mais uma frescura. Mesmo! E não venha me convencer do contrário.

Se você é daqueles que não admite executar um Windows porque o tio Bill é o capiroto encarnado, e por nada deste mundo teria um “eipou” (li isso de um enrustido num fórum uma vez), colega, baixe a guarda.  A melhor coisa que descobri ao envelhecer como profissional de TI foi quando comecei a encarar o sistema operacional e qualquer outro software como commodity.

Passei muito tempo brigando contra colegas de trabalho sobre o que era melhor para chegar a conclusão que o melhor sempre era o que cada um tinha. Tinha um amigo fanático por Android, e defendia até morte, falando horrores dos concorrentes. Isso durou até ele comprar um Windows Phone, que passou a ser a oitava maravilha do mundo. Morte ao Android e iOS. Aí, veio o iPhone. Pronto, Android era um lixo cheio de vírus e Windows Phone era travado não tinha apps. O mesmo se deu com ontro colega era Windows, passou para Mac e agora é Ubuntu.

A melhor ferramenta é aquela que você usa. Pois bem, quando você desliga essa chave do orgulho exacerbado, você começa a enxergar as coisas mais claramente.

E é nisso que me baseei para chegar no título do artigo e por fim, em uma conclusão. O Visual Studio foi a ferramenta mais completa com a qual tive contato para a maior parte dos tipos de aplicativo que precisei trabalhar. Do editor poderoso, passagem pelo gerenciador de janelas, integração com controles de versão, tipos de projeto e o ápice, que são as ferramentas de depuração, o Visual Studio entrega em um pacotão só um Kit de ferramentas que abraça do que comumente é preciso alguns utilitários para alcançar. Para o povo da nova web, digamos que ele faz (e já faz um bom tempo) o que o bower, grunt e yeoman fazem hoje.

E aos que vierem com os argumentos de preço, uma novidade. A Microsoft há tempos oferece versões gratuitas e bem completas do Visual Studio para livre uso, que são as Express. São versões dedicadas a tipos de aplicativos, que no caso de vocês, basta se concentrar na versão web. Aos que acharem que a ferramenta não é suficientemente completa, coordenei com muito exito alguns projetos onde os devs utilizavam Visual Studio Ultimante e os Designers/Front End utilizavam as versões Express, sem problemas ou conflitos.

Se não bastasse tudo isso, recentemente (na verdade, parei a escrita deste artigo enquanto fiquei sabendo da notícia) a Microsoft liberou a versão completa do Visual Studio chamada Community, que é composta pela ferramenta integrada, com licença livre estudo e projetos Open Source. Quer saber mais?

https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx

E para os que ainda acham que tudo isso é balela, a Microsoft liberou o código da nova versão do .NET Framework, que já virá com versões compiladas para pronta execução em Linux e Macs. Quer saber mais?

http://blogs.msdn.com/b/dotnet/archive/2014/11/12/announcing-net-2015-preview-a-new-era-for-net.aspx

Não bastasse isso, a Microsoft também liberou uma ferramenta chamada Visual Studio Code, um editor para código .NET multiplataforma e gratuito. Quer saber mais?

https://code.visualstudio.com/

No momento da escrita deste artigo, o Visual Studio Code ainda estava em beta.

Concluindo

O fim deste artigo pode ter parecido algo como uma propaganda para a Microsoft. E não poderia ser diferente. Porém, esta não é a intenção aqui.

A intenção foi convidar aos que ainda alimentam um pouco de preconceito pelas ferramentas da Microsoft, que abram a mente e façam pelo menos um teste. Da mesma forma que fiz do mundo Microsoft para o mundo Open Source, o caminho contrário pode ser cheio de boas surpresas.

Algo que não mudará é a dependência do Windows, afinal, estamos falando de Microsoft. Caso ele não esteja à mão, é ao menos possível dar uma chance ao Visual Studio Code.

Moral da história? “Abra a mente!”

Forte abraço!

VBA – Problemas na automação com o Internet Explorer 11

Bye IE

Problemas! Problemas!

O que seria da nossa vida sem eles? Neste post, escrevo especificamente sobre um xodó dos programadores VBA. A integração com o Internet Explorer.

A versão 11 do navegador trouxe algumas novidades “ruins” para a automação. Se você tentar executar seu aplicativo que já funciona muito bem em versões anteriores do IE, verá que algumas coisas vão simplesmente parar de funcionar.

Até a abertura funciona bem, mas depois da primeira navegação, a propriedade Document já não é mais atualizada, gerando erros de execução já que os elementos que você procura não estão lá.

Há relatos nas comunidades sobre o problema e como não há solução aparente, até porque o IE será em breve substituído pelo Microsoft Edge, o novo navegador do Windows 10, a recomendação é migrar as soluções para o Selenium WebDriver, um automatizador que tem suporte para o VBA:

Selenium VBA

Logo postarei um tutorial sobre o uso deste, que é bem promissor, já que permite usar não só o IE, mas também o Chrome e o Firefox! 🙂

Excel – A função HYPERLINK

Excel Hyperlink

Eis uma função, mais uma aliás, que vejo ser subutilizada.

Por muito tempo, quando era necessário criar algum tipo de link em uma célula, a primeira coisa que ocorria é usar a opção no Menu/Aba Inserir->Hyperlink. É algo simples e produz um bom resultado.

Se há um defeito que pode ser atribuído a esta é que ela não pode ser “controlada”. Explico. Cada vez que precisar mudar o destino do link, é preciso voltar na mesma opção, ou, clicar sobre a célula, selecionar Editar Hyperlink e então promover a mudança. Seria mais simples se isso pudesse ser feito através de fórmulas… e é!

A fórmula HYPERLINK dá a você essa habilidade. Ela foi disponibilizada junto com o Excel 2007 e traz praticamente a mesma funcionalidade do recurso descrito acima. Obviamente, a vantagem é a facilidade de manipulação. Assim como a funcionalidade tradicional, é possível criar links para:

  • Sites – exemplo: =HYPERLINK(“http://www.tomasvasquez.com.br/”, “Página principal”)
  • Arquivos  – exemplo: =HYPERLINK(“C:\Temp\Arquivo.xlsx”, “Link para o arquivo”)
  • Áreas nomeadas (dentro da própria, ou em outros) – exemplo: =HYPERLINK(“[C:\Temp\Arquivo.xlsx]Dados”)
  • Células (dentro da própria, ou em outros) – exemplo: =HYPERLINK(“[Arquivo.xlsx]A21, “Valor da célula”)

São apenas alguns exemplos. É possível fazer outras combinações.

Facilita muito na criação de menus para aplicações ou referência a recursos externos, como imagens ou documentos relacionados.

Bom proveito!

Referências

https://support.office.com/en-za/article/HYPERLINK-function-333c7ce6-c5ae-4164-9c47-7de9b76f577f