CodeFile vs CodeBehind

¿Cuál es la diferencia entre CodeFile = “file.ascx.cs” y CodeBehind = “file.ascx.cs” en la statement de un control de usuario de ASP.NET?

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

CodeBehind : necesita ser comstackdo (modelo ASP.NET 1.1). El binario comstackdo se coloca en la carpeta bin del sitio web. Debe realizar una comstackció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 comstack el código cuando es necesario. Los archivos comstackdos están en Microsoft.NET [.NET version] \ Archivos temporales ASP.NET.

El archivo de código subyacente necesita comstackr antes de ejecutarse, pero en src no necesitamos comstackr 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 statement.

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 comstackció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.