La carpeta App_Code puede contener todos los archivos y subcarpetas que necesitemos. Se Puede organizar el código fuente de la forma que creamos más conveniente, ya que ASP.NET lo compilará en un solo ensamblado al que podrá tener acceso el código de cualquier parte de la aplicación Web.

Código compartido

En los ejemplos anteriores tuvimos la necesidad de contar con código compartido. Por ejemplo, el método IsNumeric lo utilizamos en el Capítulo 7: Controles de usuarios reutilizables y en el Capítulo 11: Acceso a datos(consultar y guardar información desde WebForms).

  • Estructura de una clase: Una clase está compuesta por Atributos, Propiedades, Métodos y Eventos. Aunque no necesariamente deba tener todos sus componentes declarados. Podemos crear clases que sólo tengan métodos o que sólo tengan atributos y propiedades.
  • Ejemplo de una clase básica:  El primer evento de nuestra clase va a ser el constructor, al instanciar la clase (Objeto) lo primero que se ejecuta es el constructor.
public class Herramientas
{
public Herramientas()
{
}
}

Ahora agregaremos un método que nos facilite la reutilización de código, como por ejemplo: IsNumeric().

using System;
using System.Collections.Generic;
using System.Web;
public class Herramientas
{
public Herramientas()
{
}
public bool IsNumeric(object Expression)
{
bool isNum;
double retNum;
isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);
return isNum;
}
}

Ya tenemos creada nuestra clase Herramientas.cs en la carpeta App_Code. ¿Cómo podemos utilizar el método IsNumeric() desde cualquier parte de nuestra solución Web?

Lo primero que debemos hacer es instanciarla.

Herramientas herr = new Herramientas();

Ahora podemos ver dentro de nuestro objeto herr los métodos públicos.

Este método nos devuelve un Booleano: verdadero o falso y nos sirve para evaluar. Vamos a llamar a la clase Herramientas desde el método Escribir del capítulo anterior.

Herramientas herr = new Herramientas();
if (herr.IsNumeric(txtEdad.Text))
{
}

De esta forma nos evitamos tener que codificar el evento IsNumeric en cada parte del código donde lo necesitemos.

Clases estáticas:

Las clases estáticas son clases que no tienen un constructor invocable, por consiguiente no hay que instanciarlas y se pueden acceder a los métodos en forma directa.

Veamos el ejemplo anterior pero declarando la clase como estática y su utilización.

public static class Herramientas
{
static Herramientas()
{
}
public static bool IsNumeric(object Expression)
{
}
}

Al no tener la necesidad de instanciarla la llamada al método IsNumeric lo hacemos en forma directa de la siguiente forma.

Capítulos del Tutorial