Fluent NHibernate wikiで次の文を読みました。
...; ただし、ほとんどのグリーンフィールドアプリケーション(およびかなりの数のブラウンフィールドアプリケーション)では、自動マッピングは機能を超えています。
グリーンフィールドおよびブラウンフィールドアプリケーションとは何ですか?
Fluent NHibernate wikiで次の文を読みました。
...; ただし、ほとんどのグリーンフィールドアプリケーション(およびかなりの数のブラウンフィールドアプリケーション)では、自動マッピングは機能を超えています。
グリーンフィールドおよびブラウンフィールドアプリケーションとは何ですか?
回答:
ソフトウェアエンジニアリングのような他の分野では、グリーンフィールドも以前の作業によって課せられた制約がないプロジェクトです。これは、既存の構造物を改造したり解体したりする必要のない、緑地の土地での建設に類似しています。
(http://en.wikipedia.org/wiki/Greenfield_projectから)
ブラウンフィールド開発とは、IT業界で一般的に使用されている用語で、既存の(レガシー)ソフトウェアアプリケーション/システムが存在する場合に、新しいソフトウェアシステムの開発と展開を必要とする問題空間を表します。これは、新しいソフトウェアアーキテクチャでは、すでに現場にあるライブソフトウェアを考慮に入れて共存させる必要があることを意味します。
(http://en.wikipedia.org/wiki/Brownfield_(software_development)から)
それは都市計画用語の「グリーンフィールドランド」と「ブラウンフィールドランド」に関連していると思います。グリーンフィールドの土地は未開発の土地です-農業、造園、または自然。ブラウンフィールドの土地は開発された土地です。
ブラウンフィールドアプリケーションは既存のアプリケーションですが、グリーンフィールドアプリケーションはまだ作成されていないか、開発の非常に早い段階にあります。
グリーンフィールドアプリ:新しい開発。ソリューションに制約を与える以前の作業はありません。この言葉は国連の「耕されていない、緑の」フィールドから来ていると思います。
ブラウンフィールド:既存のアプリケーション、考慮すべき多くの既存のものなど
James Gregory(Fluent NHibernateの背後にいる男)について私が知っていることに基づいて、ブラウンフィールドのWikipediaのエントリは理論的な側面に少しあると思います。でブラウンフィールドアプリケーション開発、我々はそれをとして定義します。
以前に作成され、不適切なプラクティス、構造、およびデザインによって汚染されている可能性があるが、包括的かつ指示されたリファクタリングを通じて復活する可能性があるプロジェクト、またはコードベース
ショートバージョン:(ほとんどのレガシーシステムとは異なり)作業を必要とするがまだ積極的に開発されている既存のプロジェクト。
企業が「グリーンフィールド」または「ブラウンフィールド」に決定するか、レガシーコードをリファクタリングするかについては、多くの議論があります。
決定は多くの要因を考慮に入れて行う必要があります-グリーンフィールドアプリケーションを開発するために利用可能な資金だけではありません。多くの場合、レガシーアプリは会社の現在のキャッシュカウであり、完全に開発されて最初の有料顧客の手に渡るまで、レガシーコードのグリーンフィールドの交換は1ドルもかかりません。
ほとんどのソフトウェアエンジニアは、OPC(Other People's Code)を通常嫌うため、START NEW GREENFIELD PROJECTが優先されますが、必ずしも会社の長期的な財務に関係があるとは限りません。
私は、20年以上前に働いた会社での非常に実際の経験に基づいて(現在の年齢を示しています;)、グリーンフィールドプロジェクトに伴うリスクを分析する記事を書きました。あなたはそれをここで読むことができます:
http://stepaheadsoftware.blogspot.com.au/2012/09/greenfield-or-refactor-legacy-code-base.html