所以我对 MVC4 相当陌生,很多模式对我来说都是新的。
然而,我好奇的一件事是关于发布/调试模式的最佳实践。
对我来说,实时模式和调试模式之间有很多不同的事情,我希望所有这些都是自动的,这样我就不需要更改任何内容来发布。
例如,我在我的存储库(域项目)中这样做了
公共类 EFAccountRepository :IAccountRepository
{
私有 EFDbContext _context;
public EFAccountRepository()
{
#if DEBUG
_context = new EFDbContext("name=Debug");
#else
_context = new EFDbContext("name=Live");
#endif
}
在我的 DI (webui) 中就像这样
#if DEBUG
EFDbContext efcontext = new EFDbContext("name=Debug");
#else
EFDbContext efcontext = new EFDbContext("name=Live");
#endif
或者简单地拥有会更聪明吗?
EFDbContext efcontext = new EFDbContext("name=MyApp");
然后用web.config改变MyApp是什么意思?
热烈欢迎任何其他自动化调试/发布发布的技巧。
我强烈建议不要将连接字符串硬编码到代码中。请考虑将您的代码指向 web.config 转换。您可以在此处添加连接字符串,并根据代码的版本应用适当的转换,以便您只需在应用程序中使用以下代码即可覆盖所有环境。
ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString
在调试版本中你可能有类似的东西
<configuration xmlns:xdt="...">
<connectionStrings>
<add name="MyConnectionString" connectionString="debugstring"
providerName="debugprovider" />
</connectionStrings>
</configuration>
在您的发行版本中,您可以告诉转换来替换旧字符串,如下所示
<configuration xmlns:xdt="...">
<connectionStrings>
<add name="MyConnectionString" connectionString="newstring"
providerName="newprovider"
xdt:Transform="Replace" />
</connectionStrings>
</configuration>
更多参考请查看http://msdn.microsoft.com/en-us/library/dd465326.aspx http://msdn.microsoft.com/en-us/library/dd465326.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)