.NET Core - MSBuild e project.json
O .NET Core decidiu descartar o project.json e voltar para o MSBuild e * .csproj. Isso é algo que já aconteceu no recém-lançado conjunto de ferramentas .Net Core 2.0 preview1. Isso é bastante decepcionante, porque o project.json foi uma lufada de ar fresco. No entanto, é compreensível e tem muitas vantagens.
Vamos agora discutir as vantagens que a mudança traz -
Isso tornaria direta a transição das soluções existentes do Visual Studio para o .NET Core.
É uma grande mudança e também permitirá alavancar o investimento existente em CI / RM com base no MSBuild.
Durante a compilação no MSBuild, podemos pensar em compilação incremental, resolvendo dependências de tempo de compilação, gerenciamento de configuração, etc.
É necessário muito trabalho para enviar dotnet cli a tempo, porque não se trata mais apenas do ASP.NET Core, mas também de aplicativos de console, aplicativos UWP, etc.
A seguir estão as mudanças no MSBuild e * .csproj -
O arquivo Project.json (* .xproj) será substituído por MSBuild (* .csproj).
Os recursos em project.json começarão a ser mesclados de volta no * .csproj.
Ainda não está claro o que eles farão com a lista de pacotes, mas foi mencionado que eles podem mantê-la como json em nuget.json ou mesclá-lo no *.csproj.
Supostamente, essa transição deve ser suave e potencialmente automática se estiver usando o Visual Studio.
Vantagens do MSBuild
O MSBuild é open source e está disponível no GitHub e está fadado a se tornar totalmente multiplataforma.
O MSBuild simplificará e ajustará drasticamente a estrutura do *.csproj.
A Microsoft também está introduzindo um novo sistema de projeto que permitirá uma série de cenários sem a necessidade do Visual Studio e os detalhes são fornecidos neste Url https://github.com/dotnet/roslyn-project-system/.
O objetivo é que, mesmo com a configuração do MSBuild, trabalhar com compilações e projeto seja tão integrado no IDE do Visual Studio quanto fora dele.
MSBuild vs project.json
Vamos agora criar um novo projeto de console com as ferramentas de preview2 do .NET Core executando o seguinte comando.
dotnet new -t console
Para ver todos os arquivos criados dentro deste projeto, execute o dir comando.
Você pode ver que dois arquivos são criados, Program.cs e project.json Arquivo.
Vamos agora criar um aplicativo de console com o conjunto de ferramentas de preview1 do .NET Core 2 executando o comando a seguir.
dotnet new console
Para ver todos os arquivos criados dentro deste projeto, execute o dircomando. Você pode ver que três arquivos são criados,Program.cs, NuGet.config e MSBuild.csproj em vez do arquivo project.json.
Vamos agora comparar project.json e MSBuild.csproj arquivos lado a lado.
À esquerda, temos o arquivo no formato json, enquanto à direita, o arquivo está no formato XML. Você pode ver que no arquivo project.json, dentro da seção de dependências, hánetcoreapp1.0, enquanto estiver no arquivo MSBuild.csproj, você verá o netcoreapp2.0.