难以接受你的改变:从project.json到.csproj
自从微软做了一个艰难的决定——.NET Core彻底放弃project.json,全面改回.csproj——至今,虽然赞美之声不断,但我依然不喜欢也难以接受这样的改变。
难以接受主要有两方面的原因:
1)由繁入简易,由简入繁难
习惯了json格式的简洁,很难再适应xml格式的繁琐。无论微软怎么简化.csproj,与project.json天生的简洁相比也是望尘莫及。简单对比一下,立马就能体会到。
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.DataProtection" Version="1.2.0-*" />
</ItemGroup>
</Project>
{
  "dependencies": {
    "Microsoft.AspNetCore.DataProtection": "1.2.0-*"
  }
}
用 project.json 的时候经常喜欢直接在 project.json 文件中修改,可是面对 .csproj 却少了直接修改的欲望。
2)xml与json配置文件的混杂带来不一致的编辑体验
改变的只是project.json,其它的配置文件依然是json格式,比如appsettings.json,两者混杂在一起更显.csproj的格格不入,仅仅这个不一致的编辑体验就让人难以适应。
那微软为什么要做这样一个打自己脸的艰难决定?我想根本原因是为了 .NET Core 能用上历史悠久的 MSBuild 作为 Build工 具,.NET 平台上的很多工具都依赖 MSBuild ,继续使用 MSBuild 有很大的连锁效益。但让 .NET Core 用上 MSBuild 并非只有这一条路,比如让 MSBuild 支持 project.json ,微软为什么选择放弃 project.json 的下策呢?要么微软偷懒,要么因为 MSBuild 的本身设计问题造成很难实现对 project.json 的支持?后者的可能性非常大,因为 MSBuild 过于依赖 xml 配置文件(build任务都是通过xml配置定义的),要它支持另外一种格式的配置文件改动可能非常大,微软选择这样的下策可能处于无奈。虽然理解微软的难处,但站在用户的角度,我还是更喜欢 project.json,难以接受 .csproj。
难以接受你的改变:从project.json到.csproj的更多相关文章
- .NET Core 构建配置文件从 project.json 到 .csproj
		从 .NET Core SDK 1.0 Preview 3 build 004056 开始,.NET Core 弃用 project.json,回归 .csproj,主要原因是为了兼容 MSBuild ... 
- .NET Core项目从xproj+project.json向csproj迁移简介
		3月7日,微软发布了Visual Studio 2017 RTM,与之一起发布的还有.NET Core Runtime 1.1.0以及.NET Core SDK 1.0.0,尽管这些并不是最新版,但也 ... 
- [C#] .NET Core项目修改project.json来引用其他目录下的源码等文件的办法 & 解决多框架时 project.json 与 app.config冲突的问题
		作者: zyl910 一.缘由 项目规模大了后,经常会出现源码文件分布在不同目录的情况,但.NET Core项目默认只有项目目录下的源码文件,且不支持"Add As Link"方式 ... 
- [.NET Core 24]把project.json迁移到.csproj
		链接:https://blog.jetbrains.com/dotnet/2017/04/04/rider-eap-update-csproj-based-net-core-support-migra ... 
- .NET Core项目修改project.json来引用其他目录下的源码等文件的办法 & 解决多框架时 project.json 与 app.config冲突的问题
		作者: zyl910 一.缘由 项目规模大了后,经常会出现源码文件分布在不同目录的情况,但.NET Core项目默认只有项目目录下的源码文件,且不支持“Add As Link”方式引入文件.这时需要手 ... 
- .NET Core系列 : 2 、project.json 这葫芦里卖的什么药
		.NET Core系列 : 1..NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件project.json的相关内容.我们可 ... 
- ASP.NET Core project.json imports 是什么意思?
		示例代码: "frameworks": { "netcoreapp1.0.0": { "imports" : "portable- ... 
- ASP.NET Core中的project.json何去何从?
		Shawn Wildermuth (https://wildermuth.com/2016/05/12/The-Future-of-project-json-in-ASP-NET-Core) If y ... 
- 【循序渐进MVC】第一回——一物多用Project.json依赖关系之dependencies节点
		Project.json统一了ASP.NET vNext之前版本的packages.config.NuGet 配置(nuspec)以及项目文件(csprojs):并集成在Project.json中. ... 
随机推荐
- [Python]编码声明:是coding:utf-8还是coding=urf-8呢
			推荐: #!/usr/bin/env python3 # -*- coding: utf-8 -*- 我们知道在Python源码的头文件中要声明编码方式,如果你不只是会用到ascii码,很多人都写得都 ... 
- 【转】CLR和JIT的理解、.NET反汇编学习
			CLR:通用语言运行时(Common Language Runtime)的简称,CLR是.NET框架的核心内容之一,可以把它看为一套标准资源,可以呗任何.NET程序使用.它包括:面向对象的编程模型.安 ... 
- ios中输入框的父类--文本框,DataPick,pickerview
			父控制器 #import <UIKit/UIKit.h> #import "ScrollViewExt.h" @interface BaseKeyBoardCtrl : ... 
- Swift ARC 自动引用计数
			1.ARC 引用类型在堆上的内存分配过程中有 8 字节的地址长度用来保存对象的引用计数,堆上的内存并不像栈上那样立即进行回收,系统会定时对堆上的内存进行检查,当某个实例不再被使用时,引用计数会变为 0 ... 
- php验证码--图片
			这里我们介绍图片验证码的制作,有关字符验证码能够參考下面文章: 点击打开链接 图片验证码的制作分三步: 1.制作图片库 2.随机选取一张图片 3.输出图片内容 代码例如以下(这里为了方便我直接用的本地 ... 
- windows环境telnet发送命令
			telnet *.*.*.* port ,然后crtl+]进入命令模式,使用send发送消息,如:send hello,murphy 常用命令: open : 使用 openhostname 可以建立 ... 
- Android UI系列-----ImageView的scaleType属性
			这篇随笔将会简单的记录下ImageView这个控件的一些使用方法,以及其最重要的一个属性: scaleType ImageView这个控件是用来显示图片用的,例如我们可以通过下面这段xml配置来声明显 ... 
- java 生成Http 头部date格式的string-RFC 1123 Date Representation in java
			https://blog.csdn.net/lvzhuyiyi/article/details/51770148 ******************************************* ... 
- Android开发(二十一)——自动更新
			参考: [1] Android应用自动更新功能的代码实现.http://www.cnblogs.com/coolszy/archive/2012/04/27/2474279.html 
- [js] 处理字符串换行造成的json解析失败
			需求:从数据库某个字段取出字符串出来,转为json,结果发现报错为 解析失败,发现是因为取出的字符串换行导致,现在需要将字符串里面的换行替换为'',使字符串可依成功解析成json对象. 技术:依靠re ... 
