我想將SOA模式合併到我的3層結構中。我在BLL和UI之間創建了一個服務層(WCF主機)。 我的結構設置是現在看起來是這樣SOA問題:公開實體
UI <> WCF <> BLL <> DAL
<---[Entities] --->
的問題是,我有我在單獨的DLL實體(和它在除用戶界面外的所有圖層中都可見) 現在,我需要公開它,以便我的服務的使用者可以使用它。在這種情況下,UI。我怎麼可能做到這一點?
Entities.DLL
namespace Entities
{
public class Account
{
public string AcctID { get; set; }
public string AcctName { get; set; }
}
}
現在而言,我打算使用它在WCF
服務接口層
public class AccountService : IAccountService
{
public Account GetAccount(string AcctID)
{
//fetch from DAL through BLL
}
}
它是確定,只是屬性我的實體? (注意,我也在使用DAL和BLL中的實體)
using System.Runtime.Serialization;
namespace Entities
{
[DataContract]
public class Account
{
[DataMember]
public string AcctID { get; set; }
[DataMember]
public string AcctName { get; set; }
}
}
任何建議傢伙?
感謝瘦長爲詳細的說明。我還沒有嘗試實體到DTO方法的映射,所以我有很多的研究要做,我認爲這是要走的路。但我只關注DTO和實體,ENL對BLL和DAL可見,而DTO將用於從WCF到UI的數據傳輸。 WCF將處理映射.. – CSharpNoob 2010-10-07 15:58:27
這是一個很好的開始。我知道,看起來幾乎完全一樣的DTO和實體聽起來有點多餘,但如果您的項目變得非常龐大,它將帶來收益。 – StriplingWarrior 2010-10-07 16:05:15
你可以在我的答案中加入存儲庫嗎?我會在哪裏放?謝謝先生.. – CSharpNoob 2010-10-07 16:42:55