2015-11-21 24 views
0

我必須創建一個文檔轉換應用程序,必須使用域驅動設計來完成。域驅動設計 - 文檔轉換應用程序

基本上我的應用程序將接收xml \ csv(作爲字符串輸入)格式的數據,它將使用xslt(作爲字符串輸出)轉換爲標準的xml,json或csv格式。

也有一些規則(存儲在關係數據庫中),它們在轉換爲xml或json格式後應用於數據。

結束接口可能是Rest API或Wcf應用程序。

但現在我很困惑,因爲我應該如何使用域驅動設計來創建這個。

什麼是我的域模型,這將包括存儲在數據庫中的規則嗎?

我在哪裏放置核心格式轉換邏輯,在服務層還是直接在API或wcf服務類中?

謝謝!

+1

DDD爲什麼是要求?也許可以問施加這個要求的人他期望的是什麼。 – Batavia

+2

閱讀關於DDD,你會明白爲什麼你的問題沒有多大意義。 – plalx

+1

儘管DDD很棒,但您應該記住DDD並非所有事情的答案,實際上我甚至聽說過,根據您開發的應用程序類型,DDD也可能不被推薦,因爲它可能會使其變得複雜在某種程度上它不應該。假設這是一個學校或研究項目,這就是爲什麼這是一個要求,按照@Batavia的回答,並閱讀關於DDD。否則,你可能最終會爲小應用程序構建一些太複雜的東西。如果你瞭解DDD的最低限度,你就可以爭論他們爲什麼要求它。 – Alisson

回答

1

也可以更好地理解您正在導入的文檔類型。我認爲文檔可能是您的域實體之一。這樣你可以有一個

static Document createFromString(string inputText) 

和非靜態到

void writeToSjon(filepath) 

方法。但要了解ddd或您的域模型,您應該與您的產品所有者溝通,以瞭解您正在解決的問題。因爲這就是你要建模的東西。也許這不是你正在建模的文檔,而是一些dogfood購物清單,它恰好是一個xml/csv輸入。

另請參閱您需要應用的規則。它們只是文本格式規則還是它們針對特定犬種的過敏警告。 DDD在降低溝通障礙方面很有幫助,所以請告訴那些給你輸入/期待你的應用輸出的人。

0

但現在我很困惑,我應該如何使用領域驅動設計來創建這個?

您將與領域專家一起定義域的概念,定義和使用「無處不在的語言」。

什麼將是我的域模型[?]

的車型應該從與領域專家進行你的分析出現。尋找無處不在的語言中的名詞和動詞。他們將成爲您構建模型的類和方法的起點。

...這會包括存儲在數據庫中的規則嗎?

這是一個實現細節。如果合適,將規則存儲在數據庫中。如果不是,則編寫封裝規則的域服務。

我必須創建一個文檔轉換應用程序,必須使用域驅動設計來完成。

此聲明與我有關。您可能需要考慮管理您的經理。使用正確的工具來完成這項工作。