建议:MVC插件/单独的小部件架构

时间:2017-05-07 20:59:26

标签: c# model-view-controller multiple-projects razorgenerator

我正在构建一个项目,其中一个主要的Web项目充当主要用户体验,还有一些其他Web项目充当插件/小部件,可以在主网站内查看(通常作为主要大页面的一部分)网站)。

我基本上就建立这个问题的最佳方法寻求建议。

到目前为止,我尝试了以下内容:

1)一个主要的Web项目和每个插件的单独项目,每个插件都有一个单独的域。然后使用iFrame将插件插入主网站。 我遇到的问题是身份验证。我在主项目上有表单身份验证,无法从相同的登录cookie中读取插件,这意味着他们在工作之前都需要登录。看到这个问题,我问:Authentication over multiple projects

我也不喜欢使用iFrame。

2)我尝试使用RazorGenerator嵌入视图,这样他们就成了项目的一部分,因此我不需要使用iFrame或担心多项目认证。

这似乎是一个很好的解决方案,但我无法获得静态内容。

我发现this似乎有点hacky this在各种情况下都没有用。

有人可以告诉我你将如何做到这一点,或者是否有办法让上述两种解决方案之一有效?

1 个答案:

答案 0 :(得分:1)

从您的角度来看,我确定您已经完全清楚了。不幸的是,虽然我理解"概念上"你正在尝试做什么...我真的不知道"技术细节"我没有问过你,更不用说"什么,确实是错的"。

所以我们陷入了僵局。具有讽刺意味的是,如果你要按照我要求的详细程度进行解释,你可能会自己理解这个问题,并且首先不需要提出问题。 :(

SUGGESTIONS:

  1. 将解决方案分解为单独的项目绝对没有错。事实上,这绝对是正确的事情 - 它实际上是最佳实践"。

  2. 使用"组件"绝对没有错。 (我使用"泛型"意义上的单词),其实现恰好位于项目之外。这也是"最佳实践"。

  3. 我倾向于把所有" UI相关的"东西进入SAME项目。其他子项目将应用程序划分为其他功能部分。例如,对于应用程序" ABC",我有一个解决方案和七个项目:

  4. ABC .sln + CodeGen.EF + ABC.BLL + ABC.DAL + ABC.DB + ABC.Entity + ABC.Web <= "Scripts/", and all my Views, Controllers and View-related Models are here + ABC.Common <= Application-independent stuff goes here

    &#39;希望这有助于...至少一点......