web-development-kb-es.site

CodeFile vs CodeBehind

¿Cuál es la diferencia entre CodeFile = "file.ascx.cs" y CodeBehind = "file.ascx.cs" en la declaración de un control de usuario ASP.Net?

¿Es uno nuevo o recomendado? ¿O tienen uso específico?

132
Soldarnal

CodeBehind : se debe compilar (modelo ASP.NET 1.1). El binario compilado se coloca en la carpeta bin del sitio web. Debe realizar una compilación en Visual Studio antes de implementar. Es un buen modelo cuando no desea que el código fuente sea visible como texto sin formato. Por ejemplo, al entregar a un cliente a quien no tiene la obligación de proporcionar el código.

CodeFile : Usted proporciona el archivo de origen con la solución para la implementación. El tiempo de ejecución de ASP.NET 2.0 compila el código cuando es necesario. Los archivos compilados están en Microsoft.NET [versión .NET]\Archivos temporales ASP.NET.

159
Shafqat Ahmed

Estoy trabajando con un Proyecto de Aplicación en Visual Studio Express 2012 For Web y usando .NET 4.0. En el código detrás de los archivos de mi página de inicio de sesión y cambio de contraseña, encontré una situación en la que necesitaba tanto CodeBehind como CodeFile en la declaración.

Si no agrego una referencia de archivo de código como

CodeFile=login.aspx.cs

La página web no se analiza y el navegador muestra un error del analizador. No importa si compilo el proyecto o no.

Si no agrego un código detrás de referencia como

CodeBehind=login.aspx.cs

Las referencias a clases de seguridad como MembershipUser fallan tanto en tiempo de compilación como al intentar utilizar intellisense con un error como "No se puede encontrar el tipo o espacio de nombres MembershipUser". He agregado una referencia a System.Web.ApplicationServices como lo requiere el marco .Net 4.0.

Debo agregar que estos archivos problemáticos se están ejecutando en una aplicación dentro del sitio web creado con la herramienta de aplicación IIS. Cuando abro el sitio web desde Visual Studio, no tengo ninguna dificultad con los errores del analizador o los errores de referencia. Esta confusión solo ocurre cuando abro la aplicación como un proyecto en Visual Studio.

5
DavidHyogo

El archivo Codebehind debe compilarse antes de ejecutarse, pero en src no necesitamos compilar y luego ejecutar ... solo guarde el archivo.

5
Ranjeet Prasad