我想将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