2011-04-28 45 views
2

我將在我們的一些Web App頁面上啓動一些實驗室原型。我們使用了很多Postback,ViewState,UpdatePanels,ModalPopup Extender,所有ASP.NET平常的東西。這對大多數情況來說已經足夠了。但我想進一步推動...ASP.NET回傳x jQuery:什麼是缺點和優點?

我一直在玩jQuery一段時間了。我知道有什麼能力。我正在考慮通過諸如$.ajax(),$.get()之類的東西來替代ASP.NET常見的東西,而不是更多的回傳。用戶界面? jQuery UI。我對一些插件,特別是jQuery網格印象深刻。

我認爲這是Web UI的下一步。我的意思是,這是目前的一步!我喜歡C#的強大功能,但我對ASP.NET框架並沒有留下深刻的印象。我想通過這樣做,我將真正將UI與業務邏輯分開。

但是:

  • 如果我真的做到這一點?
  • 背後的代碼應該只有Web處理程序和Web服務?
  • 我應該提防什麼?
  • 安全性如何?如何實現它?
  • 我會得到什麼?我知道我會在性能上獲得一些提升,因爲具有太多數據的頁面中的回傳需要時間,因爲ViewState和我將僅處理XML和/或始終較輕的JSON格式。但我想像往常一樣,會有痛苦...
  • 疼痛會在哪裏?

不管怎樣,我都會把它放慢。但我想問你們:我在這裏進了什麼?

回答

2

在我回復之前,我強烈建議你去ASP.NET MVC框架。這與Webforms完全不同。這離ViewState和那個垃圾有一步之遙。這是微軟正在全力以赴的地方,這是目前在.NET Stack上構建更多可擴展和交互式網站的唯一方式。

我應該真的這樣做嗎? 是的。 jQuery + Ajax非常好,可以讓你建立一些非常互動和可用的網站。現在事情正在進行,如果你不在客戶端使用Javascript的強大功能,你的網站會在1995年建立一個真相。

如果代碼背後只有Web處理程序和網頁服務? 您應該只使用處理程序/服務來改進頁面的設計。你不能只建立你的整個網站。該方法是創建一個頁面,然後使用這些服務對其進行改進。避免回傳小細節。並通過Ajax提高速度等。在Ajax上構建整個網站並不是一個好主意。

我應該提防什麼? 從技術上講,您需要了解客戶端編碼以及HTTP如何在互聯網上工作。 ASP.NET需要所有這一切,所以你甚至不需要知道,但如果你正在做回發等,那麼你應該明白它的侷限性等。

安全性如何?如何實現它? 沒有很多安全阿賈克斯只要你做,你做正常的回傳e.g.s CSS攻擊,SQL注入是什麼將我得到同樣的東西,防僞等

?我知道我會在性能上獲得一些提升,因爲具有太多數據的頁面中的回傳需要時間,因爲ViewState和我將僅處理XML和/或始終較輕的JSON格式。但我想像往常一樣,會有痛苦... 疼痛會在哪裏? 痛苦通常是複雜的。但複雜性具有靈活性。傳統的ASP.NET正在處理所有事情,而不必干預。但現在您必須編寫請求,將其發送到服務器,接收回復,然後相應地更新DOM。你必須處理所有這些,但是在另一面,你可以用任何你想要的方式處理它。

希望有所幫助。

1

我說是的。回發對開發者來說很容易,對用戶體驗來說也很糟糕。不要讓它們通過沉重的頁面加載而遭受損失,只是爲了在頁面上切換一個框。

但是,您需要考慮它需要花費的時間,尤其是因爲您可能不得不依賴越來越多的javascript代碼(如果您是新手,可能會很挑剔)。

我最近在一個大型項目上完成了它,我很高興我做到了。我從完整頁面回發移到了WebMethods和Web服務。嘗試減少服務器上的狀態,這將有助於劃分每個請求處理程序。

+0

安全性如何?你如何阻止外部人訪問你的WebMethods/WebServices? – 2011-04-28 21:35:05

+1

你不知道。您在服務器上處理身份驗證。您無法阻止用戶點擊您的網絡服務。您只能通過帳戶身份驗證將其保留。 – Max 2011-04-28 21:51:07

1

調查asp.net-MVC它很可能是你在說什麼,並實現jQuery和JSON調用。

+0

這聽起來很有希望......我聽說過它,但我不知道:ASP.NET MVC框架?或者它是一個流程指南? – 2011-04-28 20:01:53

+0

我添加了一個鏈接到答案,所以你可以閱讀有關它。 MVC是一種設計實踐。它將數據模型中的UI邏輯分開。如果你使用VS2010,那麼它包含了(至少在專業版中)VS2008有一個補丁/插件。 – Chad 2011-04-29 13:10:59

0

如果你使用PostBack和ViewState,你可能會這樣做的原因。它允許組件和事件。這就是你會在ASP.NET MVC中錯過的東西(你不會說你想使用ASP.NET MVC,但是如果你說ASP.NET沒有PostBack,每個人都會理解ASP.NET MVC)

我使用ASP.NET和ASP.NET MVC。如果項目比網站更適合應用程序(可以說nyt.com是一個網站,Facebook是一個應用程序),那麼使用回發的ASP.NET就可以發揮作用。

相關問題