簡體   English   中英

戰略建議:升級Web應用程序的設計

[英]Strategic Advice: Upgrading the Design of a Web App

我有一個專門用於報告PBX擴展統計信息的ASP.NET網站。 它包含許多報告頁面,HTML幾乎完全是通過代碼隱藏(設置Label控件的Text屬性而不是使用Response.Write),使用按參數DataTable參數填充的未參數化字符串文字SQL查詢生成的。

維護頁面至少包含DataGrid和明細表,但使用相同的DAL,可以說它支持多個DB服務器,每個子類都使用各自的字符串文字查詢覆蓋這些訪問方法。

我需要考慮清理此混亂情況嗎? 我已經做出了一個幾乎顯而易見的決定,即使用第三方報告解決方案,並將查詢移動到使用其各自的DB語言存儲的proc中,從而縮小了不同DAL類的多樣性,並將CSS分離到共享文件中。它非常隱藏在C#文件中!

對於您的后端設計,建議您使用一個類來代表數據庫的每個主表(例如,一個Report類和一個User類)。 任何不是事件處理程序的內容都應放在后端類文件/名稱空間中。

對於您的GUI,看起來您使用ASP.NET控件走上了正確的道路,而不僅僅是將數據流傳輸給用戶。 但是,您可以考慮對頁面區域進行對象化。 例如,我最喜歡的技巧之一是在需要用戶輸入時打開半透明的“彈出”面板,或者在顯示短消息時打開諸如信息欄之類的信息。

考慮AJAX和AJAX控制工具包。 它易於實現(尤其是在重寫的情況下),並提供了極大的靈活性。 特別是,我發現手風琴-有時甚至嵌套在其他手風琴中-非常適合組織過多的信息。

編輯:

請注意,如果您要使用AJAX,則基本上甚至都不能考慮使用response.write了。

至於屏幕上的內容太多,請記住面板具有“滾動條”屬性,並且DIV不會進行一些重大更改。

另外,我傾向於用命名空間分隔代碼文件。 但是流行的趨勢是按班級這樣做。 如果您有許多開發人員,或者名稱空間中的多個類可能會被簽出或由不同的人同時進行修改,則這是一個更好的選擇。

我會考慮放棄任何自定義的書面DAL,並使用以下之一:

您甚至可能會完全放棄存儲過程。

如果您膽敢,可以嘗試使用Microsoft的MVC實現進行重新設計。

無論采用哪種方法,請確保在重構​​任何代碼之前編寫單元測試,並在重構前后確認測試通過。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM