top
Loading...
突破性的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+的所見即所得的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或者L 來進行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服務器端程序設計技術解決方案也層出不窮,競爭也日益激烈。單純的腳本語言因其語法粗略,解釋執行等先天不足而受到挑戰。面向對象,與服務器集成,編譯型的技術方案將成為趨勢。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