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