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?
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?
I think it might be related to the urban planning terms "greenfield land" and "brownfield land". Greenfield land is undeveloped land - agricultural, landscaping, or natural. Brownfield land is developed land.
A brownfield application is an existing application, while a greenfield application is one that is not yet made or is in very early stages of development.
I would guess it's an analogy to building
Greenfield apps: new development, no prior work done that poses constraints on your solution. I think the term comes from un "unplowed, green" field.
Brownfield: existing application, lots of existing stuff to consider, etc.
Fortunately Google was not down for me so I was able to find the following definitions within mere seconds.
in other disciplines like software engineering, a greenfield is also a project which lacks any constraints imposed by prior work. The analogy is to that of construction on greenfield land where there is no need to remodel or demolish an existing structure.
(from http://en.wikipedia.org/wiki/Greenfield_project)
Brownfield development is a term commonly used in the IT industry to describe problem spaces needing the development and deployment of new software systems in the immediate presence of existing (legacy) software applications/systems. This implies that any new software architecture must take into account and coexist with live software already in situ.
(from http://en.wikipedia.org/wiki/Brownfield_(software_development))
Based on what I know of James Gregory (the guy behind Fluent NHibernate), I think the Wikipedia entry for brownfield is a little on the theoretical side. In Brownfield Application Development, we define it as:
a project, or codebase, that was previously created and may be contaminated by poor practices, structure, and design but has the potential to be revived through comprehensive and directed refactoring
Short version: An existing project that needs work but is still actively developed (unlike most legacy systems).