【问题标题】:Interface Reutilization (embedding) for Large Projects大型项目的接口重用(嵌入)
【发布时间】:2023-12-19 13:16:02
【问题描述】:

首先,对于任何英语错误,我们深表歉意。这是我在 Stack Overflow 上的第一篇文章,英语不是我的母语。

我的公司目前正在开发一个网络项目,我遇到了一个问题。我们正在对旧版应用程序进行大修。

应用程序由不同的团队以一种方式构建,一个团队正在编写一个框架/基础应用程序,该应用程序将被所有其他应用程序使用(认为是模块,甚至是独立的卫星应用程序)。所有的应用程序目前都是用 ASP.NET MVC 3 编写的。框架(和其他)与任何 mvc 应用程序一样具有视图、模型、控制器和静态资源(如登录屏幕、菜单、布局等)。

目前,我们正在使用 MVCContrib Portable Areas 的修改版本来组织所需的项目。

My.Framework.Web
My.Sales.Web
My.Customer.Web

MVCContrib 项目现在似乎有点死了,我们正在寻找其他方法来解决这种特殊情况。

所以我的问题是:我们这样做的方式是否正确?我的意思是,还有另一种方法可以处理项目之间需要强接口重用的情况?在我看来,这似乎是一种常见情况,但在互联网或书籍上找不到任何类似的(按比例)。

最好的问候。

【问题讨论】:

    标签: asp.net-mvc user-interface architecture portable-areas


    【解决方案1】:

    你可以选择这样的东西:

    我认为它们都有一个缺点,即如果您不希望它们出现在插件程序集中,则需要复制 View 和 Content 文件。但如果你愿意,你可以使用razorgenerator,它可以在你的程序集中嵌入视图。因此,您可以创建区域,然后使用 razorgenerator 将所有内容嵌入到区域集合中,然后它们会在您的宿主项目中引用它并注册该区域。

    顺便说一句,我认为您的应用程序架构(例如复合 Web 应用程序)非常适合创建具有相似服务或模块的多个产品。

    【讨论】:

    • 感谢@allisabzevari 的建议。我现在开始阅读你提供给我的想法。顺便说一句,我希望在我的程序集中嵌入视图,因为框架和卫星是由不同的团队创建的。