轉: ASP 指南

來源:互聯網
上載者:User
ASP 指南


簡介
“Active Server Page (ASP)”應用程式的成功常常取決於對體繫結構和設計這兩方面的取捨。考慮到 ASP 技術的範圍之廣和當前應用程式固有的複雜性,這種取捨是非常困難的。本文中,我將為您提供一些特定的指導方針,以助您成功開發基於 ASP 的應用程式。


--------------------------------------------------------------------------------
從過去成功的開發模式經驗中,我們總結出以下原則。
--------------------------------------------------------------------------------

我已將指導方針整理成一組開發原則。在評估解決方案和技術時,可以應用以下原則協助您做出決策。以下原則是我長期以來從成功的開發模式所得的經驗積累。

原則 1:採用標準方法
建立命名規範並使目錄結構標準化,可以協助您大大提高 ASP 應用程式的可讀性和可維護性。雖然目前尚無 ASP 應用程式的正式標準,許多開發人員還是建立了一些通用方式。在此,我將與您共用一些更為通用的方式。

因為 ASP 技術依靠指令碼引擎進行工作,而且指令碼具有類型不嚴密的天性,命名規範也很模糊。在類型非常嚴密的語言中,變數將按照它的實際類型進行聲明。在使用 ASP 技術時,通常按照處理變數的方式(而不是其實際資料類型)在 ASP 代碼中聲明變數。例如,在使用“Visual Basic(R) Scripting Edition (VBScript)”時,儘管所有的 VBScript 變數都是 Variant,你還是會將成功標誌聲明為 bSuccess(b 代表布爾型),而不是 vSuccess(v 代表 Variant)。

下表是一些通行的命名規範。

變數首碼:

首碼       使用的變數     變數樣本
b or bln   Boolean        bSuccess
c or cur   Currency       cAmount
d or dbl   Double         dblQuantity
dt or dat  Date and Time  dtDate
f or flt   Float          fRatio
l or lng   Long           lMilliseconds
i or int   Integer        iCounter
s or str   String         sName
a or arr   Array          aUsers()
o or obj   COM Object     oPipeline


資料庫物件的變數首碼:

首碼  使用的變數  變數樣本
cnn   Connection  cnnPubs
rst   Recordset   rstAuthors
cmd   Command     cmdEmployee
fld   Field       fldLastName


範圍及首碼的用法:

首碼           說明
g_           建立於 Global.asa。
m_           對於 ASP 頁或在 Include 檔案中是局部的。
(沒有首碼) 非靜態變數,對於過程來說首碼是局部的


Knowledge Base (KB) 中的一篇文章“Q110264 INFO: Microsoft Consulting Services Naming Conventions for Visual Basic”(英文)對命名規範提供了真知灼見。

儘可能採用目錄結構為您的各個應用程式組件提供始終如一的位置。您應用程式的實際目錄結構當然由您自己決定,但通常是將映像、文檔、include 檔案和組件分別放置在單獨的目錄中。以下是簡單 ASP 應用程式目錄結構樣本。

目錄結構樣本:

\SimpleAspApp
\Docs
\Images
\Includes
一個好的目錄結構允許您有選擇地應用 NTFS 許可權。您還可以從 ASP 應用程式內部使用相對路徑。例如,可以使用以下代碼,從位於 SimpleAspApp 目錄的 default.asp 頁,引用 Includes 目錄中的 include 檔案 top.asp:

./includes/top.asp
注意我的 include 檔案的副檔名是 .asp,而不是 .inc。這樣做是出於安全方面的考慮,而且使用 .asp 副檔名(而不是 .inc),還能夠在 Visual InterDev(R) 中使用彩色編碼。

有關結構化 ASP 應用程式的其他一些提示和技巧,請參閱文章“ASP Conventions”(英文)。

原則 2:設計為在服務下運行
ASP 將在服務下運行。設計 ASP 應用程式時,您馬上會面臨在傳統型應用程式中不會遇到的安全環境和線程問題。在案頭環境中,通常只處理作為互動式使用者啟動並執行單線程執行,而且有權訪問當前的案頭系統。在“Internet 資訊服務 (IIS)”中,類比不同使用者環境的多個客戶機線程調用您的應用程式,而且您的應用程式被限於“系統”案頭。

這對您來說意味著什嗎?請學習 IIS 的安全模式。還要提醒您:僅因為某些東西能在 Visual Basic IDE 下能夠正常運行,並不意味著它就能在 ASP 技術中安全運行。Visual Basic IDE 並沒有準確地類比運行時環境。常見的設計錯誤包括:在 ASP 技術中使用需要使用者介面的 .OCX 控制項,使用對線程來說不安全的組件,和使用要求特殊的使用者內容相關的組件。要避免的一個最簡單的問題,就是從應用程式中試圖訪問 HKEY_CURRENT_USER (HKCU) 登錄機碼(例如,不要調用 Visual Basic 的 GetSetting 和 SaveSetting 函數,它們都依賴於 HKCU)。同樣,不要出現需要使用者進行人機互動的訊息框或其他對話方塊。

以下文章是有關 ASP 技術中的安全和驗證問題的相當不錯的入門讀物:

“Authentication and Security for Internet Developers”(英文)
“Q172925 INFO: Security Issues with Objects in ASP and ISAPI Extensions”(英文)
原則 3:封裝商務邏輯
ASP 技術通過產生 HTML 輸出提供了表示服務。簡而言之,它會產生使用者介面。您需要將商務邏輯從 ASP 表示指令碼中分隔開來。即使您不使用 COM 組件將商務邏輯從 ASP 代碼中分隔開來,至少也要將商務邏輯分隔到函數和 include 檔案中,以提高可維護性、可讀性和可重用性。在需要排除故障和隔離問題時,您還能體會模組化設計方法的好處。

呼叫指令碼內部調用函數和方法,可避免代碼亂作一團,並能在 ASP 應用程式中添加結構。下面舉例說明從 ASP 代碼中,將邏輯分離到方法調用中:

  lt;% Main()
    MyBizMethod()
    ...

    Sub Main()
        GetData()
        DisplayData()
    End Sub
%>
在使用包含 ASP 功能的技術時,可以應用這一原則。下面舉一個使用 Visual Basic WebClass 時的例子,說明如何使用這一原則:

因為 Web



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。