我正在开发一个ASP.NET MVC 2.0 Multi-Presentation Web应用程序,该应用程序将使用通用代码库来支持不同的网站。这些网站在以下方面有所不同:
处理这些要求的最佳方法是什么?我应该在数据库或多个配置文件中存储这些网站级软编码设置吗?我可能必须提供管理UI来管理这些软编码设置。如何在我的应用程序的不同层(MVC,服务,存储库等)中访问这些设置?
我需要专家的建议。
此致 亚历克斯。
答案 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>
部分。
我希望这个例子很有用。