Há menos de duas semanas saiu o primeiro preview público do dotnet core 2.1, chamado de preview 1. Este preview é o primeiro de uma série (que não sabemos o tamanho) antes da versão RTM.
Para saber mais: anúncio oficial: .NET Core Preview 1.
Vocês já podem começar a testar e experimentar as novidades hoje mesmo no Windows, Mac e Linux:
.NET Core 2.1 Preview 1 SDK — includes the Runtime
.NET Core 2.1 Preview 1 Runtime
As novidades podem ser percebidas em temas:
- Faster Build Performance
- Close gaps in ASP.NET Core and EF Core
- Improve compatibility with .NET Framework
- GDPR and Security
- Microservices and Azure
- More capable Engineering System
Vale uma nota do time do .NET Core de que nem todos estes temas estão disponíveis no Preview 1, mas são o foco do trabalho sendo executado.
Builds mais rápidos
A performance dos builds ficou melor para builds e builds incrementais, conforme pode ser vist no gráfico abaixo:
Minor-version Roll-forward
Agora as aplicações .NET Core serão executadas sempre na minor version mais recente disponível. Uma aplicação feita para rodar em 2.0 vai rodasr em 2.1 se a versão 2.1 estiver disponível.
Isso não é válido, no entanto, para major versions. Então a aplicação 2.0, que roda em 2.1 ou 2.5, não rodará em 3.0, mesmo que 3.0 esteja disponível na máquina.
A ideia é que minor versions geralmente contém melhorias, updates de segurança, etc.
Global tools
.NET Core global tools são ferramentas console que podem ser instaladas de maneira global e se tornam disponíveis independente da sessão do console/terminal, da máquina terr sido reiniciada, etc. O conceito foi inspirado nas global tools do npm.
Depois de instalar o .NET Core 2.1 preview1 você pode rodar:
dotnet install tool -g dotnetps
e então executar do seu terminal
dotnetps
Para ler mais ou contribuir com o dotnetps acesse o github do projeto, que é uma tool opensource mantida pela Lambda3.
Span<T>, friends e melhorias colaterais
Alguns novos tipos foram inseridos no .NET Core 2.0, dentre eles Span<T>. Estes tipos tem um papel fundamental em ajudar o .NET a ser mais rápido e eficiente em termos de uso e alocação de memória.
Utilizando Span<T> algumas melhorias vieram (e virão) para o preview1 como a reescrita de um HttpClientHandler utilizando esses benefícios. O uso de sockets passa a usar o próprio .NET em uma implementação mais rápida e eficiente e não mais implementações nativas, eliminando alguns problemas.
Docker
Algumas mudanças e novidades vieram nas imagens oficiais do .NET Core para Docker:
- Added Alpine runtime and SDK images (x64).
- Added Ubuntu Bionic/18.04, for runtime and SDK images (x64 and ARM32).
- Switched from debian:stretch to debian:stretch-slim for runtime images. (x64 and ARM32).
- Dropped debian:jessie (runtime and SDK).
Resumo
Tem bastante coisa bacana e interessante chegando no .NET Core 2.1 com o Preview 1. Estas melhorias se tornam ainda mais interessantes quando pensamos em ferramentas como o ASP.NET Core, que se beneficiam diretamente das melhorias de performance e para muitas de nós são o ambiente diário de desenvolvimento.
Entender e estudar mais Span<T> e os outros tipos relacionados de certo trará um grande benefício para os próximos anos no desenvolvimento de softwrae na plataforma .NET.
Para saber mais: anúncio oficial: .NET Core Preview 1.
Vinicius Quaiato