Dev Desktop .NET Core: Windows ou Linux?
Publicado em: sábado, 23 de mar de 2019

Esse post fala sobre ambiente de desenvolvimento. O lugar onde você está escrevendo código, compilando, rodando, debugando, e testando o que está produzindo.

Aqui vão recomendações para quem está começando. Essas recomendações são amparadas pela minha experiência acompanhando e ajudando/suportando a comunidade e grupos de discussão.

TL;DR;

  • Desenvolva no Windows (use o windows no host, não em uma VM).
  • Hospede no linux como Linux Containers / ou direto no host linux.

.NET Core funciona bem no Linux?

Sim, funciona e beira a perfeição. Realizar deploy em um servidor headless, consumindo extremamente pouco recursos ou fazendo deploy em linux containers é o que queríamos e sequer sabíamos disso. Docker está aí e a cada dia se consolida sem concorrente.

Se em 2019, você está pensando em desenvolver serviços, microsserviços, ou aplicações web de qualquer natureza, realizar o deploy em containers linux ou no linux deve estar no seu radar.

Meu desktop de Desenvolvimento: Windows ou Linux?

Um dos maiores movimentos que vejo nos últimos tempos é de programadores PHP vindo para .NET, principalmente com .NET Core. E aqui vai uma questão importante.


Há a possibilidade e probabilidade de você nunca ter usado visual studio na vida.
Há a probabilidade de seu primeiro contato com um debugger tenha ocorrido no Chrome ou Firefox.
Saiba que aqui, no nosso mundo, debug é fundamental e está presente desde o princípio.

Usamos breackpoints e debugger no dia-a-dia, para tudo. Não importa o tipo de código.

Assista o vídeo abaixo para entender o básico de debugging. É uma experiência transformadora.

Além da galera que vem do PHP, tem os novatos. A galera que está na faculdade, saindo da faculdade, ou mesmo migrando de outras tecnologias.

O ponto-chave é: Nada se compara ao Visual Studio, principalmente pois o visual studio é uma full featured IDE.

Uma IDE não é um mero editor de código, uma IDE é um Ambiente de Desenvolvimento Integrado, uma categoria não alcançada por VSCode, ATOM, Sublime. Quem pode se comparar melhor é o Eclipse, NetBeans, InteliJ e outros.

Isso quer dizer que você poderá usar VSCode no seu dia-a-dia, direto do Linux, mas você nunca terá uma experiência similar à oferecida pelo Visual Studio. E para quem está chegando agora, trabalhar com Visual Studio é o comum, o recomendado, o que você encontrará nas empresas, mesmo que seu objetivo seja realizar implantações no linux.

Mas qual é a diferença entre VSCode e Visual Studio?

Visual Studio é mais estável para .NET Core, empacota todos os recursos de forma integrada. Permite o desenvolvimento com os mais variados tipos de projetos .NET Framework e .NET Core. Oferece ferramentas de testes, debug, refactoring, packaging, publish e muito mais.

É desenhado para facilitar sua experiência, tornando ocultas algumas burocracias.

Oferece suporte a debug tanto de processos .NET no Windows ou no linux (com ou sem containers), a propósito oferece suporte a docker e se integra facilmente com containers docker para que você faça debug de linux containers direto da sua IDE.

Visual Studio Code é ruim?

Eu não disse isso, eu digo que:

Se você está começando agora e opta pelo VSCode, você vai passar por desafios e uma experiência que não é a melhor disponível. Nem de longe o visual studio code é ou pode ser considerado ruim, eu não conheço quem diga algo assim. No entanto o VSCode não oferece as mesmas features.

E Mac, devo começar no Mac?

Se seu objetivo é se profissionalizar: não!

De que adianta você começar no Mac, mas quando chegar em uma empresa, onde receberá um notebook ou desktop windows, não saberá fazer nada ou terá uma curva de aprendizado maior? Você será produtivo no windows ou ficará de mimimi querendo um macbook pro?

Seria interessante criar uma VM Windows então?

Se você pretende trabalhar com serviços, aplicações web, microsserviços e jobs rodando sobre Linux Containers, não! Ter o windows em uma VM não é uma opção boa para quem quer trabalhar com esse workload. Principalmente pois para trabalhar com Linux Containers no windows, integrado ao Visual Studio, você precisará do Docker Desktop for Windows que por sua vez demanda Hyper-v. Habilitar Hyper-v estando dentro de uma VM exige conhecimento avançado e talvez sequer seja possível.

Mas eu sou experiente com .NET Core e .NET Framework, essas recomendações servem para mim?

Não. Essas recomendações são para quem está começando.

Para quem tem uma boa experiência com .NET em geral, você vai saber se virar em qualquer lugar. Você saberá que é hora de fechar e abrir o VS Code, na hora que uma sintaxe que você tem certeza de que está correta, acusar erro. Você saberá produzir os scripts de criação de containers e debug em containers, manualmente.

