2011-08-24 89 views
3

我創建了一個應用程序的新的支持中心和「自救」的客戶服務模塊易趣般的「聯繫我們」的系統架構指導。該CIO很喜歡eBay的「聯繫我們」頁面的流程,即基本工作原理是這樣的:與決策「工作流程」

  • 首先,你從一組主題選擇一個特定主題(如買賣,帳戶在eBay)
  • 然後,根據您選擇的主題(名稱就是我在某些初步草圖中稱呼它們的名稱),您會看到似乎是三種可變類型信息之一:
    1. 「描述性」:顯示可以鏈接到應用程序的其他部分。
    2. 「生死抉擇」:顯示的附加主題
    3. 「操作」列表:允許用戶查找一個項目,做一些動作(取消)

從一些實驗,選擇可以列出其他選擇,或者描述性文本塊或操作部分。

我對這個適當的體系結構是空白。我選擇的平臺是ASP.NET(WebForms,可悲的是,我們不想在此觸摸MVC),所以「Action」區域必須是一個用戶控件,它被動態地加載到佔位符中,但我更關心的是可能的數據庫結構。我需要一種方法來了解每個主題是否會導致上述三種類型之一,然後在頁面上動態加載內容,鏈接列表或用戶控件,這會使事情變得更加棘手,而不會介紹這樣的事實:技術用戶將不得不更新並添加來自某種管理面板的信息。

對於做這樣的事情的任何建議?我沒有處於緊急的最後期限,但我不能花太長時間,否則我會被認爲是在浪費時間而不會產生結果。

+0

您的約束是ASP.NET還是特定的ASP.NET webforms? –

+0

可悲的是,WebForms。這裏不能介紹MVC。 –

回答

1

如果你可以存儲「知識之樹」在某種程度上,就像這將組織所有選項的自定義XML文件/可能採取的行動,說明等,然後你就可以「走」,它根據用戶的選擇,並顯示相應的用戶根據您當前所處的XML節點的內容,隨時隨地生成內容。

你的「管理工具」,然後將需要更新/修改XML文件,而你的「公共」 CMS將呈現一個ASPX表單內的用戶控件。

我從事的其中一個項目使用這種方法用於Intranet的用戶菜單 - 實際上超鏈接/操作的知識庫分爲多個類別,因此可以向下鑽取。每個元素都可以包含指向其他元素的鏈接 - 所以你有一個像導航鏈/工作流的蜘蛛網。

只要確保每個元素都有一個唯一的ID(實現起來微不足道),並且您始終可以通過xpath獲取它。

通過讓用戶在發佈更改時修改「工作副本」並保留實時XML文件的備份,您還可以獲得版本控制/回滾,這在數據庫中很難實現。

0

如果我個人在做這個,我只想推出一些MVC3控制器爲需要的處理工作流程步驟。但是,這似乎是爲你而出。

隨着web表單,我很可能會考慮處理這個使用Windows工作流基礎(學習曲線是在這陡峭的適度)。這是使用WF Flexible Web UI Workflow application through ASP.NET MVC & Windows Workflow Foundation的一個很好的例子。它建立在MVC上,但是你可以很容易地用return UserControls替換返回Views()。

按照這樣的模式將事實上的給你的MVC模式。控制器口述流程非常適合工作流程場景。

編輯:因爲這甚至似乎沒有問題,在這一點上,你最好的選擇是寫一個控制器類,手動管理流(可能是一堆狀態/如果檢查),然後重定向用戶或返回適當的用戶控制。

+0

我會看看,但老實說,我不認爲我可以獲得批准,以引入工作流程,或地獄介紹任何新的(我必須爭取牙齒和釘子獲得批准使用Linq到Sql,而不是原始的非類型化DataSets + sprocs) - 管理層似乎認爲這是一組非常簡單的頁面/條件,所以我可能不得不妥協,並使我的版本非常簡單,以便能夠切實地做到這一點。 –

+0

聽起來像你來到這只是爲了讓自己對所有你**不能做的事情都感到難過。 –

+0

更希望能有一個簡單的方法來處理這個問題,我應該知道更好:) –