A história nunca contada sobre as versões .NET é uma viagem ao passado em 10 minutos, onde conto um pouco sobre minha experiência usando o .NET, desde quando comecei como desenvolvedor de software até os dias de hoje.
Aquele desenvolvedor iniciante terá uma visão das diferenças das versões da plataforma .NET praticadas no Mundo Real, suas tecnologias e variações.
Por outro lado, aquele desenvolvedor mais velho (sem ofensas), que também passou por isso, sentirá a nostalgia de lembrar do Web Forms… ou talvez não.
#O meu mundo real no desenvolvimento de software
Bem, comecei como desenvolvedor profissional em 1999/2000, justamente na virada do bug do milênio, mas já me aventurava muito antes, até mesmo da faculdade, quando aprendi o @@#!S%¨¨#@ Pascal.
Inclusive, um pouco antes disso, quando eu trabalhava na Novartis Biociências, já criava alguns sites usando HTML puro com CSS e hospedava naqueles serviços gratuitos como o HPG.
Tenso mesmo eram os navegadores da época, por exemplo, usávamos o navegador Netscape Navigator.
Escrevendo esse artigo, eu tive que voltar aqui nesse ponto e comentar uma coisa que lembrei. No início da década de 90 eu dava aulas de MS-DOS, baseado em cursos que fiz na escola de informática BIT Company. Mas deixa quieto, o artigo é sobre o .NET.
#O IDG Now!
Iniciei como desenvolvedor atuando na manutenção de websites da empresa IDG Computerworld, mais especificamente na editoria IDG Now!
Na época, o IDG Now!, usava uma plataforma chamada Zope na linguagem Python, para gerenciar as notícias e conteúdo do seu site. E foi justamente nessa época que aprendi muito sobre ferramentas de gestão de conteúdo CMS.
Comandada pela jornalista e editora Simone Freire, a equipe IDG Now! era fantástica. Tínhamos na equipe técnica, com profissionais de excelência, um desenvolvedor e um webdesigner, respectivamente Rodrigo Leme e Ricardo Untem.
Essas três pessoas da equipe IDG Now!, foram umas das 30 Pessoas que Influenciaram minha Carreira Profissional.
Nessa época, eu utilizava para programar, acredite se quiser, a IDE Macromedia Homesite. Comparada com o Visual Studio atualmente, Homesite é um lixo. Mas para a época, acredito que era o que tínhamos de melhor. E também fui expressamente proibido em usar o Dreamweaver.
Em 2001 comecei a desenvolver usando linguagem de programação ASP, Active Server Pages (extensão .asp) e a aventura foi enorme, misturava HTML com CSS e com código ASP… era uma zona!
#A plataforma .NET
A Microsoft criou uma plataforma de desenvolvimento para criar sites e programinhas para windows usando linguagens de programação diferentes, como VB e C#.
Então, criou um framework poderoso, com um conjunto de bibliotecas/componentes, que junto com a IDE Visual Studio ajudavam muito a vida do desenvolvedor em vários aspectos, produtividade, facilidade, debugging entre outros, aí surgiu o .NET.
Em 2001, tive contato com o ASP.NET 1.0 e fiquei alucinado para aprender, mas os cursos não eram acessíveis, os livros muito caros e para piorar, em inglês. E também havia muita resistência na empresa por ser uma tecnologia nova, dificilmente mudariam alguma coisa do Python para ASP.NET.
Nessa época, eu ainda trabalhava na IDG Computerworld, mas eles decidiram terceirizar toda a equipe de TI e foi quando apareceu a empresa de consultoria Fuzzy e eles me fizeram uma proposta para trabalhar com eles na plataforma .NET, mas eu recusei e preferi escolher outra empresa, a Broker Consultoria de TI.
#A Broker Consultoria de TI
Fiquei na IDG Computerworld cerca de dois anos e meio, saí e vim parar na Broker Consultoria de TI, empresa especializada e conceituada no mercado de seguros.
Eu praticamente trouxe a Web para eles, pois o foco principal da empresa era o desenvolvimento de software em Delphi, então foi uma mudança bem radical de mindset.
Com o passar do tempo, outras linguagens de programação foram agregadas a plataforma .NET, entre elas o J# e F#.
Então, na plataforma .NET, além de ser possível desenvolver em mais de uma linguagem de programação, você poderia escolher o tipo de tecnologia a ser desenvolvida, como sites, executáveis, serviços do windows entre outros tipos de projetos.
ASP.NET era praticamente uma evolução do famoso ASP. Então, se você queria criar um site, você criava uma aplicação Web ASP.NET, e a tecnologia usada era o Web Forms, na linguagem VB.NET. Porém rapidamente passei para o C#, graças a Deus.
Se você acha que é só baixar o Visual Studio, criar um projeto e sair fazendo… pare tudo, dá uma olhada nos 50 Erros Comprovados Cometidos por um Programador e muita calma nessa hora.
Falando em Visual Studio, a versão mais popular atualmente é a Community, gratuita para qualquer desenvolvedor.
#Outras tecnologias Microsoft
Quando comecei a escrever esse artigo lembrei que, além do .NET, sabemos que a Microsoft tem muitas outras tecnologias. Aí pesquisei e encontrei esse infográfico no artigo Bird’s -eye view of Microsoft ‘Modern-Trend’ Technologies de Cesar de la Torre.
#.NET backend e frontend
Se você quisesse criar um programinha para rodar no Windows, então você criava uma aplicação Desktop e a tecnologia usada era o Windows Forms.
E também, se seu programinha não tivesse nenhuma tela (frontend), você criava uma aplicação commandline. É claro, isso não morreu, ainda existe e é muito utilizado por sinal.
Já fazendo mais uma comparação, a forma de desenvolvimento nessas tecnologias Web Forms e Windows Forms era muito parecida com Visual Basic e Delphi… calma aí, não me xingue ainda!
Falo isso, pois consistia em arrastar os objetos a partir de uma toolbar até uma tela, posicionando visualmente o objeto (por exemplo um campo de texto) e na janela de propriedades desse objeto, mudávamos comportamento, configurações, eventos e pronto!
Particularmente não sou adepto dessa forma de desenvolvimento, arrastando objetos e mudando propriedades. Sempre gostei de colocar a mão direto no código fonte e foi o Rodrigo Leme, na época do IDG Now!, que me ensinou e sou muito grato por isso.
A plataforma .NET evoluiu em versões com o passar do tempo. A cada versão foram se aprimorando as funcionalidade e principalmente, a linguagem C#, que hoje se tornou muito mais popular e utilizada por muitos na comunidade de desenvolvedores.
Dizem que o C# foi uma cópia e melhoria do Java. Bom, eu já programei algumas coisas em Java e realmente, é um pouco parecido mesmo. Acredito que C# seja muito melhor, principalmente com o Visual Studio.
#Um caso de sucesso
A Broker Consultoria de TI criou um Framework em C# para que o desenvolvedor pudesse programar de maneira que funcionasse tanto no Windows Forms como Web Forms, e não estou falando apenas de classe de acesso a dados ou classe com regras de negócios, falo de tela, frontend mesmo.
Esse projeto, usado para Mapfre Seguros, foi até tema de palestra na Microsoft, onde fomos convidados a fazer uma demonstração em um dos eventos da Microsoft. O objetivo era reduzir o tempo de desenvolvimento, já que Mapfre Seguros tinha o mesmo software, tanto em desktop como na web.
Nessa época, além de todos os profissionais que participaram desse projeto, destaco alguns como Luiz Alberto Mariano, Julio Cesar Chaves, Alexandre Cancio Domingues, André Teixeira Damasceno e Marcos Porto Renó.
#Generics
O ponto alto do .NET na época foi a versão 2.0, que introduziu uma série de funcionalidades, entre elas o Generics. Atualmente, praticamente tudo tem um pouco de Generics.
Outras versões chamaram atenção, como a 3.0, onde apresentaram principalmente as tecnologias Windows Communication Foundation WCF, para criação de web services e Windows Presentation Foundation, mais conhecido como WPF, que na época seria uma evolução do Windows Forms, onde era possível criar telas com a linguagem de marcação XAML, muito parecido com XML e HTML.
#Xamarin Forms, o auge do XAML
O uso do XAML (Lê-se zâmel) foi ampliado para outras tecnologias, entre elas o Microsoft Silverlight, que basicamente era um concorrente direto ao Adobe Flash, onde o desenvolvedor criava animações e telas que funcionavam como aplicações Web e Desktop.
Avançando um pouco na história, o auge do XAML com certeza foi na chegada do Xamarin Forms, tecnologia que mais se populariza na comunidade de desenvolvedores. Criar aplicativos mobile usando linguagem de programação C#, e criar telas em XAML que funcionam nas plataformas Android e iOS, não é brincadeira não.
#LINQ
Na versão 3.5, uma grande funcionalidade foi adicionada, o LINQ, que é usado em praticamente qualquer aplicação, para criar queries e collections.
Voltando para as versões da plataforma .NET, apos a versão 4.0, a Microsoft praticamente estagnou a CLR, chegando a criar versões menores como a 4.7.X.
A Microsoft introduziu as funcionalidades Task
Até a finalização deste artigo, a versão .NET Framework é a versão 4.7.2. Resumindo, não houveram mudanças significativas na plataforma e acho que não teremos mais mesmo e já falo porquê.
#O ASP.NET MVC mudou minha vida
Em 2010, após se cansar de trabalhar com Web Forms, Windows Forms, usar o Ajax Control Toolkit, Magic Ajax, Component Art, Telerik e muito Script Manager, algo se engatinhava bem quietinho, o tal do ASP.NET MVC.
Começei a desenvolver uma POC para o Bradesco Seguros em MVC 2 e ficou muito interessante em relação da mudança absurda de mindset entre a separação do frontend (aquilo que roda no navegador) e no backend (aquilo que roda no servidor, C# por exemplo).
Quando mostrei a tecnologia ASP.NET MVC aos desenvolvedores da empresa, quase fui expulso. Diziam que eu era louco… Houve muita resistência até por parte daqueles que mandavam, dizendo que a curva de aprendizado era muito grande. Foi quando chegou o ASP.NET MVC 3 e as Razor Views! Aí não teve jeito, eu tinha que colocar isso para dentro da empresa.
Nessa época surgiu o projeto da Icatu Seguros e Sura Seguros, então criei toda uma arquitetura e padrões para trabalhar com o ASP.NET MVC e abondonando de uma vez por todas o Web Forms.
#WEB API – Serviços REST
Depois da chegada do MVC e com projetos SPA Single Page Application em alta, comecei a trabalhar com o ASP.NET WEB API para desenvolvimento de serviços REST.
Desenvolvemos diversas aplicações WEB API, principalmente para ser utilizada em nossos frontend KnockoutJS, AngularJS e atualmente Angular e VueJs.
Em meados de 2015, a Microsoft, com a popularização de outros frameworks open source e perdendo mercado para outras tecnologias, principalmente Java e NodeJS, decidiu abrir parte do código fonte da plataforma .NET.
Foi quando começou surgir aquela história de Microsoft Ama Linux.
#O .NET Core
A Microsoft, praticamente em uma jogada de marketing, criou uma nova versão da plataforma .NET, que não é uma sequência da versão do .NET Framework e sim uma nova versão totalmente feita do zero.
A essa versão foi chamada de .NET CORE que atualmente, até a criação deste artigo, está na versão 2.2 e é totalmente open source. Se você é um desenvolvedor hardcore, pode ajudar a contribuir nessa versão opensource.
O ASP.NET CORE é outra arquitetura, outra realidade e está se popularizando. Um dos maiores objetivos dessa nova arquitetura era retirar a dependência da biblioteca System.Web e o IIS, de forma que a aplicação rodasse em outros sistemas operacionais como MAC OS e Linux.
#O .NET Standard
E depois dessas versões .NET, .NET Core, Xamarin Forms e outras, criaram o .NET Standard, um conjunto de bibliotecas para compartilhar aquelas funcionalidades que são em comum em qualquer plataforma ou framework.
E a sopa de letrinhas não para por aí, fala-se em .NET, também fala-se em Docker e outros, mas isso é tema para outro artigo.
Este é um artigo vivo, que será revisitado e complementado a cada lembrança.
Para enfatizar todos as versões .NET e Visual Studio, eu criei um infográfico, que você pode conferir abaixo.
Dedico esse artigo a Eduardo Ambrosini, ex-diretor de TI da Novartis Biociências, que em 1999 me contratou como estagiário com objetivo de criar relatórios usando Microsoft Access e dar suporte técnico aos 50 usuários do departamento de RH. Antes de sair da Novartis, Eduardo me disse: “Você desbancou vários outros concorrentes, inclusive alguns, que eram indicações de pessoas de confiança e sabe porquê? Em sua entrevista, eu te perguntei por que você queria trabalhar com a gente e você respondeu: Eu amo informática. Nesse momento pensei, o que vale de experiência, comparada a sinceridade e amor a uma profissão. Então Fabio, a vaga foi sua.”.
Faltou alguma coisa? Encontrou erro?
Comente, critique, compartilhe!
Obrigado e até a próxima!