2008-12-10 23 views
8

我想教ASP.NET MVC的學生(本科生)過去8週一直在學習ASP.NET(我知道聽起來不像很多時間,但班級每天4小時,5每週有實驗室,測驗,考試和摔角)。ASP.NET MVC - 如何解釋它?

我還沒有得到這個問題尚未...但我知道它來了...

當我將使用MVC,而不是ASP?

我沒有任何ASP MVC的實際經驗,我在網上找不到任何明確的答案。諸如「......網絡無狀態和ASP MVC更接近匹配等等」之類的爭論「對他們沒有多大意義。他們開始注意到,與MVC相比,ASP有許多似乎可以簡化其標記的控件。

我想給一個誠實的旋轉,任何反饋將不勝感激! TIA

+1

這個問題似乎是題外話,因爲這在幫助中心說明是不在討論範圍之內。 – Will 2013-08-23 15:21:35

回答

6

無狀態是一個很好的單詞來解釋,正如成員已經強調的那樣。 除此之外,還向學生提問以下問題?

如果他們必須使用ASP.NET(無MVC)執行以下操作,它會多麼容易?

  1. 測試你的意見
  2. 模擬的Http對象。
  3. 視圖狀態還原(通過設計)(爲的.aspx
  4. 替代輕量的ViewEngine。
  5. 的顧慮徹底分離。
  6. 清潔HTML
  7. 等等。

現在解釋ASP .net mvc在上面的內容中可能還有更多的內容 至少我認爲他們會明白這一點,認爲這可能不適用於所有項目,但如果我們只是從中獲益的話,會有什麼樣的危害

4

對我來說,MVC方法是一個非常不同的ASP Forms API範例。我認爲「無國籍」這個概念實際上是用一個詞來解釋一個非常廣泛的話題的好方法。

我看到的一個主要優點是MVC框架對設計和頁面輸出提供了很多控制。對於小型項目來說,這可能不是最好的用途,但是對於大型項目來說,它可以很好地擴展,因爲你可以做出不同的架構選擇(我個人認爲)更好,比如MVC框架分離邏輯的方式從視圖。另外,如果你正在設計一個有很多Javascript的網站,那麼你在MVC框架中輸出的控制可以是非常有用的,因爲你不必太擔心ID和其他標記可能會呈現,就像您通常在ASP Forms框架中執行的一樣。

MVC框架是設計網站的完全不同的方式。就我個人而言,我認爲這對大型項目更有好處,但我也開始使用網絡語言,其中MVC是更受歡迎的設計選擇。

這只是我的2美分。

1

對於在Winforms中有經驗(和痛苦)的人 - 最大的區別是沒有更多的Viewstate。表單上的控件狀態保存在客戶端,瀏覽器中併發送到服務器以處理每個請求。

如果您使用Javascript,在瀏覽器端進行更改會更容易,而服務器端可以輕鬆地查看整個表單,而無需重新創建控件綁定。除了MVC提供的所有不錯的東西 - 視圖/代碼,可測試性的分離 - 這對我來說是轉移到MVC的關鍵點。

4

我一直認爲ASP.NET MVC框架是一個糟糕的名字,因爲它的設計模式。

的問題應該是:

我當會使用ASP.NET MVC框架在ASP.NET Web表單?

開發者的體驗

一)ASP.NET Web窗體嘗試從開發商HTTP的抽象掉的無狀態特性。 GUI元素和/或數據的狀態存儲在Viewstate/Session中。每個人表單都會自行回傳,基本上模仿了WinForm事件驅動設計的行爲。

b)HTML GUI元素被控件進一步抽象,可以從第三方供應商那裏重新使用。這有助於開發人員將HTML應用程序粘合在一起,而不需要太多JavaScript和HTML/HTTP知識。基本上類似於你開發VB/WinForms的方式

c)你可以很好的實現ASP.NET webforms中的MVC/MVP模式。查看模式和實踐Web客戶端軟件工廠,看看他們是如何做到的。

d)使用WebForms進行開發時,您通常會根據服務器上的用戶反饋更改HTML(視圖)。大多數事件(用戶單擊一個按鈕,編輯一個字段)在服務器中以連續的回發循環執行,稱爲ASP.NET頁面生命週期。

VS

瀏覽器控制視圖(不知道我還能怎麼稱呼它)。基於用戶輸入的HTML的所有更改都在瀏覽器中處理。你將用Javascript操縱DOM。

注:我這個基礎上的事實,ASP.NET MVC很可能是由基本的HTML + Ajax的

驅動如何我會親自它們之間進行選擇(從未使用MVC,只是讀就可以了) 1)如果我要使用Ajax,Jquery,EXT JS類型庫ASP.NET MVC構建一個純粹的無狀態前端,它似乎更適合。儘管可以在ASP.NET Webforms中構建它,但由於沒有充分利用Postback模型和服務器控件的優勢,這似乎毫無意義。 2)如果我被要求構建一個新的基本Web應用程序,我會堅持使用ASP.NET Webforms,因爲我已經熟悉它並知道整個頁面的生命週期。

3)如果我被要求建立一個Web 2。0(恨這個詞)擁有下一代用戶體驗,我可能會使用ASP.NET MVC,並使用JQuery/ASP.NET Ajax客戶端控件。

4)許多公司已經建立了一套可用的WebForm控件。這將是昂貴的重建他們都在一個純粹的無國籍ajaxy方式:)

1

除了已列出的所有其他優秀的迴應。 Webforms是遠離HTML的抽象

當你想要一個html表格的數據時,你在頁面上放置了一個「gridview」控件 - 你最終得到的是「gridview」html,很可能不是正是你以後的樣子。

鞋子適合90%的時間,但很多時間,特別是當事物超出了控件不適合的基本站點時。使用Webforms通常意味着您無法完全控制呈現給瀏覽器的最終輸出。

您當然可以擴展或編寫自己的網格控件。但是,你不是隻是喜歡寫你想要的HTML嗎?

根據我的經驗,項目變得越來越複雜,用戶界面變得越來越複雜,以至於越來越頻繁地打擊網絡表單。