当前位置 : 主页 > 手机开发 > 其它 >

可移植类库,MVVM和DDD如何协同工作?

来源:互联网 收集:自由互联 发布时间:2021-06-22
因此,我们专注于开发利用CQRS ES的DDD模式的企业Web应用程序.我们在企业级别上处理得非常好.现在,当我们想要使用Xamarin和便携式类库向本地移动设备开放我们的后端服务时,它是如何组合
因此,我们专注于开发利用CQRS ES的DDD模式的企业Web应用程序.我们在企业级别上处理得非常好.现在,当我们想要使用Xamarin和便携式类库向本地移动设备开放我们的后端服务时,它是如何组合在一起的?我们是否将每个有界上下文中的域项目更改为PCL项目类型?我们如何处理MVVM方面的事情,例如 Windows Store App,Windows Phone应用程序?由于我们从Web API服务中提取,我们是否会引入PCL有界上下文库,还是为我们的本机客户端MVVM模式创建子集域模型和单独的PCL库?

现在我们倾向于将原始DDD项目保留为类库,并为我们的MVVM代码创建一个单独的可移植类库.我们可能会使用文件链接链接回域项目以获取模型,以便我们始终拥有最新的POCO对象集以及我们要在客户端上使用的任何DTO对象.其他任何人对此有何想法或想法?我真的没有看到围绕这个DDD PCL组合的很多讨论.

我已经做了很多关于这一点的思考,以及我将Xamarin放入我当前使用DDD方法的架构中所做的是:

>将您的域实体放入PCL项目并使用它来引用您需要的所有项目,例如Xamarin.Forms,Xamarin.Android,Xamarin.iOS,ASP.NET,WCF等.
>您的域服务可以位于将用于应用程序层的普通类库中.应用程序层将由Presentation MVC等Presentation项目使用.
>在分布式服务层中,您将公开Xamarin或其他应用程序的服务以与您的应用程序进行通信.您可以将ASP.NET Web Api或WCF与REST一起使用.该层还将使用关于DDD概念的应用层.
> xamarin项目进入表示层但不使用应用层.在这里,您将为Xamarin编写服务,以通过Internet连接到分布式服务层.如果您需要离线同步,也可以将其放在此处.在这里,您将引用您的域实体项目,并让您的所有实体都有其业务规则.

这样,您就可以与所有解决方案共享域和业务规则,并尊重DDD概念和角色分离.

网友评论