2009-08-19 51 views
0

背景: 我是一個在.Net平臺上工作的中間Web應用程序開發人員。我的大部分工作都是由我的同事或上級爲我定義的,我遵循指示並完成工作完全沒有問題。Web應用程序體系結構問題

手頭的任務: 我最近被一位老朋友要求重做他的web應用程序。他的應用程序非常陳舊,而且他總是被打破。有問題的應用程序是庫存/ CRM應用程序,目前每個客戶都需要新安裝應用程序(通常通過在同一服務器上的不同域上部署並指向新數據庫來完成)。

目前,如果任何客戶想要對錶格進行任何修改(如附加字段,新功能等),我的朋友就會進入並手動將這些字段添加到表單,腳本,數據庫等。因此,此應用程序的所有安裝都是獨特。沒有一個單一的源代碼庫,沒有一個單一版本的這個應用程序。一般而言,新功能會加入到其他網站中,但仍按個別網站逐個網站完成。

我將在非常模塊化的基礎上接近這一點。最初,我將編寫一個模塊來查詢外部Web服務的某些數據,並顯示和存儲它,並定期自動更新它。下一個模塊可能用於存儲和顯示庫存數據。這種方式我想隨着時間的推移重複他的應用程序的當前功能集100%,但增量。

百萬美元的問題

  1. 我想使應用程序具有用戶 配置表單字段。用戶 應該能夠轉到管理員 頁面,創建特定類別的新表單頁面,然後在那裏指定 他想要的字段。他 可以說「創建一個新的文本字段 叫編號,並使其成爲 要求」,並且將得到保存在某個地方 。所有形式將 動態地呈現在用戶已經配置了什麼基於 到畫面是 這一個很好的方式去了解 問題,因爲他不知道客戶可能需要什麼樣的表格和 因此能夠存儲和顯示 任何類型的表格數據?我應該在這裏遵循什麼樣的 設計模式?

    我熟悉asp.net和 .net framewor K的一般和 了JavaScript, HTML,Silverlight中,jQuery的體面知識,C#等 等我能工作,我的辦法解決網絡 應用程序的一個好辦法,但我不 確定什麼樣的框架或技術 的我應該用來完成這個 任務。 ASP.net 3.5 webforms將成爲 的路要走嗎?或者我應該看看ASP.NET MVC的 ?我是否使用jQuery和ajax來完成 前端和 後端的解耦?或將一個正常的asp.net 頁面與一些噴濺的ajax 拋出與代碼隱藏 是當天的順序?

只是在我開始之前尋找一般建議。

我目前正在考慮爲客戶端動畫,用戶界面,操縱和數據驗證使用ASP.NET 3.5 webforms,jQuery,以及用於後端的sqlserver + .net或wcf webservice。

你的意見是一如既往的讚賞。

回答

2

我最近爲一家保險公司實施了一個白標電子商務系統,該系統允許每個合作伙伴選擇他們自己的一組輸入字段,屏幕並訂購適合他們個人需求的應用程序流。

雖然這不是火箭科學,但它增加了複雜性並增加了開發時間。

仔細考慮用戶配置方面事後看來,我的客戶和他們的客戶反過來會對更嚴格的系統感到滿意。

至於你的問題的技術方面,我在VS2005中開發了我的項目,使用asp.net webforms和Web服務與SQLserver後端,所以你看到的堆棧絕對能夠提供工作產品。就可測試性而言,ASP.net MVC幾乎肯定會有所幫助。

如果我要重新開始我會改變現在最重要的事情是,以取代使用nServiceBus,MassTransit或類似的基於消息的服務中間web服務。雖然web服務工作正常,但基於消息的通信應該更快,更可靠。

最後,在您開始編寫代碼之前,請確保您瞭解當前系統的內部和外部功能。如果新系統不能完成舊系統的功能,那麼對於最終用戶而言,這一點非常明顯。

+0

你是如何管理「允許每個合作伙伴選擇他們自己的一組輸入字段,屏幕,並命令應用程序的流程滿足其個人需求」的部分? – 2009-08-19 08:20:23

+2

我在數據庫中有表格,控制和控制項目,這些項目被組織到可以分配給每個最終客戶端的集合中。每個webform都從一個類繼承而來,該類包含代碼以將配置從數據庫中取出,並以正確的順序構建內容並加載到中繼器控件中。然後,當使用按下繼續時,另一種方法通過控件集合保存到數據庫的值。最後,它將檢查數據庫中的流配置,加載下一個表單並重新開始構建內容。 – JustABitOfCode 2009-08-19 09:49:04