Páginas Inline Code vs. Páginas Code-Behind

ASP.NET proporciona dos formas para organizar el código en nuestras páginas.

Separación de Código "Inline"

El siguiente ejemplo demuestra una simple página ASP.NET con tres controles de servidor, un TextBox, un Button, y un Label.

Este ejemplo simple demuestra los mecanismos básicos que hay detrás del modelo de controles de servidor, que ha hecho que ASP.NET sea uno de los modelos de programación Web más sencillos de aprender y dominar.

InlineBehind1.aspx

Hay que observar que en el ejemplo anterior, el manejador de eventos para el Button se ha colocado entre las etiquetas <script></script> en la misma página que contiene los controles de servidor. En ASP.NET, este tipo de programación se llama code-inline, y e muy útil cuando queremos mantener nuestro código y nuestra lógica de presentación en un solo fichero.

Sin embargo, ASP.NET también soporta otra forma de factorizar el código y el contenido de presentación, llamada modelo code-behind. Cuando usamos code-behind, el código que maneja los eventos se situa en un fichero que está separado físicamente de la página que contiene los controles de servidor y las marcas. Esta clara diferenciación entre código y contenido es útil cuando necesitamos mantener éstos separados, como cuando más de una persona está involucrada en la creación de la aplicación.

Es muy común en proyectos de grupos tener diseñadores trabajando en la parte de la UI, mientras que los desarrolladores trabajan en el comportamiento o en el código. EL modelo code-behind es ideal para este ambiente.

Modelo "Code Behind" Simplificado

ASP.NET 2.0 introduce una rutina mejorada para páginas code-behind que simplifica las conexiones entre la página y el código. En este nuevo modelo code-behind, la clase se declara como una clase parcial, lo que permite tanto al fichero de la página como al del código ser compilador en una misma clase en tiempo de ejecución.

La página del código hace referencia al fichero de code-behind en el atributo CodeFile de la directiva <%@ Page %>, especificando en nombre de la clase en el atributo Inherits. Hay que observar que los miembros de una clase code-behind deben ser o bien "public" o "protected" (no pueden ser privados).

InlineBehind2.aspx

InlineBehind2.cs

La ventaja del modelo simplificado code-behind frente a versiones previas es que no necesitamos mantener declaraciones separadas de variables de controles de servidor en la clase code-behind. La utilización de clases parciales (nuevo en 2.0) permite que los IDs de los controles de servidor de la página ASPX sean accedidos directamente en el fichero de code-behind. Esto simplifica en gran medida el mantenimiento de las páginas de code-behind.

A continuacion se muestra otro ejemplo de este modo de trabajo:

euro.aspx

euro.cs