基于asp.net mvc的熱插拔模塊式開(kāi)發(fā)框架(orchardnocms)--aop編程

基于asp.net mvc的熱插拔模塊式開(kāi)發(fā)框架(orchardnocms)--aop編程

ID:23893983

大?。?.44 MB

頁(yè)數(shù):7頁(yè)

時(shí)間:2018-11-11

基于asp.net mvc的熱插拔模塊式開(kāi)發(fā)框架(orchardnocms)--aop編程_第1頁(yè)
基于asp.net mvc的熱插拔模塊式開(kāi)發(fā)框架(orchardnocms)--aop編程_第2頁(yè)
基于asp.net mvc的熱插拔模塊式開(kāi)發(fā)框架(orchardnocms)--aop編程_第3頁(yè)
基于asp.net mvc的熱插拔模塊式開(kāi)發(fā)框架(orchardnocms)--aop編程_第4頁(yè)
基于asp.net mvc的熱插拔模塊式開(kāi)發(fā)框架(orchardnocms)--aop編程_第5頁(yè)
資源描述:

《基于asp.net mvc的熱插拔模塊式開(kāi)發(fā)框架(orchardnocms)--aop編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。

1、廣州呼叫中心http://www.focustar.net/基于ASP.NETMVC的熱插拔模塊式開(kāi)發(fā)框架(OrchardNoCMS)--AOP編程AOP編程在目前來(lái)說(shuō)好像是大家都比較喜歡的。ASP.NETMVC中的Filter就是使用AOP實(shí)現(xiàn)的配置器模式。AOP在編碼中的應(yīng)用主要有如下幾個(gè)方面:日志記錄,跟蹤,優(yōu)化和監(jiān)控事務(wù)的處理持久化性能的優(yōu)化資源池,如數(shù)據(jù)庫(kù)連接池的管理系統(tǒng)統(tǒng)一的認(rèn)證、權(quán)限管理等應(yīng)用系統(tǒng)的異常捕捉及處理針對(duì)具體行業(yè)應(yīng)用的橫切行為前面幾種應(yīng)用我相信大家都是比較熟悉的。在ASP.NETMVC中有Filter之類(lèi)的,提供認(rèn)證和權(quán)限管理。很

2、多實(shí)現(xiàn)AOP的組件都是拿日志作為例子說(shuō)明。我這里給大家說(shuō)明一個(gè)具體業(yè)務(wù)的橫切例子。以之前的Orchard.Car模塊為例,如果我們這個(gè)模塊式產(chǎn)品中的一個(gè)模塊,當(dāng)應(yīng)用到項(xiàng)目中時(shí),可能需要一些改動(dòng),那么AOP就可以在很多時(shí)候解決我們的問(wèn)題。假設(shè)我們現(xiàn)在有一個(gè)方法是獲取Car的列表,那么對(duì)應(yīng)的代碼如下:Copyright?2012廣州市聚星源科技有限公司(020)38258421/22/23/65/66廣州呼叫中心http://www.focustar.net/?對(duì)應(yīng)的Service代碼如下:別忘了在Route.cs中添加路由代碼。運(yùn)行,查看結(jié)果:?Copyri

3、ght?2012廣州市聚星源科技有限公司(020)38258421/22/23/65/66廣州呼叫中心http://www.focustar.net/如果在產(chǎn)品發(fā)布后,項(xiàng)目A中使用該產(chǎn)品,需要為car添加一個(gè)字段,叫做縮略圖,那么很現(xiàn)實(shí)的一個(gè)問(wèn)題是,我們是不是為了項(xiàng)目A單獨(dú)為car擴(kuò)展一個(gè)字段?這時(shí)候適配器就很重要了,實(shí)現(xiàn)適配器的方式有很多,我們這里就說(shuō)明下如何使用AOP來(lái)實(shí)現(xiàn)字段的擴(kuò)展。首先需要一個(gè)Aufofac的module類(lèi),代碼如下:?我們只需要為CarInfoService類(lèi)來(lái)添加一個(gè)攔截器,別的就沒(méi)有必要了。這里你會(huì)看到有一個(gè)SimpleInt

4、erceptor類(lèi),它的作用就是用來(lái)對(duì)CarInfoService的方法進(jìn)行攔截。SimpleInterceptor的代碼如下:????Copyright?2012廣州市聚星源科技有限公司(020)38258421/22/23/65/66廣州呼叫中心http://www.focustar.net/如果當(dāng)前的方法名稱(chēng)是GetList那么我們就為它添加一個(gè)字段,代表縮略圖。這里我隨便寫(xiě)一個(gè),你可以根據(jù)自己的實(shí)際需要去做相應(yīng)的改變?,F(xiàn)實(shí)中,可能這個(gè)Interceptor是在一個(gè)擴(kuò)展模塊中,所以對(duì)應(yīng)的需要一個(gè)擴(kuò)展的服務(wù)來(lái)提供Thumb字段。Copyright?20

5、12廣州市聚星源科技有限公司(020)38258421/22/23/65/66廣州呼叫中心http://www.focustar.net/??結(jié)果不正確,因?yàn)槲覀兛蛻舳嘶蛘唔?yè)面已經(jīng)對(duì)運(yùn)來(lái)的JSON進(jìn)行了解析,所以新的JSON格式不是我們需要的,再次修改Interceptor的代碼:Copyright?2012廣州市聚星源科技有限公司(020)38258421/22/23/65/66廣州呼叫中心http://www.focustar.net/除了GetList方法可以通過(guò)AOP實(shí)現(xiàn)修改封閉擴(kuò)展開(kāi)放,你葉可以使用這種方式來(lái)擴(kuò)展新增記錄的方法。這時(shí)你需要把Req

6、uest.Form從Controller中傳入Service方法。這種擴(kuò)展方式一個(gè)很大的好處就是可以幫助多個(gè)項(xiàng)目平穩(wěn)的升級(jí)。產(chǎn)品模塊的代碼永遠(yuǎn)都不會(huì)被項(xiàng)目牽制。具體的例子請(qǐng)到github上下載相應(yīng)的代碼來(lái)查看,這里就不做解釋了。上面只是我自己的一個(gè)小小的使用經(jīng)驗(yàn),有時(shí)候當(dāng)字段的類(lèi)型需要更改,而你不允許直接更改當(dāng)前的代碼時(shí),這種方式也是一個(gè)不錯(cuò)的方法。AOP雖然不是標(biāo)準(zhǔn)的設(shè)計(jì)模式之一,但是通過(guò)它可以讓很多的模式更加簡(jiǎn)單的實(shí)現(xiàn)。最后說(shuō)明一下,OrchardNoCMS中如何實(shí)現(xiàn)的AOP。它使用的Castle.DynamicProxy來(lái)實(shí)現(xiàn)的。結(jié)合Autofac。

7、首先是對(duì)AutoFac的擴(kuò)展類(lèi):注入時(shí),需要為注入的Component調(diào)用EnableDynamicProxy方法,代碼位置:Copyright?2012廣州市聚星源科技有限公司(020)38258421/22/23/65/66廣州呼叫中心http://www.focustar.net/?可以看出來(lái),所有實(shí)現(xiàn)繼承了IDependency的類(lèi)都可以使用AOP。?以上就是OrchardNoCMS的AOP編程示例,可以到https://github.com/nicholaspei/OrchardNoCMS?下載完整代碼。Copyright?2012廣州市聚星源科

8、技有限公司(020)38258421/22/23/65/66

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。