在我們公司,我們正在開發一個應用程序,它將由多個模塊組成。該架構的定義非常清晰,但對於演示層我有幾秒鐘的想法,我真的很想聽聽您的意見。該體系結構如下:企業應用程序中的表示層體系結構
Foreach模塊我們創建了幾個名稱空間,這些名稱空間將被編譯到它們自己的類庫中。因此,對於我們的CRM模塊,我們創建以下文件:
- ProductName.CRM.ServiceLayer(持有CRM模塊的servicecontracts接口)
- ProductName.CRM.ServiceLayer.Implementation(實現CRM模塊的servicelayer接口)
- ProductName.CRM.BusinessLayer(持有CRM模塊的businesscomponents)
- ProductName.CRM.BusinessLayer.BusinessObjects(持有CRM模塊的BUSINESSOBJECTS)
- ProductName.CRM.DataLayer(持有CRM模塊的DAO接口)
- ProductName.CRM.DataLayer.SqlServer(實現CRM模塊的數據層接口)
我們創建的模塊財務,人力資源管理,供應類庫的結構相同,等:
- ProductName.Finance ....
- ProductName.HRM ....
- 等 我想你會得到的想法,現在:)
此外,我們想到了「橫切關注點」,爲此我們創建以下的命名空間和類庫
- ProductName.Framework.ExceptionHandling
- ProductName.Framework.Logging
- ProductName.Framework.Security
- etcetra ...
所以這是我們的建築怎麼這麼遠,在這一刻,我試圖找到一個prope用於設置PresentationLayer的方法。例如,我應該製作一個PresentationLayer庫的foreach模塊(ProductName.CRM.PresentationLayer,ProductName.Finance.PresentationLayer等)。並且創建一個整體的ProductName.PresentationLayer庫,它引用了所有其他的Module.PresentationLayer庫。這個整體ProductName.PresentationLayer將具有登錄/ MainForm功能並能夠啓動在其中一個模塊PresentationLayer中實現的表單。它將像其他模塊的應用程序入口點一樣。
或者......
我應該只是一個ProductName.Presentation庫包含所有形式的所有模塊。通過這樣做,我可以輕鬆地導航到其他表單,並且不必擔心模塊之間的引用時他們將使用其他表單(有時他們會這樣做)。
第一個解決方案聽起來不錯。但是,當來自不同模塊的表單想要相互導航時。這種功能很難實現,因爲只有其中一個可以引用另一個。
我真的很想聽聽你對我正在處理的這個問題的意見,也許有人可以給我一個適當的解決方案或想法,我可以使用。
在此先感謝, 乾杯!
您如何看待整個presentationlayer庫,它就像是應用程序和模塊的入口點? 012kIk認爲庫還會包含登錄功能以及爲特定的用戶角色啓用模塊的功能。 當然,業務邏輯中定義了爲特定的userrole啓用的模塊。 – Lionel 2010-04-10 09:44:47