【发布时间】:2017-06-20 00:21:36
【问题描述】:
我只有两个环境:开发和生产。使用下一个代码来了解应用程序是否在一个或另一个中运行是个好主意吗?
bool IsProduction()
{
return !Debugger.IsAttached;
}
如何使用 appSettings 键?
<appSettings>
<add key="Environment" value="Dev"/>
</appSettings>
如果有人编辑配置文件会发生什么?代码应该有“双重检查”机制吗?值应该加密还是太多?
感谢您的宝贵时间!
【问题讨论】:
-
您的方法说“如果附加了调试器,那么我们就在生产中”。您是否习惯于仅在生产中进行调试,而从不在开发中进行调试?我对您的代码感到非常困惑,仅此一项就是不这样做的理由。
-
更一般地,您应该使用“是否附加了调试器”方法只做一件事:查看是否附加了调试器。
-
@EricLippert 对不起,我错过了!运算符。
-
好的,然后逻辑推理。调试器是否总是附加在开发中?它从不在生产中附加吗?如果这两件事都是真的,那么你的代码是正确的。如果两者都不是,那么代码有时是错误的。编写有时出错的代码会有什么后果?
-
这里要问自己的问题是:我为什么要关心?你打算在生产中做哪些你在开发中不做的事情?你打算在开发中做哪些在生产中不做的事情?例如,假设您说“我想在开发中运行两次相同的计算,一次使用快速算法,一次使用慢速算法,并验证结果是否相同,但在生产中我只想运行快速算法” .对于类似的事情,您将使用断言、条件编译或条件方法。说出你真正想做的事。
标签: c# development-environment production-environment