it-swarm-vi.tech

CodeFile vs CodeBehind

Sự khác biệt giữa CodeFile= "file.ascx.cs" và CodeBehind= "file.ascx.cs" trong khai báo điều khiển Người dùng ASP.Net là gì?

Là một cái mới hơn hoặc được đề nghị? Hay họ có cách sử dụng cụ thể?

133
Soldarnal

CodeBehind: Cần được biên dịch (mô hình ASP.NET 1.1). Nhị phân biên dịch được đặt trong thư mục bin của trang web. Bạn cần phải biên dịch trong Visual Studio trước khi triển khai. Đó là một mô hình tốt khi bạn không muốn mã nguồn có thể xem được dưới dạng văn bản thuần túy. Ví dụ: khi giao hàng cho khách hàng mà bạn không có nghĩa vụ cung cấp mã.

CodeFile: Bạn cung cấp tệp nguồn với giải pháp để triển khai. Thời gian chạy ASP.NET 2.0 biên dịch mã khi cần. Các tệp được biên dịch có tại Microsoft.NET [Phiên bản .NET]\Tệp ASP.NET tạm thời.

160
Shafqat Ahmed

Tôi đang làm việc với Dự án ứng dụng trong Visual Studio Express 2012 cho Web và sử dụng .NET 4.0. Trong mã đằng sau các tệp để đăng nhập và thay đổi trang mật khẩu, tôi đã tìm thấy một tình huống mà tôi cần cả CodeBehind và CodeFile trong khai báo.

Nếu tôi không thêm một tham chiếu tệp mã như

CodeFile=login.aspx.cs

Trang web không phân tích cú pháp và trình duyệt hiển thị lỗi trình phân tích cú pháp. Không quan trọng tôi có biên dịch dự án hay không.

Nếu tôi không thêm mã phía sau tham chiếu như

CodeBehind=login.aspx.cs

Các tham chiếu đến các lớp Bảo mật như MemberhipUser không thành công cả về thời gian biên dịch và khi cố gắng sử dụng intellisense với một lỗi như "Không thể tìm thấy Kiểu hoặc không gian tên MemberhipUser". Tôi đã thêm một tham chiếu đến System.Web.ApplicationService theo yêu cầu của khung .Net 4.0.

Tôi nên thêm rằng các tệp rắc rối này đang chạy trong một ứng dụng trong trang web được tạo bằng công cụ Ứng dụng IIS. Khi tôi mở trang web từ Visual Studio, tôi không gặp khó khăn với lỗi trình phân tích cú pháp hoặc lỗi tham chiếu. Sự nhầm lẫn này chỉ xảy ra khi tôi mở ứng dụng như một dự án trong Visual Studio.

5
DavidHyogo

Tệp Codebehind cần biên dịch trước khi chạy nhưng trong src chúng ta không cần biên dịch rồi chạy .. chỉ cần lưu tệp.

5
Ranjeet Prasad