La desventaja principal que tiene es que en la mayoría de los proyectos se trabaja con más de un desarrollador y diseñador gráfico. Para esto es más útil tener la posibilidad de manejar la interfaz de usuario (UI) y la programación por separado.

Código detrás del modelo (Code Behind)

Poder manejar código detrás del modelo nos permite organizar los eventos en forma separada. Todo lo relacionado con Interfaz de usuario lo manejamos en el archivo .aspx y el control de los eventos en un archivo separado .cs (para C Sharp). De forma similar a la que manejamos los archivos de JavaScript (.js) – donde incluimos todas las funciones y luego las referenciamos en el aspx – hacemos con el Code Behind.

Recordemos la primer directiva de nuestra página aspx.

<%@ Page Language="C#" %>

Ahí es donde vamos a indicar que el código de eventos va separado de la UI.
Lo marcamos de la siguiente manera.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

¿Qué le estamos diciendo a ASP.NET al incluir esta directive Page a la página aspx?

Lo vemos punto por punto:

  • Language="C#" : este atributo le está indicando al compilador que el código estará escrito en lenguaje C Sharp.
  • AutoEventWireup="true" :  aquí indicamos si el código será inline o Behind. Al setearlo en true le estamos indicando que el código será detrás del modelo (CodeBehind) y será especificar el nombre del archivo donde deberá ir a buscar el código de eventos.
  • CodeFile="Default2.aspx.cs": Aquí le indicamos el nombre del archivo donde incluiremos el código de eventos.
  • Inherits="Default2": Especificamos que clase va a heredar, esta clase la va a ir a buscar dentro del archivo que indicamos en CodeFile.

Veamos un ejemplo de código utilizando Code Behind.

Nuestro ejemplo tendrá dos archivos:

  1. Default.aspx
  2. Default.cs
  1. Default.aspx: Incluirá todo lo relacionado con interfaz de usuario.
  2. Default.cs: Aquí pondremos el código de los eventos que se ejecuten desde el formulario.

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
<html> <head runat="server">
<title></title> </head>
<body> <form id="form1" runat="server">
<div> <asp:TextBox ID="txtNombre" runat="server"></asp:TextBox> <asp:Button ID="btnAceptar" runat="server" Text="Aceptar"
onclick="btnAceptar_Click"/> <br/>
<asp:Label ID="lblResultado" runat="server" Text="[Resultado]"></asp:Label> </div>
</form> </body>
</html>

Default.cs

using System; using System.Web.UI.WebControls;
public partial class Default : System.Web.UI.Page {
}
protected void btnAceptar_Click(object sender, EventArgs e) {
}
lblResultado.Text = txtNombre.Text; txtNombre.Text = string.Empty;

Capítulos del Tutorial

En el próximo capítulo que se publica el jueves veremos: Controles de servidor y eventos.