• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    如何寫出優秀的ASP應用

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 252次 | 進入軟件測試論壇討論

    領測軟件測試網

    怎樣創建魯棒性、正確性、可維護性和性能俱佳的ASP應用程序?要做什么?不做什么?本文以提綱的形式,給出了主要的Check-Points(檢查點)。

    什么是ASP

    Active Server Page,簡稱ASP,是:

    . 連接網友界面(HTML)和商業邏輯(Business Logic);
    . 提供一致的、容易使用的、有狀態保持的、基于WEB的客戶端;
    . 為那些需要事務處理的WEB 應用提供應用程序環境。

    ASP不是

    . 實現商業邏輯(Business Logic)的地方;商業邏輯應該通過COM+、MTS或者數據庫來實現。

    ASP的使用者應該有下面的教訓

    . 開發應用程序,而不是開發一個一個的孤立ASP頁面;
    . 對輸入和輸出進行緩存;
    . 在發布之前要測試;
    . 選擇性能較好的部件;
    . 減少數據庫的存。壕彺孀儞Q后的結果;
    . 使用MSMQ來處理有時間延遲的工作;

    站點設計

    . 你的站點想提供什么?
    . 信息架構:80/20準則;
    . 站點導航;
    . 頁面布局;
    . 可用性;
    . 使用ALT和Title屬性;
    . 不使用圖片或者Image Map的導航;
    . 適合大多數低版本瀏覽器,考慮他們對ActiveX、RDS、XML、DHTML、Java Applet的支持狀況;
    . 屏幕分辨率和屏幕顏色數
    . 是否支持WebTV、PDA…?
    . 設置IMG的width和height屬性。
    . 非瀏覽器的訪問,如自動機器人(Spider);
    . 使用幀(Frame)?
    . 使用Cookies的個性化;
    . 避免壞連接;
    . 使用meta標簽;
    . 內容審核;
    . 內容檢索;
    . 結果反饋:用戶反饋和跟蹤;
    . 減少下載時間;

    三層、四層應用設計

    可讀性、可維護性

    . 使用注釋;
    . 在VBScript腳本中使用<%Optio. Explicit%>;
    . 使用字符串變量存儲SQL字符串:便于調試;
    . 使用Server.MapPath和相對路徑;
    . 使用ADODB.INC或者<!—metadata typelib=somelib file=somedll-->來引用常量,不要直接使用常量數值。
    . 指定ADO調用的缺省參數,避免出錯;
    . 使用庫或者部件來封裝代碼。

    正確的方法

    . 使用Server.URLEncode
    . 錯誤捕獲和處理

    國際化

    . 使用<%CodePage%>
    . 使用Session.CodePage
    . 在IIS5.0中,Response.write支持UTF8

    其他

    . 使用#include 重用代碼
    . 使用分頁技術

    站點安全

    . 客戶身份驗證
    . 輸入驗證
    . #include 文件不要使用.INC后綴,使用.ASP或者設置.INC的應用程序映射
    . 把MDB文件存放在非WEB路徑下;
    . 使用ADSI做安全管理

    Session和Application狀態

    Session的使用

    . 使用起來很方便但是很有問題;
    . HTTP是一個無狀態的協議;
    . 設計購物推車特別有用;
    . 不利于可伸縮性設計(Scalability);
    . 在不需要Session的頁面中使用<%EnableSessionState=false%>
    . 盡可能完全避免使用Session;
    . 在多個web服務器情況下不適合;
    . 某些部件使Session運行在單一線程模式,減少了吞吐量;
    . 消耗內存;
    . Session有超時的問題
    . 需要客戶端的瀏覽器打開cookie設置;
    . 不要在session中保存recordset,或者緩存connection對象;
    . 在global.asa不要使用空的Session_OnEnd;
    . 可選方案:
    . cookies
    . 直接狀態編碼:簡單、容易、不安全
    . 后端數據庫的ID作為狀態值
    . querystring 參數
    . 如amazon的url方式
    . 隱藏的表單

    Application變量

    . 共享變量
    . 不能持久保存
    . 多個web服務器時不行,除非只是只讀變量。

    緩存

    . 對靜態內容非常理想
    . 不要使用Response.Expires=0,使用負數:
    . Response.Expires=-10000;
    . Response.AddHeader “Pragma”,”no-cache”
    . Response.AddHeader “cache-control”,”no-store”
    . 服務器緩存
    . proxy緩存
    . 客戶端緩存

    部件

    . 性能
    . 伸縮性
    . 分離商務邏輯和頁面表現
    . 被ASP或其他環境重用
    . 事務處理
    . 類型安全
    . 存取操作系統特性
    . 保護知識產權
    . 在下列情況下使用Server.CreateObject:
    . MTS事務處理
    . 上下文安全性
    . ASP內部部件
    . OnStartPage、OnEndPage
    . 使用<Object RunAt=server>延遲對象初始化
    . 是否保存到Session或者Application變量中

    性能

    . Response緩沖:Response.Buffer=True
    . 關閉Connection并:set Connection=Nothing
    . 使用局部變量
    . 用<Object >代替Server.CreateObject
    . 不要使用Session和Application變量
    . 不要將COM對象存儲在Session或者Application變量中
    . 關閉腳本調試
    . 避免重復的字符串相加
    . 在費時的頁面頂端使用Response.IsClientConnected
    . 使用MSMQ
    . 不要在Session或者Application中存儲大數組
    . 不要ReDim 數組
    . 將集合類型的對象賦給臨時變量
    . 減小微處理器的最大線程數(運行regedt32,在HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\w3SVC\ASP\Parameters,增加ProcessorThreadMax,減小這個值,看看性能的變化;或者增大這個值。)
    . 設置AspScriptEngineCacheMax,使它等于ProcessorThreadMax*CPU個數。缺省的是30;(在系統路徑下:\system32\inetsrv/adminisamples下,鍵入adsutil.vbs,設置/w3svc/AspScriptEngineCacheMax);
    . 減少Session.Timeout;
    . 在MMC中,設置ASP應用程序緩沖為有效。

    把某些工作交給客戶端

    . CSS、DHTML
    . XML
    . RDS
    . Remote Scripting
    . Xmlhttp
    . 客戶端驗證
    . 減小文件大小
    . 盡可能避免https和SSL
    . 使用Response.End測試性能

    數據庫

    . 減少數據庫存取訪問;
    . 緩存變換后的結果;
    . 使用ODBC連接池和OLEDB資源池;
    . 使用系統DSN或者非DSN,不要使用DSN或者文件DSN;
    . 使ADO運行在雙線程模式(Both-threaded):makefre.bat;
    . 使用ADO的Field對象;
    . GetString或者GetRows比較快;
    . RDS和XML把負載嫁到客戶端;
    . 不要使用Select *,把字段寫出來;
    . 盡量使用SQ. Server 7,不要使用Access;
    . 使用SQ. Server的特性:存儲過程、Job、Join、sort、group
    . 使用SQ. Analysis,優化SQL的性能
    . 使用索引
    . 本地使用Name-pipes,遠程使用Sockets
    . 準確地指定Command Type

    IIS 5的新特性

    . 可靠的重新啟動
    . ASP性能提高
    . Server.Transfer比Server.Redirect更好
    . Server.Execute
    . Server.GetLastError


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>