簡體   English   中英

ASP .NET混淆 - 服務器控件

[英]ASP .NET confusion - server controls

我已經閱讀了這個問題中的信息: 控件與標准HTML,但我仍然很困惑。

情況是我被要求做一個網絡項目,我做了一個向導。 當我完成項目時,每個人都問為什么我使用了<asp:Wizard...> 我認為這是被要求的,但顯然不是,所以在此之后我被引導相信服務器控件只是原型工具。

但是,下一個項目我通過C#代碼隱藏進行數據庫查詢並通過html加載結果。 然后我被問到為什么我沒有使用gridview和數據集。

有沒有人有一個利弊列表,為什么他們會選擇使用特定的HTML控件而不是特定的服務器控件?為什么? 我想我正在尋找一個列表......哪些服務器控件可以使用,為什么?

編輯:我想這個問題是開放式的,所以我將澄清一些更具體的問題......

  1. 是否可以使用非常簡單的控件,如asp:Label或者這些只是浪費空間? 似乎很難在后面的代碼中訪問html。

  2. 是否有一些控件應該永遠不會被使用?

  3. 有沒有人有一個很好的資源,可以告訴我每個控件的優缺點?

服務器控件依賴於ViewState,限制靈活性

服務器控件是將WinForms開發人員引入Web開發的強大工具。 Server Controls提供的主要好處是狀態感和事件驅動的開發模型。 然而,自從引入WebForms和服務器控件以來,Web開發的狀態已經逐漸成熟,整體而言,這些控制正受到日益批判的觀點的挑戰。

服務器控件的主要問題是它們試圖過多地抽象Web的行為,並且這樣做依賴於ViewState數據和服務器資源來執行它們的魔力。 如果過度使用ViewState數據,可能會嚴重影響頁面大小,從而導致性能問題

現在可以選擇退出ViewState ,但到那時,簡單地使用常規HTML控件可能更好。

使用HTML控件,您可以精確控制網頁內容,並且您可以更靈活地在網頁上執行哪些操作。 服務器控件提供有限的客戶端靈活性,並迫使在服務器上執行大量工作,可以使用良好的JavaScript框架在瀏覽器中輕松執行。

  1. 是否可以使用非常簡單的控件,如asp:Label或者這些只是浪費空間? 似乎很難在后面的代碼中訪問html。

如果需要訪問服務器端代碼中的控件,請使用服務器控件。 如果沒有,不要。

  1. 是否有一些控件應該永遠不會被使用?

不是我的(中級)經驗。 一旦你知道如何使用它,向導控件就像宣傳的那樣工作(想象一下你自己編寫所有的功能,然后做數學運算)。 我已經使用它了,它產生了一個平滑而實用的多頁面注冊表單,中間保存了數據。

  1. 有沒有人有一個很好的資源,可以告訴我每個控件的優缺點?

我沒有,但我建議在正確的情況下使用正確的控件。 例如,研究Repeater和GridView之間的差異,並根據您的需求使用最佳選擇。

當然有替代品。 首先, MVC正在獲得動力。 就個人而言,我還沒有承諾學習它。 就交互式表單和AJAX而言,許多.NET開發人員選擇使用JQuery進行任何驗證和任何AJAX(UpdatePanels易於使用且非常低效),JSON作為服務器端的傳輸機制。

暫無
暫無

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

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