« Voltar
em ASP.NET .net .net core

Entendendo o .NET Core - Parte 1: a motivação.

Acordei inspirado hoje e resolvi escrever uma série de pequenos artigos falando sobre o .NET Core. Ou talvez sejam só dois, depende do meu humor :P

Vamos lá!
A primeira versão do .NET foi lançada em 2002. Nessa época, ele era um frameworkzão só, cheio de coisa. O que aconteceu nos anos que se passaram foi o seguinte: deram ctrl+c ctrl+v várias vezes no .NET pra criar outros frameworks para plataformas específicas. E ficamos com vários "verticais" diferentes.
Algo mais ou menos assim:

Do lado esquerdo desse gráfico, temos o .NET pra Windows Desktop, que é o framework que a maioria de nós está acostumado a usar. À direita dele, temos o framework pra Windows Store e Windos Phone, que são frameworks separados, diferentes(mas que tem uma base de código em comum).
Não está no gráfico, mas esse processo de criar um novo vertical também foi feito para Silverlight e Xbox. Cada vertical desse gráfico é um framework diferente, mantido por uma equipe diferente e com código diferente. A única similaridade entre eles é que eles começaram a partir de uma mesma base de código.
O .NET framework é uma ferramenta que você instala na sua máquina e todas aplicações que usam ela dependem dessa instalação. Toda vez que sai uma versão nova do .NET e você atualiza, alguma coisa pode quebrar por incompatibilidade com a nova versão.

Mas pera, a Microsoft não se preocupa com retrocompatibilidade?! Sim, só que partindo do ponto que o .NET roda em bilhões de computadores(sim, bilhões) se uma atualização nova der problema em 1% desses computadores, ainda é muita gente.
Essa é uma das razões pelas quais a gente demora tanto pra ter versões novas do framework.

Agora, imagine que eu queira desenvolver uma biblioteca que funcione pra Windows Phone, ASP.NET e Silverlight. Pra que eu consiga fazer isso, a rapaziada da Microsoft tem que manter os 3 verticais atualizados, capazes de suportar as mesmas funcionalidades. Meio difícil, né? Eles tentaram fazer isso, mas nem sempre funcionou. Tivemos que fazer coisas como #ifdef's e linkar arquivos pra tentar burlar isso.

Fora que, quando a gente desenvolve uma aplicação no ASP.NET 4, hoje, estamos usando o framework completo, e tem muita coisa nele que não precisamos pra desenvolver pra web.
Isso e as razões citadas anteriormente foram motivo suficiente para a Microsoft criar o .NET Core.

Então vamos lá, esse é o "estado" do .NET em 2015:
(peguei essa imagem do blog do .NET)

Do lado esquerdo, temos o framework "full": esse cara é o framework .NET que conhecemos e que continuará existindo. Com ele conseguiremos desenvolver pra ASP.NET 5 e 6, WPF, Windows Forms e todos os outros subframeworks do .NET.

Mas pera, se eu consigo fazer tudo com o .NET pra que existe esse tal de .NET Core?

Runtime otimizado

A máquina virtual do .NET Core é otimizada para aplicações web e dispositivos móveis, além de ser mais compacta que a CLR original.

Independente

O .NET Core não depende de forma alguma do framework .NET instalado na máquina do cliente que for utilizar sua aplicação. Quando fazemos o deploy de uma aplicação com ele, estamos deployando o runtime e as bibliotecas.

Cross platform

O .NET framework "full" funciona somente em Windows. Com o .NET Core, poderemos fazer aplicações que rodem em Mac OS e Linux.

Modular

Ao contrário do .NET full, que requer grandes atualizações e instalações, o .NET Core é distribuído através do Nuget. Com isso, uso em minha aplicação somente o que eu quiser do framework.

Open source

Quando a Microsoft anunciou que o .NET Core seria open source, muita gente ficou surpresa. Mas ele está disponível no Github em duas partes: o runtime e as classes fundamentais do framework.

O legal de ser open source é que podemos ver as ferramentas que utilizamos sendo desenvolvidas, estudar seu funcionamento interno e ajudar a desenvolve-las.
Sim, você pode contribuir(e não é tão difícil assim, acredite em mim). Existe uma lista de tarefas a serem desenvolvidas, e algumas estão marcadas como up for grabs: isso significa que qualquer um pode desenvolve-las.
Tem algumas coisas nessas listas que são realmente cabulosas e que se você quiser tentar fazer vai ter que mergulhar a fundo no funcionamento do framework. Mas tem coisas fáceis e bestas, que está lá porque ninguém quer fazer, como alterar um arquivo de configuração. Eu consegui fazer uma tarefa dessas que era bem besta, mas e daí? Na minha página do Github aparece que eu contribui pro repositório do .NET Core:

E isso é da hora hahahahahaha.

Ainda pretendo escrever um post sobre como contribuir pra projetos open source. Ou talvez eu faça um video, veremos.

Mas enfim, vou terminando esse post por aqui. No próximo pretendo falar sobre alguma outra faceta do Core.

Quer saber algo em específico? Deixa seu comentário aí!

Já que você leu até aqui, curte minha página lá no Facebook pra ficar em dia com as minhas postagens no blog e outras coisas legais https://www.facebook.com/devgabsferreira (:

comments powered by Disqus