- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 Asp.net MVC 5、Web Api 2 和 Entity Framework 创建一个项目。我正在使用 Onion 架构设计它,因此我有 DAL、服务和 UI 层。
我的 DAL 层包含一个 UnitOfWork 和存储库,我的服务层包含业务案例服务。
但是我有以下问题:
我在哪里使用工作单元保存(或提交)方法?是在服务层还是在 UI 层?如果我在服务层使用它,我该如何处理跨越多个服务的情况?
我正在使用 DTO 进行 webapi 操作,服务层应该返回 DTO 还是应该在 UI 层中完成映射?
DTO 应该在单独的项目中还是在 UI 项目中?如果它们在一个单独的项目中,我应该使用 MVC 属性进行验证吗?
最佳答案
您的工作单元应该存在于您的服务层中。对服务的每次调用都包含单个工作单元内的业务事务。
public ServiceResponse<Patient> Save(Patient patient, string userName)
{
Func<Patient> func = delegate
{
Authorize(patient, userName);
Validate(patient, new PatientValidator());
using (var context = _contextFactory())
{
return context.Save(patient, userName);
}
};
return this.Execute(func);
}
服务层应该返回您的业务实体,任何用于网络通信/json 格式的映射都应该在 web api 中完成。这允许最大程度地重用您的服务。
如果通过 DTO,您指的是您用于跨线/json 序列化的对象,那么它们应该与 Web Api 保持在同一个项目中。这可能是也可能不是您拥有 UI 的同一个项目。如果您使用 Web Api,我建议您使用 FluentValidation 等验证库。
洋葱架构示例 https://github.com/carbonrobot/FullStackEF使用 C#、EF、Web API
关于c# - MVC Onion 架构,一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28881098/
我正在尝试设置一个 .onion 地址以指向我的 https 站点。每次我尝试从 .onion 地址访问它时,我都会在 Tor 浏览器中收到警告: Your connection is not sec
我尝试将套接字连接到 TOR 网络中的隐藏服务。我有它隐藏服务的洋葱域主机名。我在设备上安装了 Orbot。我使用代理 Orbot 创建用于连接到隐藏服务的套接字。我是这样做的: Proxy prox
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我正在尝试使用请求访问以下域nzxj65x32vh2fkhk.onion。 我必须运行并正确配置 session 的对象代理。 import requests session = requests.s
我正在尝试构建一个可以抓取 .onion 域上托管的各种页面的网站。这意味着它并不像调用 requests.get("http://XXX.onion") 那么简单,因为 .onion 只能通过 TO
我如何识别文本中的 .onion 链接,记住它们可以以多种方式出现; hfajlhfjkdsflkdsja.onion http://hfajlhfjkdsflkdsja.onion http://w
我正在尝试学习洋葱架构,据我所知,我将我的解决方案组织如下: 领域 Domain.Entities(业务对象) Domain.Interfaces(域服务和存储库的接口(interface)) Dom
任何人都可以使用依赖倒置来解释洋葱架构和分层架构之间的区别吗?他们在我看来完全一样。非常感谢任何输入:) 最佳答案 我一直这样认为:N 层架构满足 DI——有一些约束。 最重要的是,内层的代码不与外层
我有几张表: 在 product 表中,我有一个产品列表。 在 user 表中,我有一个用户列表。 在 group 表中,我有用户组。 在 group_member 表中,我链接了 group 和 m
我正在使用 Asp.net MVC 5、Web Api 2 和 Entity Framework 创建一个项目。我正在使用 Onion 架构设计它,因此我有 DAL、服务和 UI 层。 我的 DAL
我正在研究如何构建项目,所以我偶然发现了 Onion Architecture。据我了解,它更像是一种以领域为中心的焦点架构,而不是数据库驱动类型。 我正在寻找一些github项目来研究和了解更多关于
我有一个由 Onion Architecture 实现的项目,它类似于 Ordering .我需要处理所有层中的验证错误。据我所知,通常有以下两种方法来处理错误: 1- 抛出异常 2- 返回操作结果
Domain-driven design(DDD)和Jeffrey Palermo的“The Onion Architecture”是什么关系? 最佳答案 在我看来——它们是相辅相成的——但是从非常不
我正在为一家出租车公司开发 Web 和移动应用程序,我在前端使用 React.js 和 React-native,在后端使用 ASP.NET Core。我尝试遵循洋葱架构来构建 web api,但这部
我正在设置一个 asp.Net Mvc 4 应用程序并希望使用 Onion Architecture 配置它图案。过去我曾这样使用工作单元模式 public class UnitOfWork : IU
我开始使用域驱动设计和洋葱架构设计一个控制台应用程序,在此之前我想探索一个具有域驱动设计和洋葱架构的完全设计的应用程序。如果您遇到任何类型的示例,请发布指向它的链接。 最佳答案 我和你有同样的问题并得
今天早上我刚开始收到谷歌地图脚本错误。 线路:0 字符:0 错误:脚本错误 代码:0 网址: 我将所有代码更改恢复到早期版本,但它仍然存在。 我将包含下面的脚本,但我必须提到它在与 IE 接口(int
我正在尝试获取托管在 tor 网络中的网页。我正在使用以下代码: import requests def get_tor_session(): session = requests.sessi
我正在尝试实现 Tor 的一些随机生成器.onion涉及生成 80 位数字以创建 16 字符散列的地址。 如何在 Python 中定义这样的变量? .onion format : "16-charac
我无法在我的 Onion Omega 2 plus 板上安装 python pubnub SDK。安装总是在以下阶段卡住: root@Omega-E5A5:/# pip3 install pubnub
我是一名优秀的程序员,十分优秀!