Design patterns IRepository<&燃气轮机;和SOA一起
我需要一些关于同时使用IRepository模式和SOA的帮助 我正在开发一个会计应用程序,其中包括非常复杂的业务逻辑。目前,我将IRepository用作DAL,它只提供基本的CRUD+功能,如提供IQueryable接口、一些缓存功能等 除此之外,我还有一个BusinessLogic层,它扮演着服务层或门面层的角色(它们是一样的吗?)。这里封装的所有应用程序逻辑都是表示层将使用的方法 正如我所说,所有基本CRUD都放在存储库中,但在BusinessLogic中更进一步,例如,我们的帐户存储库中可能只有以下基本方法:Design patterns IRepository<&燃气轮机;和SOA一起,design-patterns,soa,Design Patterns,Soa,我需要一些关于同时使用IRepository模式和SOA的帮助 我正在开发一个会计应用程序,其中包括非常复杂的业务逻辑。目前,我将IRepository用作DAL,它只提供基本的CRUD+功能,如提供IQueryable接口、一些缓存功能等 除此之外,我还有一个BusinessLogic层,它扮演着服务层或门面层的角色(它们是一样的吗?)。这里封装的所有应用程序逻辑都是表示层将使用的方法 正如我所说,所有基本CRUD都放在存储库中,但在BusinessLogic中更进一步,例如,我们的帐户存储库
public class AccountRepository
{
public IList<Accounts> GetAll()
{
...
}
public Accounts Get(int id)
{
...
}
public IList<Accounts Where(Func<Accounts,bool> criteria)
{
...
}
public Accounts Add(Accounts item)
{
...
}
}
AccountService还可以有一个CreateAccount()方法,通过使用entities repository在单个事务中添加多个实体(一个帐户、所有者和…)
现在我想知道我是否以正确的方式使用它们?还是我遗漏了一些要点 @sos00问“您在管理事务方面做什么?我的意思是在哪一层处理它们?(我想到引擎层)以及如何在这个架构中实现它们”
在SOA中,您永远无法完全确定您的调用链,因为您今天编写的服务明天将以不同的方式编排
我遵循这个启发;在每个服务的边界上,如果环境事务被传递给我并登记到该事务中,我将加入该事务,如果没有环境事务存在,我将成为新事务的根。通过这种方式,我确信我需要做的任何工作都是事务,并将传递给我拉入编排的其他组件
请参阅本文:我一直在使用这篇文章,请看看这篇文章,特别是关于网关的部分。非常感谢,您是如何管理事务的?我是说你在哪一层处理它们?(我想到引擎层)您如何在这个架构师中实现它们?
public class AccountService
{
AccountRepository repos;
public Accounts FindByNumber(int AccountNumber)
{
return repos.Where(o=>o.AccountNumber == AccountNumber).FirstOrDefault();
}
}