.net - 基于 ASP .NET MVC 的自以为是的 Web 框架

标签 .net asp.net-mvc mef

我所说的固执己见是指该框架将锁定您遵循某些约定或技术或体系结构。类似于 Rails 或 Django 的东西。这将使构建深度集成的插件成为可能。

使用 Rails/Django 的主要优势之一是 gems/plugins。如您所知,您会发现一切的 gem :管理页面、身份验证、评论、丰富的助手等等……

目前,MVC 可以通过使用 DLL 在一定程度上模仿这种行为。然而,据我所知,MVC 没有允许深度集成插件的标准架构——例如,我们不能有评论系统,因为要保存评论,你需要一个存储库,而典型的 MVC 项目可以使用 L2S/EF/NHibernate/MongoDB/等。

在我看来,这样做的一个好方法是:

  • 建立一个使用MEF的中央“核心引擎”项目
  • 核心引擎将公开:
  • 容器/服务地点
  • 少数接口(interface)(如 IRepository)
  • 一些“钩子(Hook)”,例如 ApplicationStart 以及您可以想到的所有其他钩子(Hook)/事件
  • 还有什么?
  • 要使用这个
  • 添加对“核心引擎”二进制文件的引用
  • 设置一些配置(例如 IRepository 的实例)
  • 开发人员现在可以包含任何依赖于“核心引擎”的插件,并且这些插件将拥有对应用程序事件和存储库的完全访问权限
  • 显然,插件开发人员将开发针对核心引擎的插件——他们从不直接与应用程序对话,而引擎是两者之间的中间件。

  • 目标不是拥有完美的企业 Web 框架……而是构建类似于 Django 和 Rails 所拥有的东西,而 MVC 似乎缺少的东西:重但流行的组件的高度可重用性。

    以前有这样做过吗?有一个更好的方法吗?

    最佳答案

    你可能想看看MVC Turbine优惠。这不是您提到的所有内容,但这将是一个很好的起点。

    关于.net - 基于 ASP .NET MVC 的自以为是的 Web 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3218827/

    相关文章:

    .net - 为什么minus比mod慢?

    c# - 在 WinForms 应用程序中禁用重绘

    c# - EF 4.1 - 无法将一个实体与另一个现有实体相关联(可空 FK)

    c# - 获取不是由编译器生成的反射字段

    .net - 可移植类库中是否支持 Interlocked.Read 和 'long' 重载?

    c# - asp.net MVC 4 模型 [Key] 属性无法识别

    asp.net-mvc - 如何将变量传递给 ASP.NET MVC 应用程序中的自定义 ActionFilter

    c# - 尝试学习 MEF 时遇到困难

    ioc-container - MEF 缺少什么才能与 IoC 容器相提并论?

    wpf - ViewModel 未在 View 注入(inject)时初始化(WPF PRISM 4 MVVM)