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