【问题标题】:Use masterpages and user controls amoung multiple .net web projects在多个 .net Web 项目中使用母版页和用户控件
【发布时间】:2011-05-25 18:37:44
【问题描述】:

我知道此类问题已被多次问过,但我确实在寻找一种可靠的方法来跨多个 Web 项目共享母版页和用户控件。原因是我们当前的 web 应用程序只是一个 webform 项目,但已经失控了。出于各种原因,我们确实需要将这个单个 Web 项目拆分为多个 Web 项目。但是,当我们尝试本网站上提到的各种方法(例如嵌入式资源、预编译等)时,我们总是会在 Visual Studio 中遇到警告和松散的智能感知。我们还研究了使用源代码管理作为共享可重用控件的一种方式,但我们真的希望避免这种反模式。

总体而言,大型开发团队如何有效地将单个 .net Web 项目(webform 或 mvc)拆分为多个 Web 项目并共享可重用控件(母版页、用户控件、图像、css、js 等...) Visual Studio 中的完整智能感知?对此的任何见解表示赞赏。谢谢!

【问题讨论】:

  • 是什么让你认为你会收到一个不同的答案,而这个答案在重复的 SO 问题中是没有的?要求更清楚地了解您正在寻找的内容。
  • 一些关于这个话题的帖子有点老了,所以我想创建一个新帖子可能会得到一些新的答案。我真的很担心智能感知,但我没有看到任何地方提到过。

标签: asp.net asp.net-mvc


【解决方案1】:

我同意 jfar 的观点,即您的问题非常广泛,并不能很好地解释您认为您的回答会有所不同,但无论如何我都会尝试回答。

User Controls 不适合在项目或不同应用程序之间共享。它们允许您对特定应用程序的常用功能进行分组,以便在项目之外重复使用的情况很小(例如,允许经理在各种页面上选择不同属性的项目下拉框)。

如果您需要可以轻松跨越多个项目的可重用控件,您应该使用Server Controls。这将允许您将控件创建和编译为 .dll,旨在在项目之间重用。

如果您确实需要在多个地方重用相同的控件,您应该探索由 Server Controls 提供的预编译并打包到 .dll 解决方案中。这允许维护任务围绕单个 .dll 进行固化,该 .dll 可以加盖版本并且更容易随着时间的推移进行跟踪。

谈到母版页。您可以将embed the Master Page file 转换为可以在多个项目之间共享的 .dll。由于 ASP.NET 支持nested Master Pages,因此您应该能够嵌入核心母版页,同时保持打开状态以在不同项目中进行更改。

如果此答案没有帮助,您必须更明确地说明它们不起作用或使它们不值得追求的地方。问题越清楚,答案就越好。

【讨论】:

  • 感谢您尝试回答问题。我认为这是一个值得更多探讨的话题。我们的情况是我们已经开发了很多用户控件,将它们迁移到服务器控件将非常耗时。我认为嵌套母版页方法很有趣……需要进一步研究。
猜你喜欢
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多