程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET上的另一個MVC實現:FubuMVC

ASP.NET上的另一個MVC實現:FubuMVC

編輯:關於ASP.NET

在ASP.NET MVC 正式版發布前,Jeremy D.Miller 和Chad Myers 就在ASP.NET MVC的早期 版本上進行了一些工作,並對底層實現做了一些修改。後來他們改掉了幾乎所有的ASP.NET MVC實現,於是決定構造另一個MVC實現FubuMVC ,不久後Mark Nijhof 被邀請加入項目並成 為主要成員。

Fubu代表“For us,by us”。現在FubuMVC除了使用 ASP.NET Routing外,不使用任何ASP.NET MVC的實現代碼,而ASP.NET Routing則已經包含在 .NET Framework 3.5 SP1中。

Jon Arild Tørresda詢問了Chad Myers, ASP.NET MVC與FubuMVC之間最大的不同是什麼:

如果非要選一個,我選擇“組 合對繼承”。這是一個設計上的基本區別,但並不是說ASP.NET MVC的設計不好,只是 我認為ASP.NET MVC在類結構設計上傾向於使用繼承,因而無法像使用組合那樣易於設計動態 的Web應用程序。

FubuMVC是一個前端控制器 (Front Controller)框架。Chad指出 這個模式的兩個主要目標是:

◆分離對請求的不同關注點

◆允許使用組合的 方式構造響應,以發回給客戶端

對於前端控制器,Chad解釋道:“我們不是不 能使用ASP.NET MVC來實現前端控制器,但是這非常的困難”。

在FubuMVC中有 很多實現方面的決定,其中之一是在Controller的Action執行前後所執行的“行為 ”。Chad解釋了為什麼他們管它叫行為,以及它在FubuMVC中的意義。

當我在一 個Virual ALT.NET(VAN)會議上向一些人演示FubuMVC的早期版本時,Steven Harman (http://stevenharman.net)建議我將之稱為“行為”,因為這個詞語准確描述 了所發生的事,我有點喜歡這個名字。

在FubuMVC中,行為的實現方式實際上是裝飾 模式和職責鏈模式的混合體。

行為對請求管道擁有完全控制權,它可以添加或修改請求,動態選擇需要執行的action以 及是否要執行action,它可以修改或者完全替換action的輸出結果,並且可以在完成請求處 理後執行一些代碼。實際上,生成顯示結果本身也是一個行為。FubuMVC使用行為本身來實現 基本的功能,這些基本功能和行為可以根據需要被替換或修改。

Mark Nijhof在他的 文章FubuMVC and the Front Controller style framework中展示了這個管道:

<

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