我们有一定的要求是创建一个非常动态且通用的Web应用程序,其中包含大量基于配置的功能。
我正在考虑一种架构,我们使用单个动态页面公开基于Web的功能。此页面呈现的功能以及该功能的各个设置将由主XML文件/数据库进行配置和驱动。
此XML文件/数据库将根据浏览器中的URL具有与页面呈现方式相关的所有配置。
因此我认为我们将有一个URL列表,它们都需要重定向到这个特定的页面。在这个页面中,我想我们会检查当前的URL,然后从XML文件/ DB中获取该URL的相应设置,如果找到则不显示任何内容或标准消息。
首先我有两个问题我想知道是否有办法设置一个Web应用程序,以便所有可能的URL解析到某个页面。
其次,我想知道我提出的方法可能存在哪些问题。这可行吗?优点和缺点e.t.c.只是一些一般性的想法和讨论将非常感激。
答案 0 :(得分:0)
通常,您正在编写内容管理系统(CMS)或轻量版本的内容管理系统。这些系统存储配置信息(通常在数据库中)并使用它来呈现可自定义的页面。我会考虑你是否应该只使用一个开箱即用(这将取决于用户真正想要系统的可配置性)。
回答您的具体问题:
"如果有办法设置网络应用程序,以便所有可能的网址都解析到某个页面。" - 是的,您可以设置一揽子转发/重新路由/重定向规则。具体情况取决于您用于托管应用程序的内容。这适用于IIS(https://technet.microsoft.com/en-us/library/cc732969(v=ws.10).aspx)。这些网址都需要位于域,但是该框位于后面。
就利弊而言,这就是我想到的,缺点:
很多锅炉板代码已经写好了。如果用户想要一些非常可定制的东西,您可能需要考虑使用某种CMS,然后对其中的一些组件进行编码。这样,用户甚至可以设计/发布他们自己的页面。这种方法将使您免于编写和维护大量自定义代码(点网核是基于.net的CMS的示例)来处理配置。
增加了测试范围。如果用户要求X并且您正在构建X,这也应该支持配置为像Y和Z一样,那么您还需要测试Y和Z.这是一项前期投资的赌博。
应用程序的单点故障(如果路由页面出现故障,一切都无法访问)
开发人员技能组 - 具有必要的javascript和后端开发技能的完全舍入(全栈)开发人员比专家更难找到。如果您正在构建一个在UI中动态呈现组件的系统 - 它的javascript需要非常干净。
优点:
编写适合您的配置框架的新功能应该是轻而易举的。
能够在运行时引入新功能/组件 - 如果新组件需要的只是config和指向它的url,则可以使用db / config插入在运行时将其添加到应用程序中。
满足您的确切用户的自定义需求。这是一个' pro'每个自定义方法(与现成产品相比),因为您正在构建应用程序 - 您可以使其适合您正在努力的确切业务流程或用户体验,而无需CMS的任何内置限制。