Yes, you read it right. Project.JSON for ASP.NET Core is going away. One of the biggest change with ASP.NET Core 1.0 was moving towards JSON over XML for configuration settings. And Project.json is the way to define dependencies, managing your runtime frameworks, compilation settings, adding scripts to execute at different events (Prebuild, Postbuild etc.).
.NET Core Schedule
Earlier, .NET team released the schedule and roadmap for .NET Core RC 2. And as per the schedule, .NET Core and ASP.NET Core 1.0 RC2 runtime and libraries will be available in mid-May and tooling will be Preview 1 and bundled with this release. By end of June, we should have .NET Core and ASP.NET Core 1.0 RTM (release) runtime and libraries and tooling will be Preview 2 and bundled with this release. Just to let you know that tooling includes .NET Core command line tools (dotnet cli), Visual Studio and Visual Studio Code that enable you to work with .NET Core projects.
Till tooling preview 1 release, nothing will change with respect to Project.json. But with tooling preview 2 release, following change is likely to happen.
- The extension for project file will be changed to .csproj from .xproj. And this transition will be automatic and will not require you to change your existing projects. So after installing tooling preview 2, when you open your .xproj with VS 2015, then Visual studio will prompt you and convert that for you. But Project.json will stay next to .csproj.
Project.json for ASP.NET Core is going away
Microsoft will continue to make changes and stabilize the tooling until it RTMs with Visual Studio “15”. So during this phase, project related settings (compilation, building, publishing) will move out of Project.json and it will be part of .csproj file. Project.json may stay or get renamed as it will be still having nuget package dependencies.
Few things to note,
- .csproj file will be XML based, not JSON based.
- It is not going to have list of files that we have as of now. So it will be small and easier to manage.
- There will be a new dotnet cli command which will allow to edit .csproj. So you don’t need any IDE to edit it.
Please watch the ASP.NET Community Standup video for more details.
[UPDATE: One more change, Gulp is also no longer the default choice for ASP.NET Core.]
Introduction of project.json was a welcome change. People liked project.json because it is small, clean and easier to make any project related setting changes. But with introduction of .NET Platform Standard to share code across .NET application models, there is also a need to make it easy to work with projects across these application models. I guess that’s why .csproj is back and project.json is going away.
Thank you for reading and I hope it helped you. Keep visiting this blog and share this in your network. Please put your thoughts and feedback in comments section.
If you want to learn ASP.NET Core, I want to personally recommend Programming ASP.NET Core as the best resource out there.