ASP開發準則是什麼_應用技巧

來源:互聯網
上載者:User

雖然許多使用 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 頁面。這說明不能使對象偽稱它是唯一的使用者來獨佔系統。這樣做可能有意外的反應,例如,養成一個壞習慣:將Object Storage Service在 ASP 會話或者應用程式變數中。

安全環境:ASP 是由 Web 網站中的 Internet Information Services 5.0 執行的,有低、中、高三種隔離度。甚至這些 Web 網站可以有不同的安全設定、允許或拒絕匿名訪問、驗證客戶等等。所有這些設定產生了大量的方案,即不同的使用者帳戶最終用的是您的對象。

輕鬆增長:這不是技術問題,而是 Web 應用程式所提供設施的副效應。

傳統上,為傳統型應用程式增加使用者基,要求仔細計劃好向已知數量客戶機的轉出。ASP 已經改變了該過程。在啟動和運行後,ASP-Visual Basic 應用程式可以方便地開啟,供當地的或世界範圍的所有職員、所有業務夥伴和所有客戶使用。

可以用這種方式描述 — 擁有超連結的單個電子郵件可以使使用者基成十倍地增長。您的應用程式為此作好準備了嗎?唯一瞭解的方式是對 Web 網站進行強度測試,以獲得實際效能的預期值。

在 ASP 內應該如何使用 Visual Basic 對象?在頁面範圍內建立和取消您的對象。

也就是說,儘可能使 ASP 頁面無狀態,只在暫時狀態下依賴會話或應用程式變數。不要將Object Storage Service在會話或應用程式變數中。這將 ASP 線程鎖定到您的會話、取消所有延展性的預期值。也就是說,Web 服務器處理的使用者數不會超過幾十個。如果需要在會話或應用程式中儲存內容,請使之成為資料而不是對象。

還有可以遵守的許多其他準則。我們建議您閱讀 MSDN Voices 上 J. D. Meier 撰寫的專欄“Servin' it Up”。該專欄包括了大量的技術、實踐和技巧,有助於開發可擴充的、可靠的 ASP 和組件應用程式。

不要將引用儲存在會話或應用程式中的 VB 對象中

所有 Visual Basic 6.0 組件都是“單元線程”的,就是說它們都運行在 STA 單元中。這意味著如果線上程中建立對象,那麼對該對象的所有調用都必須用同一線程服務。許多線程(來自並發 Web 網站使用者)使用 STA 對象的同一執行個體,會引起一連串的活動,有可能成為應用程式中的瓶頸。

此外,在會話範圍記憶體儲用 Server.CreateObject 建立的 STA 對象,可以有效地將執行線程聯絡到目前使用者,從而將應用程式的最大並發使用者數限制到預設的 20xN(N = 處理器數量)。

操作方式

如果您按照我們的建議使對象無狀態,則不需要儲存引用以供客戶機複用,並在應用程式範圍記憶體儲它們。客戶機將能夠獨立建立、使用和取消它們自己的對象。這就減少了保持會話特有對象的需要,原因是它們不保留會話特有的狀態。

推薦的方式是使對象無狀態,它在需要時訪問資料庫或其他儲存區(例如 cookies 和 LDAP)。

如果需要使用會話或應用程式範圍的資料,請將資料,而不是處理資料的對象,儲存在此。您可以建立一個類,來封裝對所需值的處理。

學習 IIS 5.0 中的新內容

Internet Information Server 5.0 增加了許多新功能。這些改進均已寫入 J.D. Meier 的 MSDN 文章中:沿用 IIS 5.0 中的 ASP(英文)。

以上就是ASP的開發準則,希望大家多多瞭解這方面的內容,這樣對開發ASP有所協助哦

相關文章

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.