我们正在将某些.NET应用程序从完整框架迁移到.NET核心,并且我们正在尝试找到实现此目的的最佳方法。
其中一项主要更改是与应用程序配置方式相关的更改。在.NET完整框架中,我们通常将应用程序设置放入app.config文件中,并通过ConfigurationManager class进行读取。
我知道.NET Core支持基于nuget软件包Microsoft.Extensions.Configuration和配置源的各种打包的新配置系统。但是,与此同时,Microsoft通过nuget软件包System.Configuration.ConfigurationManager将对ConfigurationManager类的支持扩展到了.NET Core。
这是我的问题:
答案 0 :(得分:4)
有一段历史,Asp.Net团队是开始缩小.Net应用程序中包含的依赖关系的原始团队。与更多的模块化框架相比,Microsoft的Web框架ated肿,导致请求延迟。斯科特·汉斯勒曼(Scott Hansleman)经常在演讲中讲这个笑话:
谁在用.Net开发?不到三十岁的人,太棒了!那怎么办 我们打击这个?变得模块化,更快,跨平台且更易于 开始吧。否则你会去的,我想学习编码。 下载Visual Studio,然后在四个小时后编写hello world。
因此,网络团队开始了这一转变,对于网络而言,这使JavaScript Object Notation比扩展标记语言更好。但是,在Asp.Net团队进行这些修改的一年之内,Microsoft将其组织重组为一个.Net。他们意识到,这些更改不仅会涉及Asp.Net团队,而且还会涉及更多。较早的项目类型将不兼容或无法与JavaScript Object Notation一起使用,因此它们的.csproj和其他配置类型已转换回Extended Markup。但是许多开发人员确实很喜欢JavaScript Object Notation文件作为设置,它们更小,更清晰并且不那么冗长。因此,Microsoft通过Microsoft.Extensions.Configuration
重新添加了该功能,以提供灵活性。
因此您可以利用两者之一。除了扩展标记之外,与JavaScript对象相比,读取和冗长的代码往往没有什么真正的好处。 JavaScript对象表示法往往更容易。