【问题标题】:Best Practice for multiple asp.net web applications多个 asp.net web 应用程序的最佳实践
【发布时间】:2011-08-18 02:02:35
【问题描述】:

在一个 ASP.NET“站点”或“解决方案”中拥有多个 Web 应用程序时寻找最佳实践。我有几个选择:

  1. 将所有应用程序和站点主服务器放在一个解决方案/一个 Web 应用程序中的老忠实用户

  2. 我的老板担心 VS 中有 30 个“应用程序”都在同一个项目下,并且每次我们对一个进行更改时都必须部署到所有应用程序。所以这让我们想在同一个解决方案下将每个项目分解成一个单独的项目。这使我们不得不研究母版页解决方案

    • 母版页需要支持动态菜单结构。这是我可以用单个 SiteMaster 做的事情吗? VirtualProvider 是否为此提供了正确的解决方案?任何人有任何关于它的好教程?
  3. 为每个应用程序创建一个 UserControl 并在主应用程序中引用它

【问题讨论】:

  • 我认为您在这里混合了两个问题。一是当一个网站中有多个 Web 应用程序时,如何构建您的项目?二是如何支持基于层级的动态菜单?对吗?
  • sajoshi- 可能,但我认为一个会指向正确的方向,因为有很多方法可以动态制作菜单,所以我认为我最初关于应用程序和母版页结构的问题(主要是母版页结构0将决定后者

标签: .net asp.net master-pages


【解决方案1】:

我在这里问了两个类似的问题:

Cross-Project Master Page

最好的办法是在一个解决方案下单独的项目,并使用 Nuget 包来同步常见的工件,包括母版页。现在,这在我正在研究的 22 个项目解决方案上运行良好。您还可以将 Nuget 包本身存储在源代码管理中。

更新:

您可以将 XML 文件用于您的菜单并与 Nuget 共享。可能会添加 jQuery 来实现滑动等效果。

【讨论】:

  • Nuget 的设置好像很别扭?
  • 一点也不。下载中还有一个 Nuget Explorer 工具。你可以让它变得如你所愿。尝试两个测试项目的解决方案以开始;你的主要任务是打包公共文件:)
  • 你能指点我或给我一个使用这个的例子吗?看起来你只是在这里发布 dll,如果我这样做不是更容易的虚拟目录吗?
  • 创建一个定义站点模板的基础项目。将其他项目所需的所有常用文件添加到包中(master、css、图像、脚本等)。使用 Nuget 将这些常用文件推送到其他项目。
  • 好的,我在 Nuget 上看过一些东西,但它似乎是一个项目打包程序,不用于此?如果我创建一个项目并使用 Nuget 创建一个包并添加为站点主站引用的 dll,我是否必须重新发布每个应用程序?对于相同的结果,这似乎会导致更多的工作而不是更少的工作?
【解决方案2】:

1) 所以这让我们想在同一个解决方案下将每个项目分解为一个单独的项目。

(好主意)

母版页需要支持动态菜单结构。

顺便说一句,你听说过MEF吗?
这非常适合您的情况。
使用它,您可以获得一个完整的可扩展母版页解决方案,能够动态添加额外的菜单(以及每个菜单的功能)!!!。
通过MEF 技术,您可以在单个解决方案下拥有单独的项目。每个(新的/更新的)项目都可以是

  • 已发布/重新发布。
  • 将其内容文件与已发布的主站点(主项目)合并
  • 将子项目生成的dll复制到bin文件夹中
  • 重新启动网站。

这里有一些关于它的论文:Microsoft referenceCodeProject basics for Asp.Net
还有一个概念叫Portable Area。但我不知道它是如何工作的,也不知道它涵盖的确切场景,或者即使它适用于Asp.Net 或仅适用于Asp.Mvc。有兴趣就试试吧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 2010-10-02
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多