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

agosto 2020
julho 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

agosto

setembro 2020

outubro
DOM
SEG
TER
QUA
QUI
SEX
SAB
30
31
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
1
2
3
Eventos para setembro

1st

Sem Eventos
Eventos para setembro

2nd

Sem Eventos
Eventos para setembro

3rd

Sem Eventos
Eventos para setembro

4th

Sem Eventos
Eventos para setembro

5th

Sem Eventos
Eventos para setembro

6th

Sem Eventos
Eventos para setembro

7th

Sem Eventos
Eventos para setembro

8th

Sem Eventos
Eventos para setembro

9th

Sem Eventos
Eventos para setembro

10th

Sem Eventos
Eventos para setembro

11th

Sem Eventos
Eventos para setembro

12th

Sem Eventos
Eventos para setembro

13th

Sem Eventos
Eventos para setembro

14th

Sem Eventos
Eventos para setembro

15th

Sem Eventos
Eventos para setembro

16th

Sem Eventos
Eventos para setembro

17th

Sem Eventos
Eventos para setembro

18th

Sem Eventos
Eventos para setembro

19th

Sem Eventos
Eventos para setembro

20th

Sem Eventos
Eventos para setembro

21st

Sem Eventos
Eventos para setembro

22nd

Sem Eventos
Eventos para setembro

23rd

Sem Eventos
Eventos para setembro

24th

Sem Eventos
Eventos para setembro

25th

Sem Eventos
Eventos para setembro

26th

Sem Eventos
Eventos para setembro

27th

Sem Eventos
Eventos para setembro

28th

Sem Eventos
Eventos para setembro

29th

Sem Eventos
Eventos para setembro

30th

Sem Eventos
Share This