html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

.NET Framework境下的ASP作(2)(王国荣)_.NET教程_编程技术

[ ] 已经帮助:人解决问题

ADO+料控制元件


.NET Framework所提供的料存取物件ADO+(Active Data Object+),然有不少念ADO相似,但是全新的物件,什已有ADO了,要再提供ADO+呢?者得原因可能有:
  • 用XML做料交格式:由於XML已成路交料的,是不得不的。
  • 延伸料的:在ADO底下,任何料都必透OLD DB或ODBC存取,ADO+ 此一限制,任何程式都可以藉助ADO+ 所提供的物件自己成新料格式的提供者,因此延伸了可存取之料的。
  • 料控制元件的整合:以往我撰ASP,最不方便的地方是料容的示,了示料的容,大概必藉助ADO的Recordset物件逐取料,然後再逐其示出,程式冗,在ASP.NET中,我只要置好DataGrid、DataList或Repeater一料控制元件,然後ADO+ 行,DataGrid等控制元件就自示料的容。-5及-6就是分使用DataGrid及DataList控制元件示料容的。

-5 http://www.kjedu.com.tw/kjaspx/ch01/AspxPage.aspx
-6 http://www.kjedu.com.tw/kjaspx/ch01/DataList.aspx

Cache效能的提升


了提升行效能,ASP.NET先被成MSIL存在硬碟中,而下次再度被,就可以直接行被存下的MSIL(「行效能的疑」段落的明),除了此一化行效能的作之外,ASP.NET所提供的Cache(快取)功能亦可提升行效能。ASP.NET提供的Cache功能分成Output Cache及Data Cache。

Output Cache快取



-7 Output Cache快取

-7,所Output Cache,是在行MSIL之後,先果入Output Cache,然後再Output Cache下到器,而如果同一,ASP.NET先判是否有Output Cache存在,如果有,直接Output Cache下到器,不 .aspx及行MSIL的程,故能提升行效能。
要用Output Cache的方法十分,只要在 .aspx的最前面加上以下示即可:

<%@ OutputCache Duration="秒" %>

其中Duration表示Output Cache保留在系中的秒,例如:

<%@ OutputCache Duration="10" %>

果的Output Cache保留在系中10秒,而凡是在10秒此一,ASP.NET就直接Output Cache下器,省略了的作。

Data Cache料快取


除了整存於Output Cache之外,我也可以局部料存於Data Cache(以下Cache)。Cache的用法Application物件很似,例如:

' 料或物件存放在Application物件中
Application("key1") = "是字串"
Application("key2") = obj

' 料或物件存放在Data Cache中
Cache("key1") = "是字串"
Cache("key2") = obj

不者必明的是Data Cache所用的可能被放(系使用的情),所以每我要取Data Cache,要先判Cache("key") 是否等於Nothing,若不等於Nothing,表示Cache("key") 存在於系中,方可取。

提供工具


在撰程式的程中,免有生,如何除任何一程式,都是很重要而且是可避免的工作。ASP的工具十分欠缺,了改善此一缺失,ASP.NET提供以下方法:
  • 定config.web的customerrors
  • 使用追(Trace)功能
  • 工具程式(Debugger)

定config.web的customerrors


生而法一步或行,ASP.NET示如-8之面,此一面只告我程式有,至於哪一行程式,未示。了ASP.NET示一步的息,可在config.web案中增加customerrors的定,如下:

<configuration>
<customerrors mode="off"/>
</configuration>

果之後可看到更的指示面(如-9)
-8 ASP.NET或行的面 (略)
-9 ASP.NET或行的面(息)(略)

使用Trace追功能


所Trace功能是在的最前面加上以下示:

<%@ Page Trace="True" %>

果被之後,外示一些,如-10,而些有助於我研判程式的,做的考。
-10 Trace功能用之後的(略)
在-10面中,除了正常示的容之外,外示的可分成以下段:
  • Request Details:透Request方式向器所取之料。
  • Trace Information:事件生或程式行的程。
  • Control Tree:所使用之控制元件及控制元件之的。
  • Cookies Collection:所使用的Cookie。
  • Headers Collection:器的表。
  • Server Variables:Server,也就是我可以透Request. ServerVariables() 所取的。

除了ASP.NET自示以上息之外,我也可以程式行程中的料示在Trace Information段中,方法是呼叫Trace.Write或Trace.Warn,例如:

Trace.Write("UploadFile()", "入UploadFile事件程序")
Trace.Warn ("UploadFile()", "入For圈")