Os dilemas para quem já está familiarizado com a plataforma são outros. Qualquer instabilidade é percebida como instabilidade e seu tempo reação a um problema no editor, ou a falta de alguma configuração é menor. Você já sabe o que é certo, já sabe o que pode dar errado, e enxugará menos gelo. Saberá quando usar o visual studio e suas features exclusivas. Saberá resolver seus próprios problemas, quando sua equipe de infra disser que não suporta desktops linux ou mac.

Conclusão

Minha opinião é simples: Se está começando, seu setup é Windows 10 PRO (não virtualizado), com Visual Studio e Docker Desktop for Windows. E VSCode para qualquer projeto baseado em JS/TS.

Se for experiente, não importa, você já é grandinho para fazer suas escolhas, arcando com os riscos, problemas, mas também os prazeres oferecidos por estas.

Luiz Carlos Faria

Mensagem do Autor

Espero que goste desse post. Não deixe de comentar e falar o que achou. 

Se acha que esse post pode ajudar alguém que você conheça, compartilhe!

 

Eventos passados

novembro 2020
outubro 2020
setembro 2020
agosto 2020
Nenhum evento encontrado!
Carregar Mais

Publicidade

Assine

5 Comentários

  1. Alexandre Silva

    Rapaz, disse tudo nesse artigo, simplesmente perfeito… Eu trabalho com o VS desde os primórdios (não lembro se no VB3 já era esse o nome pacote, mas de lá pra cá sempre gostei dos pacotes de dev da MS), hoje eu utilizo muito o VSCode, mas não para o C# (a não ser se for só pra dar uma olhada rápida), uso ele para o desenvolvimento de FrontEnd Angular, React, para o NodeJS e coisas do tipo, mas falou em C# eu não abro mão do VS não, e tem que ser Windows 10 mesmo, no mac eu acho horrível… rsrsrs…

    Responder
    • Luiz Carlos Faria

      Passa rápido, sou dessa época também! E to na mesma, uso VSCode para projetos JS/TS e VS para .NET em geral.

      Responder
  2. Vinicius Mamoré

    Bacana Gago, mais um post fantástico, to indo atrás da minha licença Pro, abração!

    Responder
    • Luiz Carlos Faria

      Obrigado Vinicius!

      Responder
  3. Rogério dos Santos Fernandes

    Muito bom! Eu fico feliz que a Microsoft e a comunidade .Net vem construindo pontes e não barreiras, então temos muita opção. O legal de usar o VSCode na minha visão é que faz com que o Dev tenha que conhecer o .Net CLI logo de cara, pra rodar e testar o projeto. Mas realmente o VSCode não está tão estável ainda (creio que vai chegar lá) pro C# como o querido Visual Studio.

    Responder

Trackbacks/Pingbacks

  1. Enfim Generally Available do WSL2 que chega ao Windows 10 na versão 2004 | gaGO.io - […] https://gago.io/blog/dev-desktop-dotnet-core-windows-ou-linux/ […]

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.

Agenda & Eventos

novembro

dezembro 2020

janeiro
DOM
SEG
TER
QUA
QUI
SEX
SAB
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
Events for 1st dezembro
Sem Eventos
Events for 2nd dezembro
Sem Eventos
Events for 3rd dezembro
Sem Eventos
Events for 4th dezembro
Sem Eventos
Events for 5th dezembro
Sem Eventos
Events for 6th dezembro
Sem Eventos
Events for 7th dezembro
Sem Eventos
Events for 8th dezembro
Sem Eventos
Events for 9th dezembro
Sem Eventos
Events for 10th dezembro
Sem Eventos
Events for 11th dezembro
Sem Eventos
Events for 12th dezembro
Sem Eventos
Events for 13th dezembro
Sem Eventos
Events for 14th dezembro
Sem Eventos
Events for 15th dezembro
Sem Eventos
Events for 16th dezembro
Sem Eventos
Events for 17th dezembro
Sem Eventos
Events for 18th dezembro
Sem Eventos
Events for 19th dezembro
Sem Eventos
Events for 20th dezembro
Sem Eventos
Events for 21st dezembro
Sem Eventos
Events for 22nd dezembro
Sem Eventos
Events for 23rd dezembro
Sem Eventos
Events for 24th dezembro
Sem Eventos
Events for 25th dezembro
Sem Eventos
Events for 26th dezembro
Sem Eventos
Events for 27th dezembro
Sem Eventos
Events for 28th dezembro
Sem Eventos
Events for 29th dezembro
Sem Eventos
Events for 30th dezembro
Sem Eventos
Events for 31st dezembro
Sem Eventos
Share This