it-swarm-id.com

CodeFile vs CodeBehind

Apa perbedaan antara CodeFile= "file.ascx.cs" dan CodeBehind= "file.ascx.cs" dalam deklarasi kontrol Pengguna ASP.Net?

Apakah ada yang lebih baru atau direkomendasikan? Atau apakah mereka memiliki penggunaan khusus?

133
Soldarnal

CodeBehind: Perlu dikompilasi (model ASP.NET 1.1). Biner yang dikompilasi ditempatkan di folder bin dari situs web. Anda perlu melakukan kompilasi di Visual Studio sebelum Anda menyebarkan. Ini adalah model yang baik ketika Anda tidak ingin kode sumber dapat dilihat sebagai teks biasa. Misalnya saat mengirim ke pelanggan yang tidak memiliki kewajiban untuk memberikan kode.

CodeFile: Anda memberikan solusi untuk penyebaran file sumber. ASP.NET 2.0 runtime mengkompilasi kode ketika dibutuhkan. File yang dikompilasi berada di Microsoft.NET [.NET version]\Temporary ASP.NET Files.

160
Shafqat Ahmed

Saya sedang bekerja dengan Proyek Aplikasi di Visual Studio Express 2012 Untuk Web dan menggunakan .NET 4.0. Dalam kode di balik file untuk login saya dan mengubah halaman kata sandi saya menemukan situasi di mana saya membutuhkan CodeBehind dan CodeFile dalam deklarasi.

Jika saya tidak menambahkan referensi file kode suka

CodeFile=login.aspx.cs

Halaman web tidak diuraikan dan peramban menampilkan kesalahan pengurai. Tidak masalah apakah saya mengkompilasi proyek atau tidak.

Jika saya tidak menambahkan kode di belakang referensi suka

CodeBehind=login.aspx.cs

Referensi ke kelas Keamanan seperti MembershipUser gagal baik pada waktu kompilasi dan ketika mencoba untuk menggunakan intellisense dengan kesalahan seperti "Tipe atau namespace MembershipUser tidak dapat ditemukan". Saya telah menambahkan referensi ke System.Web.ApplicationServices seperti yang disyaratkan oleh .Net 4.0 framework.

Saya harus menambahkan bahwa file-file bermasalah ini berjalan di suatu aplikasi di dalam situs web yang dibuat menggunakan alat aplikasi IIS. Ketika saya membuka situs web dari Visual Studio saya tidak mengalami kesulitan dengan kesalahan parser atau kesalahan referensi. Kebingungan ini hanya terjadi ketika saya membuka aplikasi sebagai proyek di Visual Studio.

5
DavidHyogo

File codebehind perlu dikompilasi sebelum dijalankan tetapi dalam src kita tidak perlu mengkompilasi dan kemudian menjalankan .. simpan saja file tersebut.

5
Ranjeet Prasad