[1] ASP.NET AJAX in .NET 3.5 and VS 2008 (.NET 3.5和VS 2008中的ASP.NET AJAX)
隨著VS 2008和.NET 3.5 Beta 2版本的發(fā)布,ASP.NET AJAX也被集成到了這個(gè)最新版本的框架/IDE中。相應(yīng)地版本號(hào)也變成了ASP.NET AJAX 3.5(質(zhì)的飛躍阿,呵呵)。
Scott在這篇Blog中指出了3.5版本中如下的幾點(diǎn)改進(jìn)之處:
The version of ASP.NET AJAX that ships with .NET 3.5 has a number ofnice improvements to it - including support for using UpdatePanels withWebParts, support for WCF based JSON end-points, support for using theASP.NET Profile, Role and Login Application Services using JavaScript,and a number of bug fixes and performance improvements.
對(duì)于“UpdatePanels with WebParts”和“support for WCF based JSON end-points”這兩條,看來(lái)還是非常引人入勝的。至于其他的種種……個(gè)人感覺(jué)并無(wú)太大的新意。
除此之外,Scott還介紹了一些ASP.NET AJAX 3.5相關(guān)的信息,主要都是有關(guān)版本共存/協(xié)調(diào)之類問(wèn)題的。感興趣的朋友可以看一下。另外,ASP.NET AJAX Control Toolkit也隨即更新到了3.5版本:
每個(gè)人都在抱怨永遠(yuǎn)追不上微軟的腳步,不過(guò)微軟似乎并沒(méi)有聽進(jìn)去什么……腳步反倒越來(lái)越快了……
[2] Upgrading ASP.NET AJAX 1.0 Websites and Web Applications to .NET Framework 3.5 (將應(yīng)用ASP.NET AJAX 1.0的Web站點(diǎn)和Web應(yīng)用程序升級(jí)到.NET Framework 3.5)
與上一篇Scott文章中的“高瞻遠(yuǎn)矚”不同,本文則更加貼合開發(fā)人員的實(shí)際工作。從標(biāo)題可以看得出來(lái),這篇文章介紹了遷移現(xiàn)有ASP.NETAJAX 1.0應(yīng)用程序到最新的.NET3.5上面的方法。遷移的方法共分三步,并不是非常困難,且這篇文章圖文并茂,每一步驟都足夠詳細(xì),顯得非常具有實(shí)用性。
[3] August 2nd Links: ASP.NET AJAX and the ASP.NET AJAX Control Toolkit (8月2號(hào)鏈接:ASP.NET AJAX和ASP.NET AJAX Control Toolkit)
Scott的又一個(gè)鏈接列表,收集了一大批最新的ASP.NET AJAX和ASP.NET AJAX Control Toolkit資源,有文章、視頻、圖書等等:
不過(guò)看了下第4條中的視頻,覺(jué)得還是比較初級(jí)應(yīng)用,沒(méi)有什么高級(jí)的內(nèi)容(或許視頻本身就不適合講述高級(jí)內(nèi)容):
[4] How To: Access Underlying Data of the ObjectDataSource (如何在ObjectDataSource控件中訪問(wèn)到實(shí)際的數(shù)據(jù))
我們都知道,引入DataSource的目的就是為了讓我們開發(fā)者可以直接將UI控件與數(shù)據(jù)綁定起來(lái),不用手工書寫一行代碼。但是往往某些時(shí)候我們需要對(duì)DataSource中包含的實(shí)際數(shù)據(jù)進(jìn)行訪問(wèn)(雖然這種需求一般都是DataSource的設(shè)計(jì)不太好造成的)。
這篇文章就介紹了在ObjectDataSource控件中訪問(wèn)實(shí)際數(shù)據(jù)的方法,應(yīng)該屬于一個(gè)小技巧吧。只要如下簡(jiǎn)單的代碼即可:
protected void ObjectDataSource1_Selected
(object sender, ObjectDataSourceStatusEventArgs e)
{
DataSet underlyingDataSet = e.ReturnValue as DataSet;
if (underlyingDataSet!=null)
{
// use the underlyDataSet...
}
}
[5] VS 2008 JavaScript Intellisense for Silverlight (VS 2008中對(duì)Silverlight的JavaScript智能感知支持)
目前版本的Silverlight還是要緊緊依靠JavaScript,不過(guò)好在VS 2008已經(jīng)對(duì)JavaScript智能感知提供了支持,讓開發(fā)人員省力不少。借助于這個(gè)功能,Justin-Josef Angel發(fā)起了一個(gè)Silverlight 1.0 JavaScript Intellisense CodePlex Project項(xiàng)目,讓Silverlight開發(fā)人員在書寫JavaScript時(shí)也能夠享受到這個(gè)巨大的便利。
使用方法非常簡(jiǎn)單,首先引入下載的這個(gè)JavaScript文件:
然后——大功告成:
[6] Fiddler2 - JavaScript Beautifier Plugin (Fiddler 2的JavaScript代碼美化插件)
在調(diào)試Ajax應(yīng)用程序時(shí),F(xiàn)iddler自然是我們非常重要的一個(gè)武器。不過(guò)其對(duì)JavaScript也是按照純文本的格式對(duì)待,并沒(méi)有任何形式的格式化。例如,我們會(huì)在Response或者Request窗口中看到下面的這類代碼:
JsonRequestBuilder=function(b,c){var dynamicScript=new
DynamicScript(b,c);JsonRequest=function(g,h,j,k,l,b,c){var
responseFunc=h;var callback=k;this.Callback=function(j,m){var
readyState=m;var responseObject=null;try{if(m=="loaded"||m==
"complete"){responseObject=eval(responseFunc+"();");eval
("window."+responseFunc+" = null;");}}catch(e){readyState=
"error";}finally{callbac(responseObject,j,readyState);}};this.
rawRequest=dynamicScript.CreateReques(g,j,this.Callback,l,b,c);
this.Execute=function(){this.rawRequest.Execute();};this.
Abort=function(){this.rawRequest.Abort();};};function n
// [...]
通過(guò)這款免費(fèi)的插件,上述JavaScript將被格式化為如下的樣式:
怎么樣,還不錯(cuò)吧?
[7] Post Production Debugging for ASP.NET Applications – Part 1 (ASP.NET應(yīng)用程序的部署后調(diào)試——第一部分)
所謂“部署后調(diào)試”,英文原文為“Post Production Debugging”,我也不知道應(yīng)該如何翻譯才好……
但是這篇文章的內(nèi)容卻非常有深度——開發(fā)過(guò)程中的調(diào)試方法盡人皆知,不過(guò)要是程序已經(jīng)部署到了服務(wù)器之上,我們又應(yīng)該如何確保其能夠穩(wěn)定運(yùn)行呢?如果出現(xiàn)了問(wèn)題,那么應(yīng)該如何確定問(wèn)題的原因呢?
這篇文章或許能夠回答一些你的此類疑問(wèn)。
[8] ListView and DataPager in ASP.NET 3.5 (ASP.NET 3.5中的ListView和DataPager控件)
ASP.NET 3.5已經(jīng)不再遙遠(yuǎn)。大牛Rick Strahl已經(jīng)給出了其中兩個(gè)新控件的介紹。
大牛說(shuō),ListView是一個(gè)介于DataGrid和Repeater之間的控件,既提供了DataGrid這樣豐富的功能,同時(shí)還允許我們非常容易地控制最終呈現(xiàn)出來(lái)的HTML——這一點(diǎn)和Repeater一樣。這是一段示例代碼:
<asp:ListView ID="lvItems" runat="server"
DataSourceID="Data"
ItemContainerID="layoutTemplate"
DataKeyNames="Pk" >
<Layouttemplate>
<div id="layoutTemplate" runat="server" />
</Layouttemplate>
<ItemTemplate>
<div class="itemdisplay">
<b><%# Eval("Sku") %></b><br />
<%# Eval("Abstract") %></div>
</ItemTemplate>
</asp:ListView>
ListView提供了豐富的模板:
而ListView卻并沒(méi)有提供分頁(yè)的支持,因此DataPager則作為一個(gè)外部控件與ListView配合工作,共同為數(shù)據(jù)提供分頁(yè)功能。這是一段示例代碼:
<div class="blockheader" style="padding:10px;text-align: right;">
<asp:DataPager ID="Pager" runat="server"
PagedControlID="lvItems" PageSize="5" >
<Fields>
<asp:numericpagerfield ButtonCount="10" NextPageText="..."
PreviousPageText="..." />
<asp:nextpreviouspagerfield FirstPageText="First" LastPageText="Last"
NextPageText="Next" PreviousPageText="Previous" />
</Fields>
</asp:DataPager>
</div>
聯(lián)系客服