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