asp.net-mvc – 如何用ASP.NET MVC命令查询责任分离(CQRS)?
|
我一直在阅读约 Command Query Responsibility Segregation (CQRS).我很奇怪,这将如何与ASP.NET MVC工作?我认为CQRS的概念上听起来不错,肯定会引入一些复杂性(事件和消息模式)相比,“正常/常见”的方法。还有CQRS排序的想法在某些方面反对使用ORM。我试图想如何使用这种模式在未来的项目,如果任何人有结合CQRS与ASP.NET MVC和NHibernate的经验,请给一些具体的例子,以帮助我更好地了解CQRS和使用ASP.NET MVC。谢谢! 更新: http://github.com/MarkNijhof/Fohjin http://cre8ivethought.com/blog/2009/11/12/cqrs–la-greg-young/ http://cre8ivethought.com/blog/2009/11/28/cqrs-trying-to-make-it-re-usable/ 解决方法Cqrs使Web项目更容易。在获取网站,所有的查询将看起来像“select * from table where id = @id”)。对于那些简单的查询,你不需要像NHiberante这样的orm。你不必使用sql数据库,当你需要时,你可以将你的对象序列化到数据库表,或者使用命名约定。你仍然可以通过NHibernate查询读取的数据库,但是你不会从中获得任何好处,因为所有的查询都是一样的。 public class Controller
{
public ActionResult Get(Guid id)
{
var viewModel = reportingDatabase.Get(id);
return View(viewmodel);
}
}
在命令端,控制器将如下所示: public class Controller
{
public ActionResult Post(SomeForm form)
{
// do validation
var command = new SomeCommand(form.Property1,form.Property2);
bus.Send(command);
return redirecto(something else);
}
}
控制器只是发送消息,它不知道消息去往哪里以及消息的结果是什么。这个mvc部分很容易编程。 Cqrs会使写应用程序的Web部分非常无聊,但你可以通过添加一些帮助用户做出决定(可选择返回由jax使用的json)的代码,使它更有趣。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp-classic – 如何在经典ASP中遍历集合?
- asp.net-mvc – 使用缓存配置文件缓存ChildActions将不起作
- 从ASP.NET C#启动一个程序
- asp.net-mvc-routing – ASP MVC 5属性路由VS.基于公约的路
- asp.net-mvc-4 – 使用MVC 4 SimpleMembership与现有的数据
- asp.net-mvc – Razor vs Webforms视图引擎,用于新的ASP.NE
- asp.net-mvc – MVC错误 – 传入字典的模型项目的类型为“S
- asp.net – DirectoryServicesCOMException 80072020来自II
- ASP.NET URL验证
- asp.net-mvc – ASP.NET MVC验证消息未被本地化
