当前位置:  开发笔记 > 编程语言 > 正文

我们可以在域驱动设计中使用ASP.NET标识吗?

如何解决《我们可以在域驱动设计中使用ASP.NET标识吗?》经验,为你挑选了1个好方法。

我们的团队决定将Domain Driven Design架构用于我们的项目.现在正在进行讨论," 我们可以在DDD中使用ASP.NET身份吗?".

在DDD设计中使用ASP.NET标识是否有任何缺点.

我很困惑,要做出决定.

我已经搜索过了,但我没有想到.

任何帮助都会很明显.



1> Bartłomiej S..:

这些问题揭示了一些误解:

看起来您将域模型视为一个单一的模型,您可以将每个应用程序放入其中.相反,请专注于战略模式以区分有界上下文.将域视为几个松散互连组件的组合.然后确定您的核心域名是什么,并在那里应用DDD战术模式.并非每个ccomponent都需要DDD.其中一些人甚至不应该使用DDD.特别是 - 通用域,如身份验证.

DDD是技术不可知的(在某些方面)所以是的,你可以使用ASP.NET Identity或任何你喜欢的库.

身份验证通常属于Application层,而不属于Domain层.

但是 - 如果在您的域中存在用户/客户端/人的概念,则可能需要使用身份组件提供的身份.但是你必须明白,有界上下文中User的含义与Identity in Identity中的含义不同.这些概念不一样.虽然他们都指的是坐在某个地方并点击应用程序GUI的同一个身体的人,但他们是2个不同的模型(或投影),用于不同的目的.因此,您不应该仅仅在有界上下文中重用ASP.NET User类.

相反 - 单独的上下文应该通过反腐败层进行通信.基本上,您必须在有界上下文中创建一些服务(仅限接口),以生成特定于上下文的User对象.在基础结构层中实现的该接口的实现将是ASP.NET Identity的包装,它获取ASP.NET Identity用户并生成相应的有界上下文的用户.


+1这是一个很好的答案,虽然我担心它可能会丢失在OP上.
推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有