Você deve usar o .NET Core, em vez do .NET Framework ou Xamarin, nos 6 cenários típicos a seguir, de acordo com a documentação aqui .
1. Necessidades entre plataformas
Claramente, se seu objetivo é ter um aplicativo (web / serviço) capaz de rodar em plataformas (Windows, Linux e MacOS), a melhor opção no ecossistema .NET é usar o .NET Core como seu tempo de execução (CoreCLR ) e bibliotecas são multiplataforma. A outra opção é usar o Projeto Mono.
Ambas as opções são de código aberto, mas o .NET Core é direta e oficialmente suportado pela Microsoft e terá um investimento pesado no futuro.
Ao usar o .NET Core em plataformas, a melhor experiência de desenvolvimento existe no Windows com o Visual Studio IDE, que suporta muitos recursos de produtividade, incluindo gerenciamento de projetos, depuração, controle de origem, refatoração, edição avançada, incluindo Intellisense, testes e muito mais. Mas o desenvolvimento rico também é suportado usando o Visual Studio Code no Mac, Linux e Windows, incluindo intellisense e depuração. Até editores de terceiros, como Sublime, Emacs, VI e outros, funcionam bem e podem obter conhecimento do editor usando o projeto Omnisharp de código aberto.
2. Microsserviços
Ao criar um sistema orientado a microsserviços, composto por vários microsserviços independentes, escalonáveis dinamicamente, com estado ou sem estado, a grande vantagem que você tem aqui é que você pode usar diferentes tecnologias / estruturas / idiomas em um nível de microsserviço. Isso permite que você use a melhor abordagem e tecnologia por microáreas em seu sistema; portanto, se você deseja criar microsserviços de alto desempenho e escalabilidade, use o .NET Core. Eventualmente, se você precisar usar qualquer biblioteca do .NET Framework que não seja compatível com o .NET Core, não há problema, poderá criar esse microsserviço com o .NET Framework e, no futuro, poderá substituí-lo pelo .NET Testemunho.
A plataforma de infraestrutura que você poderia usar é grande. Idealmente, para sistemas de microsserviço grandes e complexos, você deve usar o Azure Service Fabric. Mas para microsserviços sem estado, você também pode usar outros produtos, como o Serviço de Aplicativo do Azure ou o Azure Functions.
Observe que, a partir de junho de 2016, nem todas as tecnologias no Azure suportam o .NET Core, mas o suporte ao .NET Core no Azure aumentará drasticamente agora que o .NET Core for lançado no RTM.
3. Sistemas com melhor desempenho e escalabilidade
Quando o seu sistema precisa do melhor desempenho e escalabilidade possíveis para obter a melhor capacidade de resposta, não importa quantos usuários você tenha, é aí que o .NET Core e o ASP.NET Core realmente brilham. Quanto mais você puder fazer com a mesma quantidade de infraestrutura / hardware, mais rica será a experiência que terá para seus usuários finais - a um custo menor.
Os dias das melhorias no desempenho da lei de Moore para CPUs únicas não se aplicam mais; no entanto, você precisa fazer mais enquanto seu sistema está crescendo e precisa de maior escalabilidade e desempenho para os usuários mais exigentes do dia a dia, que estão crescendo exponencialmente em números. Você precisa se tornar mais eficiente, otimizar em qualquer lugar e escalar melhor entre os clusters de máquinas, VMs e núcleos de CPU. Não é apenas uma questão de satisfação do usuário; também pode fazer uma enorme diferença no custo / TCO. É por isso que é importante buscar desempenho e escalabilidade.
Como mencionado, se você pode isolar pequenos pedaços do seu sistema como microsserviços ou qualquer outra abordagem pouco acoplada, será melhor, pois você poderá não apenas evoluir cada pequeno pedaço / microsserviço de forma independente e ter um melhor desempenho a longo prazo. agilidade e manutenção, mas você também poderá usar qualquer outra tecnologia no nível de microsserviço se o que você precisar fazer não for compatível com o .NET Core. E, eventualmente, você poderá refatorá-lo e trazê-lo para o .NET Core sempre que possível.
4. Desenvolvimento de estilo de linha de comando para Mac, Linux ou Windows.
Essa abordagem é opcional ao usar o .NET Core. Você também pode usar o IDE do Visual Studio completo, é claro. Mas se você é um desenvolvedor que deseja desenvolver com editores leves e uso pesado da linha de comando, o .NET Core foi projetado para CLI. Ele fornece ferramentas simples de linha de comando disponíveis em todas as plataformas suportadas, permitindo que os desenvolvedores construam e testem aplicativos com uma instalação mínima em máquinas de desenvolvedor, laboratório ou produção. Editores como o Visual Studio Code usam as mesmas ferramentas de linha de comando para suas experiências de desenvolvimento. E os IDE, como o Visual Studio, usam as mesmas ferramentas da CLI, mas as escondem por trás de uma rica experiência em IDE. Agora, os desenvolvedores podem escolher o nível em que desejam interagir com a cadeia de ferramentas, da CLI ao editor e ao IDE.
5. Precisa lado a lado das versões do .NET por nível de aplicativo.
Se você quiser instalar aplicativos com dependências em diferentes versões de estruturas no .NET, precisará usar o .NET Core, que fornece 100% lado a lado, conforme explicado anteriormente neste documento.
6. Aplicativos do Windows 10 UWP .NET.