And*_*ome 5 c# events asp.net-mvc-3
最近我有一个关于在ASP.NET MVC应用程序中使用事件的想法.例如,当用户创建注释时,这将在服务器端触发事件,例如,可以将帐户控制器连接到该事件,从而触发事件上的帐户指定代码.有没有人试过这个,或者甚至可以在Web应用程序中使用这样的事件?
这是一个例子.
一个用途在我的网站上创建了一个评论,虽然评论控制器,这将使评论控制器在我的静态事件管理器中触发一个事件.这将执行与此事件关联的所有方法.在这个例子中是附加的AccountController中的"OnCommentCreate()".现在所有这一切都应该发生在另一个线程上,然后发生在用户身上,因此用户的页面将继续,因为没有事件,而事件正在后面处理.我想到了在时间轴上使用持久连接的地方,或者它可以用来分散代码.我可以举个例子,当用户名更改时会调用一个事件,将会查看日志文件并将用户名更改为新用户名.
我希望这能更好地澄清
如果你愿意的话,你绝对可以做到,DoomStone。ASP.NET MVC 本身并不使用 .NET 事件模型来处理事件,但您所描述的也不是真正的 .NET 事件;它更像是应用程序中的发布和订阅总线。
一种想法是,根据您开始执行的事件数量以及让它们执行的操作,您可能会考虑使用专门构建的事件框架或 WF,或者可能是消息队列。
也就是说,我也鼓励考虑实现目标的其他选择。你给出的例子并没有真正让我觉得是基于事件的编程的最佳点,除非我误解了某些东西。
** 更新 ** 在你发表评论后我有了另一个想法。因此,简短的回答是“是”,这是一种众所周知的模式,特别是对于可能存在于其他服务器上并且可能(在某些情况下)甚至不属于您所拥有的解耦服务。那里有可用的框架,但您所描述的可能完全是本土开发的。您可以在 WKO 上为每个事件创建一个方法(如您的示例所示),或者如果您想要更大的灵活性,您可以定义一个通用操作(例如发布或发送),该操作接受自定义消息类,然后人们调用WKO 可以发送一条键入到事件的消息(换句话说,OnCommentCreated()他们可能不调用 ,而是调用Publish(new CommentCreatedMessage({data})); )这样做往往会使解决方案更能够增长。
| 归档时间: |
|
| 查看次数: |
11915 次 |
| 最近记录: |