【问题标题】:ASP.NET MVC 2 Code SharingASP.NET MVC 2 代码共享
【发布时间】:2010-12-31 15:03:31
【问题描述】:

我有一个包含 2 个 MVC 网站应用程序(网站和网站管理系统)的解决方案。随着构建的进行,有很多通用代码,尤其是在我的视图模型、HtmlHelpers 等中。在 MVC 中将这两个站点视为单独的实体并将代码保存在特定于该站点的一个站点中并手动复制是一种好的做法吗?跨到第二个站点的代码?或者是否有在 Web 应用程序之间共享此通用代码的做法?

当我看到通用代码时,我会很自然地重构它吗?但是我不太确定这在 MVC 环境中是如何工作的。欢迎任何建议或cmets。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    您可以创建一个类库项目并将该代码推送到该项目。然后让两个网站项目都引用该 DLL。我相信视图是 MVC 中唯一不能使用的东西。我相信你也可以用控制器做到这一点,但我还没有尝试过。

    【讨论】:

    • 您可以通过嵌入式资源使用视图。
    • 谢谢布赖恩,我确实认为这与其他 WebForms 项目一样。然而,在我看来,我认为这在试图获得可维护性/可读性的良好平衡时会稍微提高一点。嗯...也许我已经回答了我自己的问题
    • 我刚刚发布了另一个问题的视图代码 - stackoverflow.com/questions/19746/… - 如果您为共享库提供与常规 mvc 项目相同的结构并将本地控制器作为子类,则不会有太多可维护性问题共享控制器的数量 - 至少比在项目之间复制文件要少得多。
    【解决方案2】:

    如果您的网站共享许多 ViewModel 和 HtmlHelpers,我会退后一步,检查为什么它们是两个独立的网站。第二个是第一个站点的管理区域,还是完全独立的实体?如果是第一个,我可能会将所有内容都放在一个站点中。如果是第二个,我会按照 Brian Ball 的建议做,并创建一个两个站点共享的库项目。

    【讨论】:

    • 第二个站点将不仅仅是第一个站点的管理员。然而,它确实有很多管理任务,例如用户的大量 CRUD 工作等,这是大多数交叉开始的地方。我采用了 Brian 的方法并创建了两个站点引用的单独的类库。所有常见的 Web 相关对象都将驻留在此处。谢谢大家。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多