ASP.NET 2.0 讀書筆記 IDE部分

來源:互聯網
上載者:User
今日讀書筆記(未整理):
1.控制IIS使用1.1還是2.0的工具名字叫做MMC Snapin一剛。同時可以選擇“編輯配置”,其實即使對Web.config的可視化設定。
2.aspnet_regiis命令重提,-i參數還是很重要的,再有就是對web.config和app.config敏感資訊進行加密。
3.aspnet_regsql將帳號註冊放入統一SQLServer中,參數配製用的時候再查。
4.ASP.NET 1.1和2.0比較:web.config中欄位的變化,同時讀取該值的方法也變了:
   ASP.NET 1.1機制:兩種讀法    using System.Configuration;
    
    //方法1 
    AppSettingsReader configurationAppSettings = new AppSettingsReader();
    string connectionString = (string)(configurationAppSettings.GetValue("ConnectionString", typeof(string)));

    //方法2   
    string connectionString = ConfigurationSettings.AppSettings["ConnectionString"];

   ASP.NET 2.0機制,廢棄了ConfigurationSettings:            /**//*針對同一web.config,分別讀取appSettings或connectionStrings
            <configuration>
                <appSettings>
                    <add key="ConnectionString1" value="連接字串"/>
                </appSettings>

                <connectionStrings>
                    <add name="ConnectionString2" connectionString="連接字串2" providerName="System.Data.SqlClient" />
                </connectionStrings>
            </configuration>
             */

            //方法1
            string connectionString1 = ConfigurationManager.AppSettings["ConnectionString1"];

            //方法2
            string connectionString2 = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString;

5.web.config的加解密機制,特別針對資料庫連接字串,同樣適用App.config:
假定項目名稱"MyConfiguration",則
   加密:aspnet_regiis -pe "加密欄位" -app "/MyConfiguration" -prov "具體加密方式的Provider"
   解密:aspnet_regiis -pd "加密欄位" -app "/MyConfiguration"
記住,程式員讀取欄位時不需要額外解密,系統在你讀取前會解密。
另一種加密機制是在程式裡使用API。

6.ASP.NET特殊檔案夾
App_Browsers
App_Code
App_Data
App_GlobalResources
App_Themes
這些檔案夾下的程式,只允許Application訪問,不支援Request(無法存取)。
每個檔案夾都回產生一個dll。

7.程式碼片段 Code Snippets
   這是一個好東西,會使我變懶的,連for迴圈都不用自己敲了。
   記住按鍵組合(Ctrl + K,Ctrl + B),可以Manage你的Code Snippets
8.Refactoring
   這也是個BT的東西,雖然做的沒Resharper好。
   選取一段代碼抽象為方法,但是只能將選中的進行轉換,如果旁邊有同樣的一段代碼,vs2005也會看不見而不會處理(我親自測的)

   重新命名任何成員(欄位,參數,方法等等)。
   將欄位封裝為屬性(屬性名稱字你自己取)。
   移除參數,從方法、索引器或委託中移除參數,不會動方法中的同名參數,這樣肯動會有語法錯誤。
   重新排列參數,也是局限於方法、索引器或委託中的參數。
   提取介面,基於類中的非靜態方法,產生介面檔案。
   將局部變數提升為參數,如,將游標移到變數i,操作該命令:

    //處理前
    public static void MethodB()
    {
        // Invoke on 'i'
        int i = 0;
    }

    //處理後
    public static void MethodB(int i)
    {
        // Invoke on 'i'

    }

補註:查了查微軟的線上MSDN,他是這麼說的,結合,就明白了:
將局部變數提升為參數,提供一種簡單的方法,以在正確更新調用網站的同時將變數從局部使用移動至方法、索引器或建構函式參數。調用“將局部變數提升為參數”操作時,變數將被添加到成員參數列表的結尾處。對已修改成員的所有調用都將使用新參數(將替代最初賦給該變數的運算式)立即進行更新,並保留代碼,以使其像變數提升之前那樣正常工作。將常數值賦值給提升的變數時,此重構作業的效果最好。必須聲明並初始化該變數而不能僅聲明或僅賦值。

9.動態編譯dll組件
1.1隻止持aspx,ascx,web.config和global.asax的動態編譯,並不支援dll和WebServices,要手動編譯並重新添加dll引用——2.0現在支援了,但是在bin目錄下卻不產生自身項目的dll了。現在的原則是,只要使用者進行請求,系統會自動進行動態編譯。於是,對於正在使用的網站,增加一部分code並不需要編譯,當請求當這個改動或新功能時,再進行動態編譯,彈性就大了很多。也許你會說,第一次的速度會很慢,因為要編譯嘛,但僅僅時新的代碼塊或者改動部分,其他不動模組不許要編譯的,所以速度不受影響。

10.先行編譯
這就是編譯後有dll的版本,和1.1結構一樣了(雖然還差解決方案)
三種方式,同演的效果:
   命令列方式 Aspnet_Compiler加參數
   IDE中的“發布網站”選項
   通過API編程實現,這是以上兩種方式的實際運作,代碼如下:        using System.Web.UI.HtmlControls;
        
        ClientBuildManager cbm = new ClientBuildManager("虛擬目錄名稱", "來源位置", "目標位置");
        cbm.PrecompileApplication();

注意,先行編譯後產生的dll是不支援動態編譯的

11.同時使用C#和VB.NET在同一個項目中:
web.config配置如下:<configuration>
    <system.web>
        <compilation>
            <codeSubDirectories>
                <add directoryName="cs"/>
                <add directoryName="vb"/>
            </codeSubDirectories>
        </compilation>

相應在App_Code下加入cs和vb兩個folder,分別存放cs和vb格式的檔案(不加是不行的,因為在web.config中已經配置了這兩個folder)

這樣,先行編譯後在bin目錄中,分別產生App_SubCode_cs.dll和App_SubCode_vb.dll兩個dll組件。

12.CodeBehind
舊的CodeBehind是這樣的(1.1版本):<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="~/Default.aspx.cs" Inherits="命名空間.類" %>

新的CodeBehind(2.0版本,又名CodeBeside):<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="~/Default.aspx.cs" Inherits="類" %>

比較可知,2.0版本不再需要命名空間,而CodeBehind關鍵字也改為CodeFile了。

13.VS2005 SP1
也就是升級包,支援產生proj檔案的,使vs2003時代的程式員可以有回到過去的風格,而不是操作檔案系統,同時namespace也回來了,這樣App_Code的特殊檔案夾就失去了意義,其下的cs檔案要重新放位置了,還有就是,在升級包下建立的aspx檔案,同時不但可以看到aspx.cs檔案,這個檔案負責記錄邏輯操作,還有一個aspx.design.cs檔案,只負責聲明那些控制項變數——二者是一個類拆成兩部分(partial類),前者給開發人員使用,後者自動產生,不建議改動。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.