posts - 134,comments - 22,trackbacks - 0
          <2010年2月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28123456
          78910111213

          常用鏈接

          留言簿(4)

          我參與的團(tuán)隊(duì)

          隨筆分類

          隨筆檔案

          收藏夾

          C++ 社區(qū)

          常用網(wǎng)站

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          RunOn,顧名思義,就是指Object在那一層上面運(yùn)行,客戶端,還是服務(wù)器端?當(dāng)然,前提是要在三層結(jié)構(gòu)下面。Axapta當(dāng)中與RunOn有關(guān)的,大概在以下這幾個(gè)地方:

          相關(guān)的Object,如Form, Report, Class等,Class當(dāng)中的靜態(tài)方法,以及MenuItem。

          Form和Report是不能設(shè)置RunOn屬性的,F(xiàn)orm只能是運(yùn)行在客戶端,而Report則是由MenuItem所決定的,因?yàn)樗腞unOn屬性其實(shí)是被設(shè)為(Always)Called from的。當(dāng)然,假如Report不用MenuItem指定激活的話,如直接在AOT當(dāng)中用右鍵打開(Open),那就肯定是在客戶端生成了。

          那么剩下可以討論的就是Class的RunOn屬性,和Class當(dāng)中的靜態(tài)方法了。

          靜態(tài)方法,由它本身的modifier所決定。不寫的情況下,默認(rèn)為client server(可顯式聲明,一般情況下不用),也就是等于Called from,在哪里被調(diào)用就在哪里運(yùn)行。

          Class本身的RunOn屬性是具有最高優(yōu)先級(jí)的,只有當(dāng)設(shè)置為Called from的時(shí)候,才會(huì)取決于MenuItem中的RunOn屬性。還有一種情況就是,很多Class的main方法也指定了modifier,這個(gè)時(shí)候main方法的modifier比MenuItem更有優(yōu)先權(quán)來決定Class運(yùn)行的位置。

          也就是說Class的RunOn屬性 優(yōu)先于 main方法的modifier 優(yōu)先于 MenuItem的RunOn屬性。

          那么我們再來討論這個(gè)RunOn屬性的作用。

          我們知道,在Axapta三層結(jié)構(gòu)體系當(dāng)中,不同層之間的調(diào)用,無論是方法,還是數(shù)據(jù)的交換,都會(huì)造成運(yùn)行效率的降低。所以我們必須要盡可能減少不同層之間的調(diào)用。譬如說,某個(gè)Class具體的作用是進(jìn)行數(shù)據(jù)運(yùn)算,那么這個(gè)時(shí)候我們把它放在Client端運(yùn)行是非常不合理的。因?yàn)檫@種情況下它需要和database進(jìn)行大量的數(shù)據(jù)交換(中間需要通過AOS),所以我們就需要強(qiáng)制性的把它指定運(yùn)行在AOS上,這樣也可以減少了網(wǎng)內(nèi)部的帶寬消耗,更可以充分利用三層結(jié)構(gòu)的優(yōu)點(diǎn),降低了客戶端機(jī)器的負(fù)載。

          然后還是有一個(gè)Best Practice原則,就是盡量把RunOn設(shè)置在MenuItem,而不要指定在Class本身的屬性上面(盡量默認(rèn)為Called from)。這樣做的好處在于,可以靈活運(yùn)用,因?yàn)槟骋粋€(gè)Class可以在不同的情況下,被指定運(yùn)行在不同層上。開發(fā)人員只需要更改和使用不同的MenuItem,就可以達(dá)到這種效果。這也是Axapta里面所謂的API原則,盡量都通過MenuItem去激活和指定Object的運(yùn)行狀態(tài)。

           

          本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/junevoful/archive/2006/01/06/572496.aspx

          posted on 2010-02-03 18:53 何克勤 閱讀(251) 評(píng)論(0)  編輯  收藏 所屬分類: Microsoft Dynamic AX

          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 漯河市| 五大连池市| 乾安县| 呼图壁县| 馆陶县| 宁蒗| 嫩江县| 临西县| 延津县| 理塘县| 八宿县| 阳原县| 光山县| 九龙坡区| 宁明县| 綦江县| 长宁区| 栾城县| 盈江县| 雷波县| 自治县| 惠来县| 清流县| 柞水县| 苍南县| 镶黄旗| 社旗县| 镇原县| 抚松县| 类乌齐县| 梅河口市| 疏勒县| 永清县| 肥东县| 万州区| 康马县| 楚雄市| 青神县| 安岳县| 临武县| 大竹县|