.net 应用程序配置不同的项目最佳实践

.net 应用程序配置不同的项目最佳实践,.net,configuration,.net,Configuration,默认情况下,加载的app.config是包含应用程序入口点的项目中的app.config 现在,数据访问代码关心RDBMS(Oracle、SQL等)。如果我将连接字符串存储在DAL项目中,而不是存储在启动项目中,则会删除DAL和启动项目之间的依赖关系。但根据经验,我知道连接字符串总是存储在启动项目中 建议使用什么项目(启动数据访问层)来存储连接字符串?如果是启动项目,启动和DAL之间的依赖关系是否可以接受?您好:如果您希望将演示文稿与存储库分离,那么您希望(需要)将此类信息存储在存储库/DAL项

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

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


建议使用什么项目(启动数据访问层)来存储连接字符串?如果是启动项目,启动和DAL之间的依赖关系是否可以接受?

您好:如果您希望将演示文稿与存储库分离,那么您希望(需要)将此类信息存储在存储库/DAL项目中。因此,启动项目并不总是包含这样的信息。例如,使用EntityFramework,您将在该层(通常是存储库或DAL)中找到app.config版本的连接字符串


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

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