ASP.NET MVC应用程序级软编码设置

时间:2010-10-07 02:28:55

标签: asp.net asp.net-mvc-2

我正在开发一个ASP.NET MVC 2.0 Multi-Presentation Web应用程序,该应用程序将使用通用代码库来支持不同的网站。这些网站在以下方面有所不同:

  • 每个网站都有自己的页眉,页脚,图片,CSS等(我猜网站特定的母版页)
  • 根据网站级别的软编码设置,某些UI元素可能会有所不同

处理这些要求的最佳方法是什么?我应该在数据库或多个配置文件中存储这些网站级软编码设置吗?我可能必须提供管理UI来管理这些软编码设置。如何在我的应用程序的不同层(MVC,服务,存储库等)中访问这些设置?

我需要专家的建议。

此致 亚历克斯。

1 个答案:

答案 0 :(得分:0)

开发某种表示对象模型(如果您倾向于DDD,可能会Aggregate),然后将其持久保存到数据库中。它可以是每个用户或每个站点(如果它是您正在构建的multi-tenanted应用程序)并且使用MVC可以很容易地构建接受这些Presentation Model对象并呈现您的自定义标头的Html Helpers,css ,图像等。

潜在的长期实践例子:

假设您的“租户”被称为Site - 您的模型中可能会有Site个对象。 Site的属性可以是WebPresentation对象。 WebPresentation可能有一系列子对象和列表,其中包含用于读取css,css文件(文档头中的<link>元素),图像等的方法。您可能还有Service或用于持久化/验证WebPresentation个对象的服务函数集(或者您可以尝试将此功能从objects themselves中删除 - 请.Save())。我不会讨论如何将这些数据保存到数据库中(不想侮辱你)。对于视图,您可以设计它们(可能是部分视图),以便自定义WebPresentation Html帮助程序将自定义项呈现到您的MasterPages的视图或<head>部分。

我希望这个例子很有用。