Cuando creamos una página ASP.NET con Visual Studio 1.x lo que obtenemos es un archivo '.aspx' con el HTML y etiquetas básicas de servidor para enlazar datos y para directivas de páginas, y por otro lado un archivo '.cs' o '.vb' que contiene una clase que implementa el código de la página en cuestión. A este modelo de programación se le conoce como "Code-Behind" que se podría traducir como "Código por detrás". El símil es bastante bueno ya que un usuario llama a la página ASPX pero en realidad se ejecuta por detrás y de forma transparente el código de la clase "Code-Behind". En la clase code-behind, además, se incluyen las declaraciones de los distintos controles de la página y se asignan también los manejadores de sus eventos entre otras cosas. De hecho la página final hereda de la clase code-behind, que en última instancia hereda de la clase Page.

En ASP.NET 2.0 y Visual Studio 2005 esto ha cambiado. Ahora el término nuevo a conocer es "Code-Beside" que podría traducirse como "código al lado". Esta característica está basada en el concepto de calse parcial, nuevo en .NET 2.0, que permite que una misma clase esté definida de forma parcial en múltiples archivos (hasta hora una clase sólo podía estar definida en un archivo). De este modo se puede definir parte de una clase en un archivo físico, algunas de sus propiedades en otro, sus métodos en otro, etc... La utilidad de esto está pensada sobre todo para herramientas de creación de código, para facilitar la regeneración de código parcial de una clase y para que varios programadores puedan trabajar al mismo tiempo en partes diferentes de una misma clase.

En el caso de las páginas ASP.NET 2.0, Visual Studio 2005 aprovecha esta característica para definir parte de la clase de la página ASPX en el propio archivo '.aspx', que ahora contiene definiciones de controles y eventos, y el código que gobierna su funcionamiento en un archivo aparte por medio de una clase parcial.

Esta característica se gobierna desde los atributos del modificador 'Page' de la página, del mismo modo que ahora se hace con las clases code-behind. La sintaxis ha cambiado sin embargo y ahora es análoga a esta:

<%Page compilewith="MiPagina.aspx.cs" classname="MiEspacioDeNombres.MiClase" %>

La clase 'MiClase' se define como una clase parcial (palabra clave partial en C# y Expands en VB.NET) y contiene sólo el código que gobierna el funcionamiento de la página.

Las ventajas de este nuevo modelo de trabajo (por cierto, code-behind no está soportado por VS.NET 2005) son varias, y cabe destacar una mayor sencillez de código y una mayor separación real entre interfaz y código. Por otra parte existen desventajas, claro. Las más importantes son que ahora el modelo no se rige tan claramente como antes por los principios de la programación orientada a objetos (es menos intuitivo desde este punto de vista) y que es más difícil de mantener sincronizado el código con la interfaz si tocamos en donde no debemos. De todos modos como VS.NET 2005 todavía está en beta puede que esto cambie en la versión definitiva.

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor

Escrito por un humano, no por una IA