asp.net

asp.net - CodeFile vs CodeBehind



(3)

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

¿Es uno más nuevo o recomendado? ¿O tienen un uso específico?


El archivo de código subyacente necesita compilar antes de ejecutarse, pero en src no necesitamos compilar y luego ejecutar ... solo guarda el archivo.


Estoy trabajando con un Proyecto de aplicación en Visual Studio Express 2012 For Web y con .NET 4.0. En el código detrás de los archivos de mis páginas 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 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 cuando se intenta utilizar intellisense con un error como "No se puede encontrar el usuario de membresía de tipo o espacio de nombres". He agregado una referencia a System.Web.ApplicationServices según lo requerido por el marco .Net 4.0.

Debo añadir 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 dificultad con los errores del analizador o de referencia. Esta confusión solo ocurre cuando abro la aplicación como un proyecto en Visual Studio.


CodeBehind : necesita ser compilado (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 pueda visualizarse como texto sin formato. Por ejemplo, cuando se lo entrega a un cliente al que no tiene la obligación de proporcionar el código.

CodeFile : proporciona el archivo de origen con la solución para la implementación. ASP.NET 2.0 runtime compila el código cuando es necesario. Los archivos compilados están en Microsoft.NET [.NET version] / Archivos temporales ASP.NET.