果可息出到Trace Information段,供我做程式的考。

工具程式(Debugger)


ASP.NET提供的Debugger程式很像VB的操作介面,可以我定中、逐步行程式、察及堆的情…等,是的利器。使用Debugger之前,在config.web案中增加以下的定:

<compilation debugmode="true"/>

接下C:/Program Files/Microsoft.Net/FrameworkSDK/GuiDebug目的DbgUrt.exe,然後利用以下步即可 .aspx:
1. 取DbgUrt.exe功能表的「Debug -> Processes」,待出「Processes」交窗,核取「Show system processes」及「Show processes in all sessions」,然後在「Available processes」位的最下面找到xspwp.exe(:如果有看到xspwp.exe,先器任意 .aspx,然後再按下「Refresh」),取之後,再按下「Attach」,程如-11。
-11 DbgUrt.exe的「Process」交窗(略)
2. 接下出「Attach to process」交窗(如-12),按下「OK」。
-12 Attach to process 交窗(略)
3. 接下回到步1的「Processes」交窗,按下「Close」。
4. 取DbgUrt.exe功能表的「File -> Open -> File」取您想的 .aspx案,在此您可以取多想要的案。

物件的


由於ASP.NET以VB7程式言,所以VB7所有物件向的功能也都能在ASP.NET作中,而除了程式言所提供物件向功能之外,ASP.NET可以一用的物件 -- pagelet(小配件)。
何Pagelet(配件)?以生活中的例看,我耶,往往些小配件,然後它置在喜的位置,Pagelet的念也是相似的,某些常用的配件,我可以它Pagelet,其他使用,更的例子,例如我中置一Label控制元件及一TextBox控制元件,其作用就是在中插入了一Label型的Pagelet及一TextBox型的Pagelet。
本文者先展示一的Pagelet,此一Pagelet命名Footer.ascx,如下:(:Pagelet以 .ascx 副名)

<Div align="right">
<Hr>
<A href="http://www.kj.com.tw" target="_top">
Visual Basic 找王</A>
</Div>

Footer.ascx的容,您其中只有HTML示,完全有ASP.NET的程式,的 .ascx案也能成Pagelet?答案是肯定的,最的Pagelet就是只含有HTML示的 .ascx案,接著我看看使用Pagelet的UseFoot.aspx:

<%@ Register TagPrefix="kj" TagName="Footer" Src="Footer.ascx" %>
<Html>
<Body BgColor="White">
<H3>使用最的 Pagelet -- UseFoot.aspx<HR></H3>
<Blockquote>
Footer.ascx 的容,您其中只有 HTML 示,完全有
ASP+ 的程式,的 .ascx 案也能成 Pagelet ?答案是肯定
的,最的 Pagelet 就是只含有 HTML 示的 .ascx 案。
</Blockquote>
<kj:Footer id="Footer1" runat="server"/>
</Body>
</Html>

的果如-13。

-13 UseFoot.aspx的果

除了只含有HTML示最的Pagelet之外,Pagelet也可以含有性及方法,於含有性及方法的Pagelet,其用法Server控制元件完全相同。我得 .NET Framework 所提供的Server控制元件不用,可以利用作Pagelet的功能建立我自己的Server控制元件。

Web Services


不像ASP只能存取本料,ASP.NET提供了Web Services功能我跨越路存取端的源。在VB6代,微表了RDS(Remote Data Service),也可以我存取路上另一部Server的料,但它仍有大缺:(1) 一般使用者上手不易 (2) 法跨越平台:使用RDS跨越路存取料,不管Server端或Client端,都必使用Windows作系。
Web Services(Web服)改良了RDS的缺,除了得比容易上手之外,Web Services用XML料的格式,使得料得以跨越平台,而更重要的是,ASP.NET也可以享用服,也可以提供服。
在作模式上,者例明,-14,假器存取Server A的,但Server A的料自ServerX,那Server X要提供一存取料之Web Service,另一方面Server A要建立Web料代理程式,然後透Web料代理程式Web Service的料交(用XML格式),而到存取Server X料的目的。

-14 存取Web料(跨越路的料)


也去三年子商真的被高估了,但作技已成人必的知。然自微表IIS以,ASP一直被低估了,所以只是IIS的附品,在很高ASP.NET於IIS之中立出,而且功能VB、C#…等程式言看,相信未的ASP作入另一新的世。
GQwHTML5中文学习网 - HTML5先行者学习网
GQwHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助