ASP.Net 5 vNext用于模块化网站的中间件

时间:2015-10-06 10:43:40

标签: c# asp.net asp.net-core middleware modularity

我刚刚开始学习ASP.Net 5的新版本,此时我对他们推出的所有新功能印象深刻。我最期待的是内置DI系统。

目前我在一家拥有约15个网站的公司工作,所有这些网站的结构几乎相似,但每个网站的个别内容都很少。

所以,我打算为我们的网站做一些迷你CMS,比如PRISM中的模块化,使用vNext的新功能。

现在,我正在尝试制作一些基本的中间件(如商店,服务,博客,聊天或其他),但我被困在这里。

问题1:可以使用中间件作为具有自己的路由,控制器,管理面板扩展等的站点的独立模块吗?

if - yes,then ...

问题2:如何处理来自中间件的Invoke方法的路由请求?

我在http://docs.asp.net阅读了目前可用的所有文档,但是在那里使用的中间件示例非常简单,不应该开始编写真实应用程序中使用的中间件。

编辑1: 我想知道,如果中间件在PRISM中可以像IModule一样工作吗?

在PRISM中,我在IModule中注册类型和视图,它就像是所有模块组件的粘合剂。例如:我有基于PRISM的应用程序,只有很少的模块:会计,产品,文档,邮件程序等。每个模块都有自己的模型,ViewModel,Views等,几乎每个模块都可以解耦或修改,而不会影响另一个模块。每个人都在不知道其他模块的情况下完成工作。

我试图理解我是否可以使用vNext为web做类似的事情。例如:Blog模块不需要了解Store的内容。

那么,我可以为每个需要的模块单独创建类库,并使用像我在PRISM中使用IModule的中间件吗?

P.S。 任何例子将不胜感激。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

ASP.NET中的中间件取代了http模块。 你无法建立

  

商店,服务,博客,聊天或其他

使用http模块(或中间件)。它们在http请求的上下文中工作。

您正在谈论的模块是更高级别的概念。 这是一个不同的抽象层次。

回答你的问题:

  1. 它们不是您想到的模块类型。否
  2. MVC中间件已经处理了路由。我认为你不需要重新实现这一点。只需使用它。