學了一段時間的Asp.Net 2.0后,心里一些想法
發(fā)表時間:2024-01-22 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]作者:treeroot http://blog.csdn.net/tommax/ 我從.net beta2的時候就開始學了,正式使用.net做開發(fā)使用的是.net1.1版。就是說,.net1.0版出來的時候絕大多數(shù)人都是處在學習階段,原因嘛,當然是許多人沒有定下來是否學習.net,還有.n...
作者:treeroot http://blog.csdn.net/tommax/
我從.net beta2的時候就開始學了,正式使用.net做開發(fā)使用的是.net1.1版。就是說,.net1.0版出來的時候絕大多數(shù)人都是處在學習階段,原因嘛,當然是許多人沒有定下來是否學習.net,還有.net入門的確比以前的Delphi和VB6要難一些,而且.net1.0剛推出,出于對穩(wěn)定性和功能上的考慮,我覺得大家基本上是拿.net 1.0當作學習工具,拿 vs.net 2002當作熟悉微軟新一代開發(fā)環(huán)境的練手用了。
而.net 1.1出來就不同了,更多的人開始學起了.net,從Java那邊也跑來不少人,畢竟.net的配置比Java簡單太多了,而且足夠的中文文檔也降低了不少入門的門檻。當然,隨著大家學習的深入,一些重要的組件可以使用,大家手中收集保存的代碼也逐漸增多,如FTP,Mail,壓縮解壓縮,各種控件,還有費盡心機寫出來的特定工作的解決方案。當然,這些軟件大部分都運行在.net1.1下。
現(xiàn)在,微軟推出了.net 2.0 beta1,既然已經(jīng)出了,那么離正式版也不會太遠了,當然,.Net 2.0 SDK正式版出來的時候肯定會有中文的SDK?隙ń鉀Q了在.Net 1.1 已經(jīng)有的問題和添加了許多功能。
如令許多人撓頭的vs2003 Web項目調(diào)試問題,和當操作Session/Cookie后使用Response.Redirect()沒有反應(yīng)問題等。
這樣,.net 2.0 (我專注于asp.net 2.0)就與.net 1.1 兼容性非常小,我已經(jīng)發(fā)現(xiàn),在1.1內(nèi)建立自定義Web服務(wù)器控件防止多個同樣控件注冊客戶端腳本的
System.Web.UI.Page.IsClientScriptBlockRegistered()
System.Web.UI.Page.IsStartupScriptRegistered()
System.Web.UI.Page.RegisterClientScriptBlock()
System.Web.UI.Page.RegisterRequiresPostBack()
這四種方法,已經(jīng)被System.ObsoleteAttribute這個特性給聲明成已經(jīng)被廢棄的方法。就是說在asp.net 2.0 中,無法使用任何客戶端的腳本注冊方法,看樣子只能使用Response.Write()來自己手工寫了。這就是說,沒有辦法在1.1下寫的代碼在2.0下重新編譯就變成2.0的組件。
好了,上面說了一大堆,反正說明了.net 1.1 與 .net 2.0的兼容性很小。但是.net運行庫有個好處,就是并存執(zhí)行。在asp.net 2.0中引用1.1的程序集,這個程序集是否是在.net 1.1的CLR控制下運行呢,還是在.net 2.0下?
如果1.1的程序集在1.1的CLR執(zhí)行。那么我自己寫的許多組件,許多down的組件,基本都是在1.1下環(huán)境運行的,如果我使用了2.0,這些組件不可能扔掉。那么使用這些組件,類的調(diào)用和參數(shù)的傳遞是否可以正常運行?尤其是參數(shù),我最擔心。傳遞string,int這樣的基本類型應(yīng)該沒有問題,但是參數(shù)如果是自己寫的類呢,把1.1下寫的類實例當作返回值返回給2.0下的代碼,能行嗎?我比較懷疑。