程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET MVC Framework與WCSF中MVP模式的比較

ASP.NET MVC Framework與WCSF中MVP模式的比較

編輯:關於ASP.NET

概述

MVC模式已經出現了幾十年了,在GUI領域已經得到了廣泛的應用,由於微軟ASP.NET MVC Framework的出現,致使MVC一度成為.NET 社區的熱名話題。作為MVC的變種MVP模式,也已經出現好幾年了,在微軟模式與實踐小組提供的Web Client Software Factory中,給出了實現 MVP模式的應用程序最佳實踐,本文將試著對這兩種實現比較一二。

MVC(Model-View-Controller,模型-視圖-控制器)模式是80年代 Smalltalk-80出現的一種軟件設計模式,後來得到了廣泛的應用,其主要目的在於促進應用中模型,視圖,控制器間的關注的清晰分離。MVP( Model-View-Presenter,模型-視圖-表示器)模式則是由IBM開發出來的一個針對C++和Java的編程模型,大概出現於2000年,是MVC模式的一個 變種,主要用來隔離UI、UI邏輯和業務邏輯、數據。在下面的文字中,如無特別說明,MVC均指ASP.NET MVC Framework。

處理流程

對於處理流程方面兩者的區別,用下面這兩幅圖就可以說明一切:

圖1:Model-View-Controller

圖2:Model-View-Presenter

處理流程方面,在MVC 中,用戶的請求首先會到達Controller,由Controller從Model獲取數據,選擇合適的View,把處理結果呈現到View上;在MVP中,用戶的請求 首先會到達View,View傳遞請求到特定的Presenter,Presenter從Model獲取數據後,再把處理結果通過接口傳遞到View。

View區別

ASP.NET MVC Framework中的View可以是一個ASP.NET頁面、用戶控件或者是母版頁。需要分別s繼承於ViewPage、ViewUserControl、 ViewMasterPage。示例代碼:

public partial class Views_Blog_New : ViewPage
{

}

采用行內代 碼進行數據的呈現,當然也可以使用服務器控件,示例代碼:

<h2>ASP.NET MVC Framework Sample</h2>
<hr />
<%=Html.ActionLink("Home", "Index")%> |
<%=Html.ActionLink("New Post", "New")%>
<div>
  <%foreach (Post post in ViewData)
   { %>
   <div class="postitem">
    <strong>Title</strong>:<%=Html.Encode(post.Title) % ></br>
    <strong>Author</strong>:<%=Html.Encode(post.Author) %></br>
     <strong>PubDate</strong>:<%=Html.Encode(post.PubDate.ToShortDateString()) %></br>
     <strong>Content</strong>:<%=Html.Encode(post.Description) %></br>
    <% =Html.ActionLink("Edit", new {action="Edit", Id=post.Id })%>
  </div><br />
   <% } %>
</div>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved