近日,pixel dragons發布了基于asp.net 2.0的mvc開源框架——pixeldragonsmvc.net(之前叫simplemvc.net),并從很多關鍵企業應用特性方面,嘗試對asp.net現有框架進行增強。作為被普遍使用的架構模式,mvc有效的隔離了數據與ui之間的關系,asp.net本身就是一個典型的mvc實現,但為了獲得很多高級特性的支持,需要應用自己完成很多代碼才可以獲得。pixeldragonsmvc.net在很多方面提供了不錯的支持:
它有自己獨立的配置文件,該文件按照m-v的方式組織,并且為每個m和v提供邏輯命名,就象應用中經常使用的邏輯數據庫連接一樣,有效隔離asp.net邏輯與實際m和v關系,以控制反轉的方式將實際m和v的執行交由框架完成。
借鑒了java社區中mvc的實現,該框架也支持每個controller可以支持多action特性。雖然不是必須,但隨著應用規模的擴大,1:1的controller:action將會使應用關聯更加復雜,與其將某個業務實體或者應用的某個功能領域與多個controller產生m:n的交互,不妨將controller作為“擋箭牌”,由他同時管理多個action。
隨著ajax的普及,view的概念也逐漸出現server side和client side交叉的情況,該框架提供了一個輕量的共享(shared)ui特性,目的很簡單——無論server還是client都可以盡量共享同一段ui代碼。
照顧到中小型項目的使用要求,該框架對事務提供了簡化的支持手段,從配置系統中獲取的事務控制信息被“嵌”在httpcontext中,進而在server端指導nhibernate應該對具體action啟用何種事物機制。
在對asp.net request的處理上,該框架作為一個httphandler被配置到web.config中,對于所有的.ashx文件進行攔截(可配置為其他擴展名),根據需要調用相應的controller和view,可將很多任務在后臺直接處理掉。
為了便于開發人員使用,框架外延部分的數據訪問和日志操作方面采用了nhibernate和log4net兩個框架。
但從企業應用需要看,這個框架還有很多不足的地方。
它僅僅支持asp.net,而不能用于windows form,所有操作的隔離環境限于具體httpcontext,而沒有對線程提供支持。
框架自身有些封閉,數據訪問部分和事務控制部分幾乎本地采用了nhibernate,向上無法通過定制,切入enterprise library,向下無法讓項目人員使用簡潔如sqlhelper的訪問機制。
其定位有些尷尬,如果確實服務于中小型應用,在visual studio.net環境下,c、v混合雖然是被普遍反對的方法,但實際開發中出于進度和人員技能的限制,或多或少會出現,學習使用一個新的mvc框架似乎有些繁瑣;在大規模企業應用中,這個框架擴展性又顯得不夠。
盡管如此,如果項目已經選擇nhibernate進行asp.net項目開發的話,該框架可以作為一個不錯調度機制集成。經過它的“梳理”,在項目頁面的不斷修改和充實情況下,依然可以在代碼外圍——配置文件中管理他們,尤其是controller可以根據需要同時激活多個action。另外,相對“龐大”的uip而言,pixeldragonsmvc.net專注而且簡潔很多,學習門檻也非常低。
新聞熱點
疑難解答
圖片精選