类似于ebay的“联系我们”的架构指南具有决策“工作流程”的系统

本文关键字:工作流程 决策 系统 ebay 我们 联系我 联系我们 类似于 联系 | 更新日期: 2023-09-27 18:06:27

我正在为一个应用程序创建一个新的支持中心和"自助"客户服务模块。首席信息官非常喜欢eBay"联系我们"页面的流程,它基本上是这样工作的:

  • 首先,从一组主题中选择一个特定的主题(例如,购买,销售,eBay上的帐户)
  • 然后,根据你选择的主题(名称只是我在一些初步草图中所说的),你会看到三种变量类型的信息之一:
    1. "Descriptive":显示富文本,可能链接到应用程序的其他部分。
    2. "选择":显示附加主题列表
    3. "Action":让用户查找一个项目并做一些动作(例如取消)

从一些实验中,一个选择可以列出到其他选择,或者到一个描述性的文本块,或者到一个操作部分。

我正在寻找合适的架构。我选择的平台是ASP。. NET (WebForms);我们不想在这里触及MVC),所以"动作"区域必须是一个用户控件,动态加载到占位符,但我更关心的是一个可能的数据库结构。我需要一种方法来知道每个主题是否导致上述三种类型之一,然后在页面上动态加载内容,链接列表或用户控制,这使得事情变得有点棘手,更不用说非技术用户将不得不更新和添加来自某种管理面板的信息。

有什么建议吗?我的截止日期不是很紧,但我不能拖太久,否则会被认为是浪费时间,不会有结果。

类似于ebay的“联系我们”的架构指南具有决策“工作流程”的系统

如果你能以某种方式存储"知识树",就像一个自定义的XML文件,它将组织所有的选项/可能的行动,描述等。然后,您可以根据用户的选择"遍历"它,并根据当前XML节点的内容动态生成相应的用户控件。

你的"管理工具"将需要更新/修改XML文件,而你的"公共"CMS将在ASPX表单中呈现用户控件。

我参与的一个项目在intranet的用户菜单中使用了这种方法——有效地将超链接/操作的知识库划分为不同的类别,以便可以深入到它们。每个元素都可以包含到其他元素的链接——这样你就有了一个类似于可导航链/工作流的蜘蛛网。

只要确保每个元素都有一个唯一的ID(实现起来很简单),并且您总是可以通过xpath获得它。

通过让用户修改"工作副本"并在发布更改时保留活动XML文件的备份,您还可以进行版本控制/回滚,这在数据库中很难做到。

如果我个人这样做,我只会滚动一些MVC3控制器,根据需要处理工作流步骤。然而,这似乎不适合你。

对于webforms,我很可能会考虑使用Windows Workflow Foundation来处理这个问题(这方面的学习曲线比较陡峭)。这里有一个很好的例子,通过ASP使用WF灵活的Web UI工作流应用程序。. NET MVC &;Windows工作流基础。它是建立在MVC之上的,但是你可以很容易地用return UserControls替换return Views()。

遵循这样的模型实际上会给您MVC模式。控制器指示流非常适合工作流场景。

编辑:因为这似乎是不可能的,在这一点上,你最好的选择只是写一个控制器类,将手动管理流(可能是一堆状态/如果检查),然后重定向用户或返回适当的用户控件。