有一个称为“十二因素应用程序”( http://www.12factor.net/)的优秀文档,作者试图定义设计,构建和部署现代应用程序即服务的完美方式. 该文件非常一般,在许多情况下,所描述的做法不是最佳
该文件非常一般,在许多情况下,所描述的做法不是最佳的,不容易实现的,或者违反了Microsoft的最佳做法.
例如:文档不鼓励使用配置文件,而是使用环境变量进行配置.这在.NET中似乎是不正确的,它是常见的(最好的)练习来使用XML配置文件.
在一个理想的世界(即忘记预算/技术/技能限制)中,微软平台被选为所有部署和.NET / TFS的首选平台的组织,开发环境/选择工具如何遵循指导在十二因素应用程序?
有没有这样一个应用程序的好例子(可能是一个具有优秀参考架构的开放源代码)?
我已经阅读了关于配置的部分,作者明确地不了解在.NET中使用配置文件.他们表达的问题是我们以前用的.ini文件的问题. .NET不存在这些问题,因为:>“桌面”应用程序将每个部署一个配置文件. “app.config”将作为program.exe.config部署到与应用程序相同的文件夹中.>在Web应用程序中,web.config文件的层次结构将再次存在于明确定义的位置中,并具有明确的名称.> Visual Studio 2010中的web.config转换功能允许将主配置文件检入源控件,以及指定如何自动编辑每个构建配置(环境)的主文件的转换文件.所有这些文件都可以存储在源代码控制中.>尽管凭证默认存储在这些文件中(因此被检入源代码控制),但这并不是必需的.>至少在Web应用程序的情况下,IIS的MSDEPLOY功能和Visual Studio 2010的Web发布管道允许部署参数化.默认情况下,这包括连接字符串的参数化,其中可能发生凭据的主要领域之一.这可以扩展为包括所有凭据或其他敏感数据的参数化,以便开发人员无权访问此信息.参数可以作为部署过程的一部分填写.