有關微軟新一代開發技術ASP+的說明
發表時間:2024-06-14 來源:明輝站整理相關軟件相關文章人氣:
[摘要]ASP+介紹 盡管ASP3.0墨跡未干,微軟已經在緊鑼密鼓地進行下一代服務器端編程技術的開發.在下面三部分中,我們將對這個被稱為 ASP+(名稱未定)的新產品做一粗略介紹.本文對象主要是那些經驗豐富的 ASP 開發者,為你決定是否移植到ASP+提供一些概念. ASP+被設計成與早期版本的ASP兼容...
ASP+介紹
盡管ASP3.0墨跡未干,微軟已經在緊鑼密鼓地進行下一代服務器端編程技術的開發.在下面三部分中,我們將對這個被稱為 ASP+(名稱未定)的新產品做一粗略介紹.本文對象主要是那些經驗豐富的 ASP 開發者,為你決定是否移植到ASP+提供一些概念.
ASP+被設計成與早期版本的ASP兼容,在環境要求方面僅有一些微小的差別.比較特別的一點是,ASP+可以與 Windows2000 上的 ASP 3.0同時安裝.這樣一來,你就可以在測試 ASP+ 的同時繼續提供已有的 ASP 服務,當一切準備就緒時再切換到 ASP+ 上,而不用另裝一臺測試服務器.
雖然可以簡單地將原來的 ASP 應用原封不動地轉換到 ASP+ 上,但這樣做從新版本上得到的好處并不多. ASP+ 有許多新特性,例如更容易使用,功能更強勁,運行效率更高等等.但要真正發揮作用,還需要了解 ASP+ 的工作方式.
在7月11-14日,于佛羅里達奧特蘭市舉行的微軟開發者大會2000上,微軟發布了 ASP+ 的 Preview 版本,讓開發者體驗用比以往更少的代碼來構筑動態網站.
ASP 的演變
ASP 的歷史其實并不長,1996年首發,然后迅速發展為 Windows 環境下的主流開發環境.此外,在其他平臺上也有第三方廠商開發的模擬環境,例如 ChilliASP.
動態服務器端 Web 編程
傳統上,動態頁面由服務器端可執行程序產生.標準的Web服務器界面稱為 CGI,基本原理是讓一個可執行程序取得從客戶端傳過來的信息,然后收集輸出信息生成返回頁面(HTML,script代碼,文字等),最后發送到客戶端.后來出現了例如 Perl 這樣的解釋器,程序員只需編寫一些宏代碼,就可以讓服務器解釋執行.
微軟 ISAPI 技術
微軟隨著IIS推出了另一個工具:ISAPI(Internet Server Application Programming Interface ),其不同于CGI的是ISAPI允許調用動態鏈接庫(DLL).許多微軟開發者都曾在 ISAPI 上開發過.另一個短命產品叫 dbWeb,提供一定程度的交互式數據查詢,過濾,格式化功能.
第二代開發工具叫IDC(the Internet Database Connector),開發環境稍有改善.不僅因為它比 dbWeb 速度更快,效率更高,而且因為它使用更加方便.IDC引入模板的概念,讓程序員更容易地在此基礎上構筑應用系統.每個頁面 IDC 要使用兩個文件.其中query文件包含簡單的宏語句,定義從數據庫中取得數據的方法.實際上就是SQL描述加配置信息.
{query文件 getuserlist.idc}
Datasource: GlobalExampleData
Username: examples
Password: secret
Template: getuserlist.htx
SQLStatement:
+ SELECT DISTINCT UserName
+ FROM Person ORDER BY UserName;
服務器執行這個文件獲取結果集,然后調用模板文件
{模板文件 getuserlist.htx}
...
<TABLE>
<TR>
<TD>User name:</TD>
<TD>
<SELECT NAME=selUserName>
<%BeginDetail%>
<OPTION VALUE="<%UserName%>"><%UserName%>
<%EndDetail%>
</SELECT>
</TD>
</TR>
</TABLE>
...
模板文件基本上就是一個普通的Web文件,包括HTML,文本和其他部分,但帶有一些括起來的代碼,這些代碼有基本語法,有簡單的編程結構,已經具有 ASP 的一些雛形.
ASP的版本
在1996年初,Denali(ASP的開發代號)發布了0.9beta版,在Web開發領域掀起了一場風暴.Web頁面的制作變得如此簡單而強大,附帶的一系列組件提供了更先進的功能,新的ADO(ActiveX Data Objects )技術.建立動態網頁如同兒戲.
最終的發行版ASP1.0是作為IIS3.0的組件一起發布的.與ADO技術的捆綁,無疑是 ASP 大受歡迎的最主要原因之一.程序員幾乎可以隨心所欲地通過script任意打開,存取,操作數據庫.
1998年,作為 WindowsNT4 Optoin Pack 的一部分,微軟推出了 ASP2.0.與 ASP1.0 的主要區別是 ASP2.0 支持外部組件的調用.這樣,ASP 應用程序可以在單獨的內存空間中運行組件.MTS(Microsoft Transaction Server )的引入將組件的運行也歸入事務處理過程.
Windows 2000, COM+ 和 ASP 3.0
今年初,Windows2000推出,包含了IIS5.0和ASP3.0.撇開一些細微的改進,最主要的區別在于COM的運行機制.在 Windows2000 中,微軟將核心COM運行庫結合了MTS,創建了COM+.使組件的使用更方便,整個運行平臺更穩定,伸縮性更強,效率更高.
IIS5.0在界面上的變化不大,但在底層,改為使用COM+組件服務,提供了更佳的組件運行環境,包括每個組件可以有自己單獨的進程.
ASP+和下一代Web服務框架
ASP+的下層結構與ASP的以前版本截然不同,盡管從程序員的開發界面上看似曾相識.ASP+是完完全全地基于組件,并且完全地模塊化.你所使用的每個頁面,部件,HTML元素都可能是一個單獨的運行組件.新的運行環境將自動管理,協調系統的運行.程序員可以按照微單元的開發風格來建立功能強大的應用系統.
面向對象的ASP+提供了對環境的擴展.開發者可以通過新增組件或繼承原組件基本類的方式,增加和擴展應用環境.
新一代Web Services框架
顯然,COM+構筑了操作系統運行的基本框架.作為一套全新的運行環境,ASP+為Widnows中各種類型的應用程序提供支持.這個框架也是微軟NGWS(Next Generation Web Services)的關鍵.一旦你安裝了這個框架,ASP+就會成為其中的一個部分.該框架同時支持其它服務器端編程技術,例如新的組件管理服務,建立可執行的應用和Windows服務,性能統計API,事件日志API等.
通過增加新的和增強分布式服務來擴充我們現在用于創建可重復使用的和可同時使用的COM+模塊。這些新的特征包括:
一套統一的和豐富的編程庫。
一套安全的和多語言的運行庫引擎。
簡單的創建、開發和維護。
增強分布式應用的適用范圍。
保護現有的軟件和培訓的投資。
下面我們將一步步來看這些特征。
什么是NGWS架構?
將ASP融入操作系統,這和早期版本的ASP有非常大的不同,它將作為操作系統的一個插件存在。一直到現在,ASP都是通過名為ASP。DLL的ISAPI動態鏈接庫來負責解釋運行的,或者可以作為有些新型的系統文件和ASP用戶組件數據包中的一部分來運行的。
然而,最值得我們注意的是該架構并不是為了ASP+而存在的,而是可以支持基于WINDOWS上的所有應用。以上圖表顯示了該架構是怎樣支持ASP+應用的。
NGWS架構提供了用來運行代碼執行引擎和一套用于建立application的面向對象的類和組件。他還充當了系統內核跟用戶界面中間的層。你也許會問:直接和系統或服務對話不是更方便嗎,為什么還要這個層呢?原因就是:我們能否最好地利用操作系統,采用一種標準方式來使開發更快、更簡單。在今天的競爭激烈的商業社會里,這是一個很有必要的需求。
為了達到這個目的,引進了許多特征的該架構。這些特征包括:自動內存碎片整理、豐富的可滿足那些大多數共同任務需要的可重復利用的對象庫、增強的安全性能。最后一點,對網絡應用特別是對INTERNET應用是非常重要的
共同的中間語言。
NGWS架構的最大貢獻就是提供了一個中立的運行環境。所有的代碼,不管任何語言的源代碼,無論是重新加載還是第一次執行,都將被自動編譯成一個中間的偽代碼(IL)。然后由該架構產生最終2進制代碼并執行。該編譯后的偽代碼將一直被使用直到該源代碼給改變。根據以上說明,所有緩沖版本的代碼將是無效和被棄用的。)
因此,無論你使用VB、C#、Perl或者其他任何可被支持的語言,直接代碼都可以同樣的編寫。并且緩沖二進制代碼可以具備和運行庫一樣的高效和兼容性。
**C#是一種微軟開發出的針對下一代WEB服務架構和ASP+的新型語言,他同時具備了C++的高效和VB,JSCRIPT的方便快捷。**
.該特性之一就是能夠從一種語言里調用另一種語言,甚至能夠繼承并修改另一種語言開發的對象。舉個例子,在VB的開發環境里,你可以繼承、添加屬性或方法、重載已有的方法和屬性一個由C#語言開發的對象。實際上在C#里我們就應用了該架構的許多新的特性。
因此,新型的架構引進了一個真正的多語言平臺來開發各種各樣的應用程序。該新型特征就是直接瞄準了當前多數的分布式應用領域的開發,特別是基于internet和inranet的應用開發。
WEB應用架構
(上個圖表中突出顯示的以下3個部分就構成了ASP+本身,也就是我們所感興趣的東西)
還有,這3個部分也指出了該結構的WEB APPLICATION的新的特征:
用戶界面
作為ASP+庫的一部分,將許多基于服務器端的控件以幫助用戶迅速方便地建立起WEB上的用戶界面我們可以為使用低版本瀏覽器的用戶輸出HTML 3。2代碼,然而我們可以利用高級版本的客戶端(如:IE4極其以上版本)中自帶的統一運行庫以獲得更好的交互性。可以使用現有控件用某種邏輯關系建立起其他的服務端的控件)
支持數據庫訪問
公共運行庫支持一種新的ADO,我們叫他ADO+。ADO+提供了完整的訪問數據庫的服務,無論該數據庫是遠程的還是本地,是何種格式的。ADO+提供了面向對象的訪問相關數據的設想,這樣開發者就能夠迅速快捷地訪問各種不同的數據源)
ADO+支持從XML獲取或輸入記錄集(或他們現在稱為數據庫)。于是我們將看到,對于在使用了ASP+的WEB服務中發布數據是非常有用的。
對分布式應用的兼容性
任何基于WEB應用的服務都有2個關鍵的要求:1是方便的操作平臺,2是可升級性以能夠處理大量用戶請求。NGWS提供了這些先進的特征:允許自動跳過錯誤,過載保護,重載和管理一次性使用的應用程序和組件。這些都防止了錯誤的代碼和內存漏洞給系統帶來崩潰的災難性后果。)
.除此之外,他還帶來了一些新的系統服務,包括:內存管理,內存碎片整理、保持和維護內存連續性,先進的安全性。這些特征還包括更可靠的內存分配和應用程序。
現有的軟件和開發上的投資
不用考慮操作系統和運行庫的改變帶來的后果,該技術很體貼地為你考慮了WINDOWS的版本,COM和ASP的兼容性。在大多數情況下,現有的應用程序,COM和COM+組件,ASP頁面及其他的腳本都可以在NGWS下很好地運行。你可以基于您的商業目的來隨時升級他們。)
(出處:熱點網絡)