本文是編譯稿件,原文出處:http://www.asptoday.com/articles/20000121.htm
你剛剛把最新的龐大的ASP應(yīng)用程序釋放到網(wǎng)上。文件正確地上載到服務(wù)器上,與應(yīng)用程序的鏈接也 工作良好。在慶祝勝利之前,你想在應(yīng)用程序的性能上運(yùn)行一些stats 以便發(fā)現(xiàn)它到底有多好。結(jié)果 卻發(fā)現(xiàn),本來在開發(fā)環(huán)境下工作得很好的應(yīng)用程序?qū)嶋H上運(yùn)行速度很慢。
對(duì)于那些使用Microsoft 軟件包時(shí)間不長(zhǎng)的人,DNA代表分布式InterNet 結(jié)構(gòu),是另一種非常熱門的 n層應(yīng)用程序結(jié)構(gòu)的首字母縮寫形式。Microsoft 致力于在Internet上展開的分布式應(yīng)用程序的開發(fā)。 基于這種思路,未來將流行小型的、無狀態(tài)的、組件化的應(yīng)用程序就不足為奇了。
上面是ASP用于n層環(huán)境的典型圖示。web類(IIS應(yīng)用程序)不是必需的,因?yàn)锳SP可以直接與表述層 或商業(yè)規(guī)則層組件對(duì)話。因?yàn)榇蠖鄶?shù)應(yīng)用程序都是用ASP單獨(dú)寫成的,所以一個(gè)情理中的問題就是:
為什么要將代碼轉(zhuǎn)入COM組件?
以我之見,ASP只是用于表述層代碼的,所以我選擇將商業(yè)規(guī)則邏輯或任何形式的數(shù)據(jù)存取 都裝入COM組件中。一般情況下,我從一開始就將應(yīng)用程序的代碼分成各個(gè)組件,但是通常你并不能選 擇所要處理的結(jié)構(gòu),所以代碼移植就是個(gè)實(shí)際問題。在一個(gè)n層應(yīng)用程序中,你必須盡力把非表述代碼 從ASP中盡快移走。
也許目前你并沒有在進(jìn)行n層編程,那么移植代碼的適當(dāng)時(shí)機(jī)就是運(yùn)行性能開始削弱時(shí)。通常,這是指 你的老板說“程序今天運(yùn)行有點(diǎn)慢”到“你被解雇了”之間這段時(shí)間。一旦用戶開始抱怨就晚了。
第二個(gè)使用移植代碼的方針是當(dāng)你有足夠的相似代碼(例如所有的數(shù)據(jù)存取)可以放在一個(gè)包含文件 (.inc) 中以保證一個(gè)COM組件時(shí)。多少個(gè)程序就足夠?這個(gè)問題提得好!編寫小型的MTS 組件時(shí),我 發(fā)現(xiàn)有一個(gè)程序就足夠創(chuàng)建一個(gè)COM組件了。但是只有一個(gè)程序的COM組件是很罕見的,所以對(duì)于這個(gè) 問題就需要進(jìn)行判斷。如果你寫的代碼足夠長(zhǎng),就開始進(jìn)行模式開發(fā)了。當(dāng)你遭遇到ASP的“陰暗面” 之后(aka COM組件)你就會(huì)感覺到其力量。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!