雖然許多使用 asp 的 web 站點根本就不用元件,但在這篇文章中假定 asp 是 internet 客戶機和元件之間的橋梁。
asp 和元件之間的劃分服務
asp 最常用於在伺服器上建立供客戶機使用的 html 或 xml 檔案,因此我們主要討論這種使用方案。這就引出了乙個常見的問題,如果 asp 頁面在伺服器上,那麼它們是否屬於業務層的一部分呢?在元件世界中,答案通常是否。雖然 asp 確實在伺服器上執行,而且可能與應用程式伺服器在同乙個空間,但是這不能使它成為業務邏輯的一部分。
隨著使用者介面工具的發展或者隨著啟用更多的業務對業務方案,擁有這種明確的區別將獲得巨大的回報。
話說到此,讓我們來看一些最重要的業務層和表示層劃分準則:
令 ui **與業務邏輯分離。這包括編寫與 ui 耦合的**,例如使用 asp 內部元件的 mts 物件,讓它與業務邏輯**分離,如同在不同的 dll 中。
將事務與 asp 頁面分離。事務 asp 在某些情況下非常好,但是元件和多層應用程式會改變這種情況。元件不應該依賴由客戶機層來管理它們的事務和業務邏輯語義。
將表示元件(使用請求和響應的元件)與 web 伺服器放在相同的機器和/或程序中。如果將使用 asp 內部元件物件的物件放在遠端機器上,那麼對內部元件的所有呼叫將以**形式發生。呼叫 iis 客戶機的是 com+ 伺服器,它顯著降低了效能並使安全配置複雜化。可以將這些調整物件放在標記為「庫啟用」的 com+ 應用程式中。
asp 存在於伺服器上,因此 asp 頁面必須符合資源共享規則,並且記住可伸縮性。請看下面的詳細內容:
在「會話」中,管理應盡量避免使用者特定的狀態。
保持 asp 無狀態,並在可能的情況下允許資源池。
操作方式
在評價某個**段是否屬於業務邏輯或者表示層時,請問一下自己,「如果我必須用按鍵式**應用程式代替我的 asp 頁面,那麼該**是否還有用?」如果答案為「是」,那麼可以嘗試將它劃分為業務邏輯**或者使用者介面幫助器**。
如果改變了客戶機後該**程式設計客棧不能用,或者如果它是構造使用者介面的幫助器,則該**屬於表示服務層。它在 asp 頁面中,或在使用 asp 內部元件的元件中。它不屬於業務物件元件。
理解桌面與 asp 客戶機的區別
asp 是元件的特殊客戶機,不同於桌面上的傳統單執行緒 win32 應用程式。主要區別概括如下。
執行緒管理:asp 是多執行緒客戶機。這意味著可以有許多併發活動一起執行,也許在同一時刻處理不同的 asp 頁面。這說明不能使物件偽稱它是唯一的使用者來獨佔系統。這樣做可能有意外的反應,例如,養成乙個壞習慣:將物件儲存在 asp 會話或者應用程式變數中。
安全環境:asp 是由 web 站點中的 internet information services 5.0 執行的,有低、中、高三種隔離度。甚至這些 web 站點可以有不同的安全設定、允許或拒絕匿名訪問、驗證客戶等等。所有這些設定產生了大量的方案,即不同的使用者帳戶最終用的是您的物件。
輕鬆增長:這不是技術問題,而是 web 應用程式所提供設施的副效應。
傳統上,為桌面應用程式增加使用者基,要求仔細計畫好向已知數量客戶機的轉出。asp 已經改變了該過程。在啟動和執行後,asp-visual basic 應用程式可以方便地開啟,供當地的或世界範圍的所有職員、所有業務夥伴和所有客戶使用。
可以用這種方式描述 — 擁有超連結的單個電子郵件可以使使用者基成十倍地增長。您的應用程式為此作好準備了嗎?唯一了解的方式是對 web 站點進行強度測試,以獲得實際效能的預期值。
在 asp 內應該如何使用 visual basic 物件?在頁面範圍內建立和取消您的物件。
也就是說,盡可能使 asp 頁面無狀態,只在暫時狀態下依賴會話或應用程式變數。不要將物件儲存在會話或應用程式變數中。這將 asp 執行緒鎖定到您的會話、取消所有可伸縮性的預期值。也就是說,web 伺服器處理的使用者數不會超過幾十個。如果需要在會話或應用程式中儲存內容,請使之成為資料而不是物件。
還有可以遵守的許多其他準則。我們建議您閱讀 msdn voices 上 j. d. meier 撰寫的專欄「servin' it up」。該專欄包括了大量的技術、實踐和技巧,有助於開發可擴充套件的、可靠的 asp 和元件應用程式。
不要將引用儲存在會話或應用程式中的 vb 物件中
所有 visual basic 6.0 元件都是「單元執行緒」的,就是說它們都執行在 sta 單元中。這意味著如果**程中建立對程式設計客棧象,那麼對該物件的所有呼叫都必須用同一執行緒服務。許多線www.cppcns.com程(來自併發 web 站點使用者)使用 sta 物件的同一例項,會引起一連串的活動,有可能程式設計客棧成為應用程式中的瓶頸。
此外,在會話範圍內儲存用 server.createobject 建立的 sta 物件,可以有效地將執行執行緒聯絡到當前使用者,從而將應用程式的最大併發使用者數限制到預設的 20xn(n = 處理器數量)。
操作方式
如果您按照我們的建議使物件無狀態,則不需要儲存引用以供客戶機復用,並在應用程式範圍內儲存它們。客戶機將能夠獨立建立、使用和取消它們自己的物件。這就減少了保持會話特有物件的需要,原因是它們不保留會話特有的狀態。
推薦的方式是使物件無狀態,它在需要時訪問資料庫或其他儲存區(例如 cookies 和 ldap)。
如果需要使用會話或應用程式範圍的資料,請將數www.cppcns.com據,而不是處理資料的物件,儲存在此。您可以建立乙個類,來封裝對所需值的處理。
學習 iis 5.0 中的新內容
以上就是asp的開發準則,希望大家多多了解這方面的內容,這樣對開發asp有所幫助哦
本文標題: asp開發準則是什麼
本文位址:
robots規則是什麼?
搜尋引擎的原理是通過一種爬蟲 程式,自動蒐集網際網路上的網頁並獲取相關資訊。而鑑於網路安全與隱私的考慮,每個 都會設定自己的 協議,來明示搜尋引擎,哪些內容是願意和允許被搜尋引擎收錄的,哪些則不允許。而搜尋引擎則會按照 協議給與自己的許可權來進行抓取。協議已經成為所有搜尋引擎必須遵守的國際慣例。這就...
程式設計的首要原則是什麼?
半年前,joelonsoftware和codinghorror合搞的stackoverflow.com剛上線不久,我興沖沖地跑過去扔了 乙個問題 你們認為程式設計的首要原則是什麼?作為我的學習原則的乙個實踐 8.學習一項知識,必須問自己三個重要問題 1.它的本質是什麼。2.它的第一原則是什麼。3.它...
單一職責原則是什麼?
單一職責原則是物件導向設計原則中的一條 舉個簡單的例子,假設,在工廠中,一款產品從無到有需要經過10種機器。我們是讓10個人,每個人拿著原材料從第一台操作到第十臺比較快,還是每個機器有乙個單獨的人專門處理這台機器比較快。答案是顯而易見的。因此工廠在實現分工後,效率有了大幅度的提高。這就是企業管理中的...