2011-01-23 60 views
1

首先讓我解釋我想要做什麼。我想開發一個服務器來監聽客戶端請求。我的服務器有一個模塊化架構。遠程方法,遠程中央管理

例如,有一個Offer模塊。 Offer模塊有4個項目:Action,Message,Entity和Query。 Query項目通常包含包含遠程方法的類。

第一個問題:如何開發我的服務器,以便集中管理所有事務查詢。我的意思是,所有請求都應該從這個中央管理類路由到所請求的模塊及其遠程方法。我需要你的想法。

第二:假設在我的Offer模塊中,Query項目的ProductQuery類有10個方法,但其中5個是遠程的。 CustomerQuery類有15個方法,其中3個是遠程方法。我想在一個查詢項目中獲取所有遠程方法(例如,在OfferModule的查詢項目或Accounting模塊的查詢項目中)到遠程處理的一個程序集。例如在一個OfferQuery程序集中。

我需要你的幫助。謝謝!

+0

關於你的第一個問題,你太過於無法得到合理的答案。我們需要知道你的服務器組件使用什麼框架,以及典型的具體查詢是什麼樣的。請提供更多細節。 – stakx 2011-01-23 10:46:44

回答

0

我不會回答您的第一個問題,因爲無法以當前的形式合理地回答您的問題。


我的第二個問題的理解:

首先,讓我試着去了解你的服務器體系結構的基本佈局:

+--------+ 1  1..n +--------+ 1 1..n +---------+ 
    | Server |<>------------| Module |<>-----------| Project | 
    +--------+    +--------+    +---------+ 

「有一臺服務器,其中有或由1個或多個模塊,每個模塊都有幾個項目或由幾個項目組成。「我直接從你的問題中解決了這個問題我在這裏不理解的第一件事是,我們是在討論運行時組件,還是關於源代碼解決方案的佈局?

更具體地說,你似乎有模塊,項目和類層次結構:

Server 
| 
+---- Accounting (module) 
|  ¦ 
|  ? (projects) 
| 
+---- Offer (module) 
¦  | 
?  +---- Action (project) 
     | 
     +---- Message (project) 
     | 
     +---- Entity (project) 
     | 
     +---- Query (project) 
      | 
      +---- ProductQuery (class) 
      | 
      +---- CustomerQuery (class) 
      ¦ 
      ? 

如果我理解正確的話,你現在要收集來自例如,全「遠程」的查詢方法ProductQueryCustomerQuery內部共同OfferQuery類...這是正確的嗎?


對第二個問題的解決方案建議中的指示:

。現在,因爲你沒有提供有關您所使用的技術和框架的細節,我還就呆在有些模糊:

我認爲你想要做的不是一個好方法。爲什麼?因爲你打算把完全不相關的東西放到一個類中,這是基於他們都是「查詢」方法的想法。但他們查詢的是非常不同的東西: OffersProducts,Customers。這不是一個好的面向對象的設計,因爲它不是「面向領域」的。它是面向查詢的。

我認爲你會很好地開發一個乾淨的對象(域)模型。圍繞系統中的邏輯實體設計類(例如,已經提及的優惠,產品,帳戶,客戶等)。保持相應的類完全不含查詢方法。

現在,查詢的位置在哪裏?您可以查看此任務的對象關係模型映射器(OR/M)。 Hibernate(或.NET,NHibernate)或Microsoft的.NET實體框架都是很好的選擇。他們會將您的域模型映射到關係數據庫,併爲您完成所有在數據庫中的創建,查詢,更新和刪除。

+0

您簡要描述了我的項目架構。但我實際上定義了乾淨的對象模型。所有關於報價的查詢都將在較新的模塊操作類中進行。您有時會使用報價模塊中的客戶查詢,但所有常見查詢都在一個存儲庫類中在我的有限英語的內容我不能詳細解釋。我在一個模塊中的操作類獲取指定的消息,執行它到數據庫,反之亦然。我明白你給我提供的。我研究了實體framwork.Bu爲此項目我一定要使用這種架構。謝謝你的關心 – Trusik 2011-01-23 10:58:42