我爲在美國大多數州提供某些類型的金融諮詢服務公司工作的衛星部件。我們目前有一個非常簡單的CRUD應用程序,用於管理客戶以及我們爲每個客戶執行的資產和服務信息。它只關注所有位置共有的基本數據點和流程 - 最不常見的分母。架構更大的應用程序
現在我們要實現用於跟蹤,同時保留核心國家爲導向的制度有所不同的州,不同的數據點和進程的支持。像這樣:
我正在使用的堆棧是ASP.Net和SQL Server 2008.國家應用程序是一個相當簡單的Web窗體的事情。它的數據訪問層是一個圍繞LINQ to SQL實體和datacontext的倉庫包裝。目前除了CRUD操作之外,幾乎沒有商業邏輯,但隨着每個州的複雜性被引入,會有更多的業務邏輯。
那麼,如何在教學貫徹衛星碎片...
- 剛開始glomming的功能和追求泥
- 的大球建立了一系列的衛星應用程序,再利用數據 - 訪問層,但在其他情況下是獨立的
- 在規則引擎(la Windows工作流)中投入(金錢和/或時間)並將每個狀態的唯一位作爲單獨的規則集進行隔離
- 投資(時間)in一個MEF的插件框架,並將每個狀態的功能實現爲ap lugin
- 別的東西
理想的用戶體驗會顯示爲一個單一的應用程序,可以無縫地適應它的介紹和流程,任何位置的用戶與合作。這特別有用,因爲有些用戶使用多種狀態的資產。所以有一場針對二號的罷工。
我與MEF或WF沒有經驗,所以我的大部分問題是我是否是甚要麼旨在解決的問題類型。他們都聽起來像是基於炒作,但可能會變成一個圓洞的方形釘。
在所有情況下,每個狀態都會引入新的數據點,而不僅僅是新進程,所以我會想象數據訪問層會增長以適應添加新表和列的需求,但我全都替代它。
編輯:我試圖想一些例子,我可以分享。可能有一種情況是,我們在一個州提交涉及客戶資產的某些法律文件。申請的屬性和工作流程與其他可能需要類似申請的州不同,所涉及的資產可能具有完全不同的屬性。其他國家可能根本沒有可比較的申請,還有一些國家可能有一系列不斷增加的申請,要求知道該州特有的其他相關實體。
順便說一句,只是一個注意你所有懷疑thomases - 這裏(最後)是設計模式的價值的完美例子:-) – AviD 2009-06-02 05:45:34