Kal*_*exx 6 architecture email asp.net-mvc
我试图找出放置代码以在我的Asp.net MVC应用程序中发送电子邮件的最佳区域.现在我的应用程序设置在2个VS项目中,将业务层与表示层分开.我试图设置一种情况,当用户重置其密码时,在业务逻辑更改密码后,服务器将使用新生成的密码向用户发送电子邮件.
我是否应该调用代码从业务层(业务层重置密码之后)或在表示层(业务层返回成功结果之后)发送电子邮件(包括电子邮件的外观数据)?
发送电子邮件应该是业务层的一部分.
几周前我遇到了同样的问题,我正在使用asp.net mvc 3构建一个Web应用程序,它包含三个项目:存储库(DAL),服务(BLL),演示文稿(Web)
我的应用程序逻辑是在服务层实现的,所以我正在寻找在服务层实现一个完全独立的模块的最佳方法,用于向用户发送HTML电子邮件,以便我的服务层功能可以直接使用它而无需携带它直到表示层.
经过一番搜索,我找到了一个由Kazi Manzur完成的优雅解决方案,他创建了一个电子邮件子系统,利用Razor Views在Web项目之外发送HTML/Text电子邮件.
从那以后我一直在使用他的子系统,它做得很好.
我部分同意鲍勃托德的观点,因为他建议你将其抽象出来。我(部分)不同意的唯一部分是它进入业务层。
发送电子邮件依赖于某种物理实现 - 并且您不希望将您的 BL 与某些电子邮件提供商相关的外部依赖项联系起来。
我想,在一个小项目中,您可以将其包含在 BL 中,以保持事情简单,但我赞成将其完全抽象出来,在这种情况下,我会像对待数据访问一样对待它。
在我的世界观中,你可以把它放在两个地方:

注意:自我推销警报!- 取自我自己的一篇文章:http://morphological.wordpress.com/2011/08/29/5-layer-architecture/
| 归档时间: |
|
| 查看次数: |
2420 次 |
| 最近记录: |