I read the following sentence in the Fluent NHibernate wiki:
...; however, for most greenfield applications (and quite a few brownfield ones too) auto mapping will be more than capable.
What are greenfield and brownfield applications?
我认为这可能与城市规划术语 “绿地”和 “棕地”有关。绿地是未开发的土地-农业,景观,或自然。棕地是已开发的土地。
棕地应用程序是现有的应用程序,而绿地应用程序是尚未制作或处于开发早期阶段的应用程序。
我猜这是一个建筑的类比
Greenfield 应用程序: 新的开发,没有先前完成的工作,对您的解决方案构成限制。我认为这个词来自“未经耕种的绿色”领域。
棕色领域: 现有的应用程序,需要考虑的现有内容很多,等等。
See this post.
在软件工程等其他学科中,绿地也是一个没有任何先前工作约束的项目。这类似于在绿地上进行建设,不需要改造或拆除现有的结构。
(来自 http://en.wikipedia.org/wiki/Greenfield_project)
Brownfield 开发是 IT 行业中常用的一个术语,用于描述需要在现有(遗留)软件应用程序/系统存在的情况下开发和部署新软件系统的问题空间。这意味着任何新的软件体系结构都必须考虑到并与已经就位的实时软件共存。
(来自 http://en.wikipedia.org/wiki/Brownfield_(software_development))
根据我对 James Gregory (Fluent NHibernate 的幕后推手)的了解,我认为维基百科中关于棕地的条目有点理论化。在 棕地应用发展中,我们将其定义为:
a project, or codebase, that was 先前创建的,可能是 被不良行为所污染, 结构和设计,但具有 通过... 恢复活力的潜力 全面的定向重构
简短版本: 需要工作但仍在积极开发中的现有项目(与大多数遗留系统不同)。
围绕一家公司是否决定使用“绿地”或“棕地”或重构遗留代码,存在很多争议。
作出这一决定需要考虑到许多因素,其中最重要的是开发新应用程序的可用资金。在许多情况下,遗留应用程序是公司当前的摇钱树,任何对遗留代码的绿地替换在完全开发并交到第一个付费用户手中之前都不会赚到一分钱。
虽然大多数软件工程师的偏好是开始新的绿地模式,因为他们通常讨厌 OPC (其他人的代码)它可能并不总是在公司的长期财务。
I wrote an article that analyses the risks involved with greenfield projects basing it on a very real experience at a company I worked for 20+ years ago (showing my age now ;). You can read it here:
Http://stepaheadsoftware.blogspot.com.au/2012/09/greenfield-or-refactor-legacy-code-base.html