asp+ 自1996年微軟推出ASP1.0以來,ASP+IIS的組合在與CGI+PHP+Apache的網路大戰中,並沒有取得“微軟式”的優勢,反而因
為安全性,執行效率,程式文法和跨平台等問題屢受指責和批評。
隨著微軟近期宣布.NET戰略,ASP也即將升級到“下一個版本”,稱之為ASP+。請注意這一引號,因為ASP+並不是目前ASP3.0
版本的自然過渡,而是提供了一種全新的伺服器端Web指令碼編程,編寫ASP+頁面與產生ASP頁面有著根本上的不同!首先ASP+是一種
編譯型指令碼語言,其次,幾乎可以用任何語言編寫ASP+程式由於有了眾多重大的進步,儘管目前ASP+還沒有進行公開Beta測試,卻
已經引起了全世界許多ASP使用者的關注和躍躍欲試!希望以下介紹,可以協助大家略窺ASP+技術的掠影。
1、ASP+的運行平台與程式設計語言
目前有支援個人使用者級的ASP+,將運行在Win9x上,包括Windows 98和Windows ME。儘管這不是一個Web伺服器環境,但將構
成一個本地開發平台,在其上可以構築適合本地啟動並執行Web應用。
不過,儘管可以在Win9x上使用ASP+技術,但推薦升級到Win2x。
在Win2k專業版上ASP+可高效運行,且無需伺服器,比Win9x版本更加強勁,並支援所有版本和全部功能。
ASP+可以運行在IIS5或者IIS4上。並且實現與你現有ASP系統並行運作,所以現有的ASP應用完全可以照常運行。
你可以用Visual Studio 6來編寫ASP+應用,當然也可以使用文字編輯器如notepad。也可以使用Visual Studio 7,而VS7帶
有針對ASP+的所見即所得 (WYSIWYG)的VB, C#(微軟最新的綜合了java和c++的最新程式設計語言,另文介紹)和C++的設計器和調試器。
ASP+雖然預設使用VB編程,但你可以設定其他程式設計語言。可以說,ASP+允許你用任何你喜歡的語言來進行頁面、應用和組件編
程!
目前支援ASP+編程的有VB、C#和JScript。今後幾個月內將有多達19種語言宣布支援ASP+。這些語言套件括:Cobol,Perl,
Python,Eiffel,SmallTalk,Lisp,Scheme,Objective Camel等。
從開發的角度來看,選擇一種最適於你的語言,並最終達到精通的地步是非常有意義的。可喜的是,ASP+提供了統一的運行和
調試環境,你可以在其中引用任何符合.NET架構的API,如EventLogs,PerfCounters,DataAccess等。只要你感到得心應手,效
率提高即可。
2、ASP+的新特性與功能a) ASP+全新的session會話管理機制
ASP+並不依賴SQL Server或者LDAP來進行session管理。並提供兩個新特性:
i)非Cookie型session:相對於用戶端記錄SessionID的Cookie,我們將Sessionidz轉移並封裝到了URL中,這樣即使瀏覽器
關閉了cookie支援,仍然可以使用session管理。這一過程是自動進行的,無需改動程式編碼,而且對靜態和動態內容都有效,你
可以關閉與一靜態html頁面,或者動態網頁面的連結,而session仍將保持有效。
ii)外部session狀態支援:可以將session的值儲存到外部的狀態儲存單元內,而不涉及ASP+現有的背景工作處理序。這樣設計使得
session狀態可以跨不同的背景工作處理序甚至多台機器,從而提供更好的可靠性和內在的web群集支援。
ASP+的狀態儲存是一專用的NT服務,其承載ASP+的編碼,同時支援將session資料直接儲存到SQL Server。後一選擇具有更好
的擴充性,但要求你購買SQL Server。
值得注意的是,以上兩種狀態選項是完全不相互交叉幹涉的。二者可以同時使用,也可以單獨使用。而且,外部狀態儲存是插
件型設計,這意味著第三方可以自行設計支援該儲存模型的外掛程式。
b)編譯器、緩衝機制和新的ADO+
ASP+的頁面可以使用符合NGWS(微軟新一代視窗結構)規範的編譯器進行編譯,這包括Visual Studio全線產品的編譯器,如
VB,VC++,Java和C#,也包括其他符合這一規範的編譯器,如符合NGWS運行模式的Perl編譯器。
編譯後的ASP+提供了資料緩衝模式。由於影響Web效能的最大延遲和瓶頸來自資料存取,採用這一機制,可以決定何時緩衝ASP
頁面上的資料,以及何時清除緩衝並重新執行資料查詢。
在ASP+中提供了ADO+,比ADO更容易使用。ADO+將資料視為n維對象,而在ADO中,資料表述是僅2維的行與列,因而ADO+處理
資料更加靈活高效。
在執行效率方面,ASP+的速度有大幅度提高。ASP+採用基於線程庫的新的多線程存取機制,可以進行非同步讀/寫操作,取代了
未完成線程的再利用,避免了擷取或更新狀態時可能造成的的背景工作處理序阻鎖,從而顯著提高了系統吞吐,這是以前的ASP所無法達到
的,因為ASP僅採用單線程存取線程庫,無法進行非同步作業。
3、ASP+與ASP的相容性和移植工具
微軟提供ASP到ASP+的應用移植軟體包。當某些應用需要改動來適應於ASP+時,可用來區分或者升級程式碼。幸運的是ASP+
可與現有的ASP並行不悖,因此你可以逐步將現有的ASP應用轉移到ASP+上來,加上移植工具包,升級過程輕而易舉。
ASP+進行中小範圍beta測試,公開beta測試的下載正在製作之中,大約9月初進行軟體發放。在剛剛舉行的專業開發人員大會
上,微軟向7000人散發了beta代碼,由此導致了全世界範圍的關注和討論。
隨著Web的日益流行和普及,Web伺服器端程式設計技術解決方案也層出不窮,競爭也日益激烈。單純的指令碼語言因其文法粗
略,解釋執行等先天不足而受到挑戰。物件導向,與伺服器整合,編譯型的技術方案將成為趨勢。