【问题标题】:App config different project best practice应用配置不同的项目最佳实践
【发布时间】:2012-10-07 19:09:19
【问题描述】:

默认情况下,被加载的 app.config 是项目中包含应用程序入口点的那个。

现在数据访问代码关心的是 RDBMS(Oracle、SQL 等)。如果我将连接字符串存储在 DAL 项目而不是启动项目中,它将删除 DAL 和启动项目之间的依赖关系。但是根据经验我知道连接字符串总是存储在启动项目中。

存储连接字符串的推荐项目(启动数据访问层)是什么?如果是启动项目,那么由此产生的启动和DAL之间的依赖是否可以接受?

【问题讨论】:

  • 你为什么需要这样的东西?这会解决app.config 文件的什么问题?
  • @Oded:存储包含连接字符串的配置文件的推荐位置是什么?入口项目还是数据访问层?由于数据访问中的代码关心特定的 RDBMS ,因此将连接字符串作为数据访问项目的一部分对我来说似乎很有意义。
  • 标准位置是入口项目的connectionStrings配置部分。这也是推荐的位置。数据访问层不应该关心它需要使用哪个数据库/服务器。
  • 您可以将该配置存储在您喜欢的任何位置。例如,在我的工作项目中,我们有一个配置项目,我们的入口点 App.config 只是为我们需要的所有差异配置部分引用这些外部文件。
  • @developer747 - 是的,至少对于 .NET,使用数据库类(所以 DbConnection 而不是 SqlDbConnectionOracleDbConnection)。

标签: .net configuration


【解决方案1】:

您好:如果您希望将演示文稿与存储库分离,那么您希望(需要)将此类信息存储在存储库/DAL 项目中。因此,初创项目总是拥有这些信息是不正确的。例如,使用实体框架,您将在该层(通常是存储库或 DAL)中找到 app.config 的连接字符串版本。

将数据库的连接字符串存储在 web.config 文件中是很常见的,但这只是因为您的表示层与存储库之间存在一对一的关系。我倾向于使用数据层或服务层的 app.config 文件,并且在执行单元测试时不需要包含我的表示层。

【讨论】:

    猜你喜欢
    • 2014-03-30
    • 2017-08-24
    • 2015-01-15
    • 2011-03-12
    • 2023-04-06
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多