Utilizando una clase base en tu aplicacion web
Heredando de una clase base

Fecha: 25/Oct/2004 (22-10-2004)
Autor: Armando Andrade, email: webcool@hotmail.com

 


Introduccion.

Un saludo amigos, este es el primero de una serie de artículos en los cuales quiero mostrarles las ventajas de tener una clase base, de las cual heredaremos características para todo nuestro sitio de ASP.NET.

En esta primer parte les mostrare como poder cambiar el titulo de la pagina por medio de código, y en el transcurso de los artículos ire mostrándoles ejemplos mas interesantes de lo que podemos hacer con ella.

El utilizar una clase base para nuestras páginas nos permite reutilizar mucho código que en ocasiones se repite continuamente en nuestro sitio de Internet. En ASP.NET tenemos la ventaja de los User Controls que encapsulan lógica que se puede reutilizar en diferentes páginas en nuestro sitio, pero de todas maneras necesitamos recordar colocarlos en cada una de ellas. Sin embargo al utilizar una clase de las cuales todas nuestras páginas hereden nos permitirá solo definirlo en una ocasión y que todas las páginas que heredemos de esta clase base, hereden también sus características.

Lo primero que tenemos que hacer es crear nuestro proyecto Web. (ASP.NET) e inmediatamente después agregar un elemento de tipo Clase.

Como de esta clase todas nuestras páginas van a heredar nuestra clase obviamente tiene que heredar de “System.Web.UI.Page” que es el namespace completo de la clase que tiene todas las características de una pagina de ASP.NET.
De tal forma que debemos incluir:

using System.Web.UI

Y un poco mas abajo, en la definición de nuestra clase, heredar

public class PaginaBase : System.Web.UI.Page

En este caso decidi llamar PaginaBase a mi clase base.
A continuación definiremos una propiedad con el nombre Titulo la cual tendrá el valor que le queremos asignar al titulo de nuestra pagina. Obviamente es de tipo string porque lo que queremos almacenar es texto.

string baseTitulo;
public string Titulo
{ get{return baseTitulo;}
set{baseTitulo = value;}
}

El ultimo paso y mas importante es que vamos a sobrescribir el método Render, que es el encargado de escribir el stream de información (el html) hacia la pagina. Este método recibe como parámetro un HtmlTextWriter

protected override void Render(HtmlTextWriter escritor)
{ // Primero vamos a construir el documento html, // La sección del encabezado y el titulo. escritor.Write( @" <html> <head> <title>" + baseTitulo + @"</title> </head> <body>" ); // Ahora le permitimos a la clase base renderear los controles //que se encuentran en el archivo ASPX base.Render( writer ); // Por ultimo rendereamos las etiquetas para cerrar el cuerpo // y el documento escritor.Write( @"a </body> </html>" ); }

Para las personas que utilizan C#, el carácter de @ lo utilizamos para indicar que no existan secuencias de escape dentro del string.

Con esto terminamos nuestra definición de nuestra clase base, ahora vamos a ver como lo implementamos en una página regular.

Lo primero que haremos será arrastrar y soltar un textbox y un botón dentro de nuestra pagina.

Después en la parte de code-behind de nuestro archivo tenemos que indicarle a nuestra clase que vamos a heredar de nuestra clase base:

public class  WebForm1 : PaginaBase

Al hacer esto tendremos todas las características y propiedades de la clase base y a su vez de la clase pagina ya que nuestra clase base hereda de la clase Page. Esto quiere decir que si hacemos referencia a nuestro actual objeto utilizando la palabra this, nos daremos cuenta que en nuestra lista de Intellisense tenemos una propiedad llamada Titulo, que fue la que nosotros definimos.


private void Page_Load(object sender, System.EventArgs e)
		{
			this.Titulo = "Mi titulo";
		}

Ahora en nuestra página ASPX eliminaremos las etiquetas de html,head y body, ya que nuestra clase base lo hará por nosotros (recomiendo remover estas etiquetas hasta el final, ya que se pierde el Intellisense en tiempo de diseño al momento de borrarlas).

Aquí asignamos el valor de “Mi Titulo” al titulo de la página y podemos comprobarlo si compilamos el proyecto.

Por ultimo utilizaremos el botón y el textbox para modificar el titulo cuando la pagina ya este cargada. En el evento Onclick del ratón tomaremos el valor que tenga el textbox y lo escribiremos directamente al Titulo de la página.


private void Button1_Click(object sender, System.EventArgs e)
		{
			this.Titulo = txttitulo.Text;
		}

En este primer artículo solo hemos tocado por encima las ventajas de tener una página base como repositorio de la lógica que podemos heredar a todas nuestras páginas dentro de nuestro sitio. Y si son un poco fijados se darán cuenta que tampoco podemos agregar controles ASP.NET ya que estos deben de estar dentro de nuestra etiqueta <form> así que en el siguiente articulo veremos como insertar esta etiqueta y añadir controles a nuestra pagina.

 


ir al índice