菜鳥對(duì)于VS2003使用的理解與看法
假期開始對(duì)于VS2003使用進(jìn)行學(xué)習(xí),首先碰到的就是環(huán)境的配置。以前學(xué)的Visual Studio2003,但并沒有怎么用??吹竭@個(gè)新東西,就怕了。所以有一個(gè)星期的時(shí)間基本是在用實(shí)踐著不知道TOM知道了,會(huì)不會(huì)有點(diǎn)郁悶。
1,不要在VS里直接復(fù)制ASPX文件,因?yàn)閺?fù)制的時(shí)候,兩個(gè)文件會(huì)使用同一個(gè)類文件,要復(fù)制的話,應(yīng)該建空文件,然后復(fù)制頁面和代碼
2,發(fā)在項(xiàng)目完工的時(shí)候,要想得到一個(gè)干凈的,僅有必需文件的項(xiàng)目,可以用復(fù)制項(xiàng)目的方法,注意的時(shí),包含在項(xiàng)目的文檔將會(huì)被編譯及復(fù)制,沒有包含的文檔不會(huì)被復(fù)制,復(fù)制前,需要建立一個(gè)目標(biāo)空站點(diǎn),復(fù)制的方法應(yīng)該選文件共享
3.VS.net中每一個(gè)文件的生成方法都有編譯,內(nèi)容,嵌入三種,對(duì)于CS文件,其生成方法應(yīng)該為編譯,對(duì)于ASPX文件,應(yīng)該為內(nèi)容,對(duì)于像想嵌入到DLL中的資源,如BMP圖像,ICO圖像,字符串等,應(yīng)設(shè)為嵌入
其他文件,均設(shè)為內(nèi)容
4.DATAREADER能解決的,請(qǐng)不要用DATASET
5.處理控件的分頁,特別是DATAGIRD時(shí),請(qǐng)盡量用自定義分頁,然后自己寫分頁方法,不要用DATAGRID的自動(dòng)分頁功能,自動(dòng)分頁的性能不好
6.有時(shí)候,定義了一個(gè)WEB項(xiàng)目,在定義中,定義了其URL,如http://localhost:8001/,但是后來項(xiàng)目的URL可能發(fā)生了變化,成了http://localhost:8009,這個(gè)時(shí)候,直接打開項(xiàng)目可能不會(huì)成功,可以找到項(xiàng)目源文件所在文件夾,用記事本打開后綴為.webinfo的文件,修改其中的URL指向即可
7.在VS.NET中,添加窗體,必然會(huì)添加相應(yīng)的CS類文件,有時(shí)候,希望直接在ASPX文件中以<;%%>;的古典形式來書寫代碼,這時(shí),千萬別直接刪除CS類文件,應(yīng)該先顯示所有文件,然后,打開對(duì)應(yīng)ASPX頁面,將頭部的<;%@ PAGE%>;指令中的CODEBEHIND以及inhert兩項(xiàng)刪除后再刪除CS文件
8.CS1607: Assembly generation -- Referenced assembly 'Assembly Name' is a localized satellite assembly錯(cuò)誤的處理原因是由于Assembly.cs中一項(xiàng)屬性:[assembly:AssemblyCultureAttribute("")]使用了不正確的值,正確的方法,是將其改為默認(rèn)值此文出處在于:http://weblogs.asp.net/jgaylord/archive/2003/08/22/25003.aspx
9.用ASP.NET寫WINDOWS事件日志的方法:(很多人在CSDN和MS的新聞組里問,我也問過,但無果,下面的方法是自己琢磨出來的)
a,打開注冊(cè)表:HK_L_M\SYSTEM\CURRENTControlSet\Services\EventLog\application建立一個(gè)項(xiàng)
項(xiàng)名就是EVENTSOURCE的名稱了(這一步,可以在做項(xiàng)目安裝文件時(shí)做進(jìn)安裝步驟里,就不用手工操作了)
b,在代碼中,使用EVENTLOG.WRITEENTRY來寫日志就可以了
原因呢是ASP.NET的運(yùn)行帳戶沒有權(quán)限來建立事件源,但是,卻有權(quán)限來讀寫事件日志了
10,排除和包含項(xiàng)目:對(duì)于不想編譯以后不想包含在最終版本里的文件,應(yīng)該將其排除,被排除的文件將不會(huì)參與編譯及項(xiàng)目復(fù)制,如果包含一個(gè)文件夾,將會(huì)包含其所有下級(jí)
11,默認(rèn)下,ASPX不允許POST含有HTML的內(nèi)容,將PAGE指令中加入ValidateRequest="false"即可
#t#想要引用別人的控件,可以直接將DLL拷入BIN文件夾,然后在工具箱中點(diǎn)擊添加刪除工具,流覽該文件,然后選中就可以放入工具箱了對(duì)于HTML標(biāo)簽,想要將其變?yōu)榉?wù)器控件,可以選中并點(diǎn)擊右鍵,選擇在服務(wù)器端運(yùn)行
,編寫客戶端事件處理腳本需要對(duì)HTML標(biāo)簽或者客戶端控件進(jìn)行命名,然后在代碼視圖中,選擇相應(yīng)的控件名稱及事件即可
WEB控件只要命名了,均可以在客戶端腳本中以其標(biāo)簽來引用常用的代碼可以直接拖入工具箱中作為一個(gè)工具引用.要引用用戶控件,可以直接拖動(dòng)用戶控件的ASCX文件至設(shè)計(jì)窗,VS會(huì)自動(dòng)為你添加REGISTER標(biāo)簽
要防止別人反編譯,可以用VS自帶的代碼混亂工具,將DLL添加,然后生成,生成的代碼主要是對(duì)一些方法和類的名稱混亂要把連接串放入WEB.CONFIG,VS2003使用,可以直接打開WEB.CONFIG文件,加入段,在其中加入
引用的時(shí)候,先導(dǎo)入名稱空間:system.configuration,使用configurationsettings.appSettings["dsn"]就可以引用了
非必要時(shí),VS2003使用不要用DataBinder.Eval,應(yīng)該用((DataRowView)(Container.DataItem))["列名"]的方式來訪問數(shù)據(jù),但使用這種方法,必須在ASPX頁面頂部加入<;%@ Import Namespace="System.Data" %>;
用戶控件也可以定義屬性和方法,但是,如果定義了屬性的話,控件的顯示部分,可能要用自定義的方法來完成,不能依賴于控件的PAGE_LOAD事件來處理,因?yàn)閷?duì)于PAGE_LOAD來說,這些自定義的屬性尚不可見