【问题标题】:How to design a website when its content layout needs to be changed all the time?当网站的内容布局需要随时更改时,如何设计网站?
【发布时间】:2012-07-09 03:30:13
【问题描述】:

我们的团队正在使用 ASP.NET 构建一个新网站。我们计划使用 3 层架构。问题是网页上显示的控件需要根据客户的要求随时更改,即添加一对标签/文本框,或者在客户需要时删除一对标签/下拉列表。因此布局需要灵活并允许轻松添加或删除控件,尽管它只显示一些简单的产品信息,如价格、折扣、税收等。

上一版的网站把所有的控件信息都保存在一个数据库里,比如控件名称、控件类型(文本框、标签、下拉列表)、所属的页面和面板等。你可以看到有一个很大的性能受到影响,因为每次有对该页面的请求时,它都需要从数据库中获取所有需要的控件并手动将它们添加到页面中,无论该请求是否为回发。

我们曾考虑将控件直接添加到 .aspx 页面,但在这种情况下,以后很难更改它们。我们还考虑将所有控件的信息保存在 XML 文件中,这可能会带来一点性能优势,但仍然需要始终呈现控件。

所以这就是我们面临的问题,既要提高应用程序的性能,又要同时满足用户的需求。任何人都可以帮助我提供任何解决方案或想法吗?

PS:如果我说的不够清楚,您也可以提出问题。最好的问候。

【问题讨论】:

  • 如果您需要这种级别的灵活性,您应该考虑使用 LightSwitch。您是否正在尝试构建一个可配置的平台?还是您不想预先收集需求?
  • @GlennFerrieLive,我们对LightSwtich不熟悉,时间有限。它不是一个可配置的平台,我们只是想隔离控件添加和删除过程并减少痛苦。

标签: asp.net architecture 3-tier


【解决方案1】:

这对于User Controls 来说听起来不错。如果您所做的只是切换子控件可见性,那么创建具有可切换可见性属性的用户控件应该可以满足您的需求。您仍然可以使用后端来切换可见性,但您只需要从数据库中提取是/否标志,而不是整个页面架构。

从架构的角度来看,用户控件非常棒,因为它们鼓励模块化、代码重用,并且非常适合版本控制(UsercontrolV1.cs、UserControlsV2.cs 等)。在变更请求需要逻辑更新,或者只是需要恢复到 x 次迭代之前存在的构建的情况下,版本控制的要点尤其重要。

【讨论】:

  • 您的意思是,对于每条产品信息(价格、税收、折扣等),我们应该将其包装到用户控件中?在那种情况下,将会有数百个小用户控件,其中大多数彼此相似,似乎有很多重复工作。我误解你的意思了吗?
【解决方案2】:

现在这就是我所说的灵活网络应用程序。

网页上显示的控件需要随时更改

谁将更改控件?客户端?每次请求更改控件时,您不能只更新 .aspx 文件并将其发布到服务器吗?

但无论如何,这是一个有趣的问题。除了使用 XML 文件之外,实际上没有什么可以做的。

【讨论】:

  • 开发人员应该根据客户的要求更改控件。我们想让这个过程更加模块化,而不是到处修改现有代码。
  • 那么我认为你应该只使用 XML 或文件 I/O。因为否则事情会变得更复杂
猜你喜欢
  • 2021-09-08
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 2011-04-07
  • 1970-01-01
  • 2021-10-29
  • 2016-10-10
相关资源
最近更新 更多