在ASP.NET中Web程式設計時,aspx Web 窗體的@page 指令有三個屬性(Inherits、CodeFile、CodeBehind),我們在新增aspx頁面時,會預設在程式碼中使用CodeBehind。那麼,CodeFile與CodeBehind的區別究竟有哪些呢?

一、CodeBehind

1、使用方式

<%@ Page Language="C#" AutoEventWireup="true" Codebehind="index.aspx.cs" Inherits="Community.IndexHomePage.index" %> 

2、專案中的所有的Code-Behind 類檔案和獨立類檔案都被編譯成一個獨立的應用程式集,這個應用程式集被放在Bin目錄下

3、釋出的時候,不需要釋出.cs檔案

4、修改某個.cs檔案,需要重新編譯整個專案,重新整理才會看到效果

5、釋出時需要釋出整個專案編譯後的DLL檔案

二、CodeFile

1、使用方式

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="Community.IndexHomePage.index" %>

2、ASP.net 需要找 CodeFile 中指定的檔案,以便動態編譯,但是找不到,所以就報錯誤

3、CodeFile指向的檔案只會在執行這個頁面時才會編譯,速度上相比CodeBehind有一定的影響

4、釋出的時候,需要釋出.cs檔案

5、修改程式碼後不用整體編譯,只重新整理頁面就可以看到效果

6、釋出時只需要釋出 新增、修改的檔案,不需要釋出整個專案的DLL,避免因為釋出影響到其它的頁面的功能