【问题标题】:Advice: MVC plugins / separate widgets architecture建议:MVC 插件/单独的小部件架构
【发布时间】:2017-05-07 20:59:26
【问题描述】:

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

我基本上是在寻求有关构建此架构的最佳方式的建议。

到目前为止,我已经尝试了以下方法:

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

我也不喜欢使用 iFrame。

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

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

我发现this 看起来有点老套,而this 在各种情况下都不起作用。

谁能告诉我你将如何去做,或者是否有办法让上述两种解决方案之一发挥作用?

【问题讨论】:

  • 我们真的需要更多关于任一问题的详细信息:(对于每个问题,您能否更具体地说明 a)您的代码、b)用例和 c)确切的错误?
  • 我不确定要提供哪些详细信息?静态内容的错误是我不知道如何从我的主项目中访问它。我可以使用 RazorGenerator 将 cshtml 文件放入我的主项目,但不能使用 css 或 js 文件。用例?

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


【解决方案1】:

从您的角度来看,我相信您已经完全清楚了。不幸的是,虽然我“从概念上”理解你想要做什么......我真的不知道我没有问你哪些“技术细节”,更不用说“什么,到底出了什么问题” .

所以我们陷入了僵局。具有讽刺意味的是,如果您要解释到我要求的详细程度……您可能自己就明白了这个问题,而且一开始就不需要问:(

建议:

  1. 将您的解决方案分成不同的项目绝对没有错。事实上,这绝对是正确的做法——它实际上是“最佳实践”。

  2. 使用恰好位于项目之外的“组件”(我使用“通用”意义上的这个词)绝对没有错。这也是“最佳实践”。

  3. 我倾向于将所有“与 UI 相关的”内容放入 SAME 项目中。其他子项目将应用程序划分为其他功能部分。例如对于应用程序“ABC”,我有一个解决方案和七个项目:

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

'希望能有所帮助......至少有点......

【讨论】:

  • 好的,所以目前我正在使用 RazorGenerator 使两个 Web 项目可用于我的主要 Web 项目。每个单独的模块(Web 项目)都有控制器、助手类、视图、Javascript 文件和样式表。使用 Razor Generator,我可以访问视图(包括布局),并通过引用模块,我可以访问服务器端的东西。我的问题是我不知道如何访问 CSS 和 Javascript。
  • 呃 - 将 *.js 放在项目的“/Scripts”中,将 *.css 放在项目的“Content/”中,然后将它们“包含”在 .cshtml 中? PS:您使用的是带有 IIS 的 MVC 4.x 或 5 ......还是使用“其他版本”?您是在使用 MSVS 进行“构建”……还是在做“其他事情”?如果您只是以标准方式使用标准 MSVS 工具......一切都应该“正常工作”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
相关资源
最近更新 更多