Recentemente, em um blog oficial do .NET Framework , foi anunciado que o .NET Core será aberto .
Ironicamente, o autor menciona que o que é o .NET Core será explicado na próxima postagem. Mais alguns detalhes são mencionados em outro post do anúncio .
A partir de um diagrama fornecido:
e o próprio texto dos artigos, eu assumiria que o .NET Core (além de coisas óbvias como ser de código aberto) é uma reimplementação modular do .NET completo. Ou seja, os componentes da estrutura são carregados conforme necessário, assim como os pacotes NuGet são carregados agora. E agora o ASP.NET 5 é um dos módulos já implementados. O meu entendimento do .NET Core está correto? Talvez esteja faltando alguma coisa?
Eu encontrei um artigo recente que achei curto e muito bom. Abrange o .NET Standard, o .NET Core e o .NET Framework e seus relacionamentos. Eu recomendo.
Respostas:
No blog do .NET Anunciando a visualização do .NET 2015: uma nova era para o .NET :
E:
Em resumo: primeiro, havia o Microsoft .NET Framework , que consiste em um tempo de execução que executa o código do aplicativo e da biblioteca, e uma biblioteca de classes padrão quase totalmente documentada .
O tempo de execução é o Common Language Runtime , que implementa a Common Language Infrastructure , trabalha com o compilador JIT para executar o bytecode CIL (anteriormente MSIL) .
A especificação e implementação do .NET da Microsoft eram, devido ao seu histórico e objetivo, muito centradas no Windows e no IIS e "gordas". Existem variações com menos bibliotecas, espaços de nomes e tipos , mas poucas delas foram úteis para o desenvolvimento da Web ou da área de trabalho ou são difíceis de portar do ponto de vista legal .
Portanto, para fornecer uma versão do .NET que não seja da Microsoft, que pode ser executada em máquinas que não sejam Windows, uma alternativa teve que ser desenvolvida. Não apenas o tempo de execução precisa ser portado para isso, mas também toda a Framework Class Library para se tornar bem adotada. Além disso, para ser totalmente independente da Microsoft, será necessário um compilador para os idiomas mais usados.
Mono é uma das poucas, se não a única implementação alternativa do tempo de execução , que é executada em vários sistemas operacionais além do Windows, quase todos os namespaces da Framework Class Library a partir do .NET 4.5 e de um compilador VB e C # .
Digite o .NET Core: uma implementação de código-fonte aberto do tempo de execução e uma biblioteca de classes base mínima. Toda a funcionalidade adicional é fornecida através dos pacotes NuGet, implantando o tempo de execução específico, as bibliotecas de estrutura e os pacotes de terceiros com o próprio aplicativo.
O ASP.NET Core é uma nova versão do MVC e WebAPI, agrupada com uma fina abstração de servidor HTTP, executada no tempo de execução do .NET Core - mas também no .NET Framework.
fonte
É um subconjunto do .NET Framework, iniciado com a edição do Compact Framework. Ele progrediu para o Silverlight, Windows Store e Windows Phone. Ele se concentrou em manter a implantação pequena, adequada para downloads e dispositivos rápidos com recursos limitados de armazenamento. E é mais fácil criar em plataformas não Windows, e certamente foi por isso que foi escolhida como a edição de código aberto. As partes "difícil" e "cara" do CLR e as bibliotecas da classe base são omitidas.
Caso contrário, é sempre fácil reconhecer quando você segmenta essa versão de estrutura, porque muitas guloseimas estarão ausentes. Você usará um conjunto distinto de assemblies de referência que expõem apenas o que é suportado pelo tempo de execução. Ele é armazenado em sua máquina no
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore
diretórioAtualização: após o lançamento do .NET Core 2.0, vi alguns números representativos que fornecem uma visão decente. Nos últimos dois anos, eles têm trabalhado duro no trabalho de retroceder APIs da estrutura para o .NET Core. O .NET Core 1.0 originalmente suportou 13.000 APIs. O .NET Core 2.0 adicionou 20.000 APIs, elevando o total para 32.000 e permitindo que cerca de 70% dos pacotes NuGet existentes sejam portados. Há um conjunto de APIs muito pesadas para o Windows para serem fáceis de portar para Linux e MacOS. Coberto pelo Windows Compatibility Pack, lançado recentemente, ele adiciona outras 20.000 APIs.
fonte
.NET Core
é a versão 5.0, que é superior à última estrutura completa. Suponho que eles querem dizer que é algo diferente.Eu encontrei um artigo recente que achei curto e muito bom. Abrange o .NET Standard, o .NET Core e o .NET Framework e seus relacionamentos. Eu recomendo. Infelizmente, não tenho tempo para me adaptar e colocar aqui.
Conteúdo da resposta original abaixo:
Portanto, com base na última entrada oficial sobre o assunto, aqui estão alguns pontos-chave:
Portanto, o .NET Native e o ASP.NET 5 são apenas "assuntos" de teste para a nova configuração da estrutura, parcialmente isso talvez porque sejam bem diferentes:
Veja, eles até precisam de nível baixo separado, mas uma grande parte do BCL ainda é comum:
Ou seja, retângulos magenta na parte superior serão adicionados maciçamente com os novos modelos de aplicativos, mas a base permanecerá comum.
Implantação do NuGet:
Relacionamento com os quadros atuais:
Resumo:
Basicamente, isso pode ser pensado como um .NET 4.6 com um modelo de distribuição alterado, que, simultaneamente, está em processo de se tornar código-fonte aberto.
fonte
A documentação atual tem uma boa explicação sobre o que é o .NET Core, áreas a serem usadas e assim por diante. As seguintes características melhor definem o .NET Core:
E aqui está o que o .NET Core inclui:
fonte
O .NET Core é uma nova implementação de plataforma cruzada dos padrões .NET (ECMA 335) semelhante ao Mono, mas feita pela própria Microsoft.
Consulte docs.microsoft.com
fonte
A Microsoft reconheceu o futuro paradigma de código aberto da Web e decidiu abrir o .NET para outros sistemas operacionais. O .NET Core é um .NET Framework para Mac e Linux. Como é um .NET Framework "leve", faltam alguns recursos / bibliotecas.
No Windows, eu continuaria executando o .NET Framework e o Visual Studio 2015. O .NET Core é mais amigável com o mundo do código aberto, como Node.js , npm, Yeoman , Docker , etc.
Você pode desenvolver sites completos e APIs RESTful no Mac ou Linux com o Visual Studio Code + .NET Core, o que não era possível antes. Portanto, se você gosta de Mac ou Ubuntu e é um desenvolvedor .NET, vá em frente e configure-o.
Para Mono vs. .NET Core, o Mono foi desenvolvido como um .NET Framework para Linux que agora é adquirido pela Microsoft (empresa chamada Xamarin ) e usado no desenvolvimento móvel. Eventualmente, a Microsoft pode mesclar / migrar o Mono para o .NET Core. Eu não me preocuparia com Mono agora.
fonte
Eu estava tentando criar um novo projeto no Visual Studio 2017 hoje (recentemente atualizado do Visual Studio 2015) e notei um novo conjunto de opções para o tipo de projeto. Ou são novos ou já faz um tempo desde que iniciei um novo projeto !! :)
Encontrei este link de documentação e achei muito útil, por isso estou compartilhando. Os detalhes das balas também são fornecidos no artigo. Estou apenas postando marcadores aqui:
Este link fornece um glossário de termos .NET.
fonte
No site da Microsoft :
Essas tecnologias são diferentes do .NET nativo, pois são executadas usando o tempo de execução CoreCLR (usado na Plataforma Universal do Windows ).
Como você mencionou na sua pergunta, o .NET Core não é apenas de código aberto, mas também portátil [roda em MacOS, Windows e Linux]
Os componentes internos do .NET Core também são otimizados para não usar módulos diferentes de sua biblioteca principal, a menos que seja exigido pelo aplicativo.
fonte
A Microsoft acaba de anunciar o .NET Core v 3.0, que é uma versão muito aprimorada do .NET Core.
Para obter mais detalhes, visite este excelente artigo: Diferença entre o .NET Framework e o .NET Core a partir de abril de 2019.
fonte
O .NET Core é uma estrutura de software de computador gerenciado de código aberto e gratuito para sistemas operacionais Windows, Linux e macOS. É um sucessor de código aberto e multiplataforma para o .NET Framework.
Os aplicativos .NET Core são suportados no Windows, Linux e macOS. Em resumo, o .NET Core é semelhante ao .NET framework, mas é multiplataforma, ou seja, permite que os aplicativos .NET sejam executados no Windows, Linux e MacOS. Os aplicativos .NET Framework podem ser executados apenas no sistema Windows. Portanto, a diferença básica entre o .NET Framework e o .NET Core é que o .NET Core é multiplataforma e o .NET Framework é executado apenas no Windows.
Além disso, o .NET Core possui injeção de dependência interna da Microsoft e você não precisa usar arquivos de software / DLL de terceiros para injeção de dependência.
fonte
O .NET Core é uma versão de código aberto e de plataforma cruzada do .NET. Os produtos da Microsoft, além das grandes habilidades que eles têm, sempre foram caros para os usuários comuns, especialmente os usuários finais dos produtos fabricados pelas tecnologias .NET.
A maioria dos clientes de baixo nível prefere usar o Linux como sistema operacional e, antes do .NET Core, eles não gostariam de usar as tecnologias da Microsoft, apesar das grandes habilidades deles. Porém, após a produção do .NET Core, esse problema foi resolvido completamente e podemos satisfazer nossos clientes sem considerar o SO, etc.
fonte
O .NET Core é uma versão de código aberto e de plataforma cruzada do .NET Framework.
fonte