miércoles, 11 de julio de 2012

Creando Server Controls en ASP.NET


En alguna ocasión habéis tenido la necesidad de crear una librería de controles Web, que pudieseis reutilizar en distintas aplicaciones, sin necesidad de incorporar a vuestra solución el proyecto en cuestión?



Así me empecé yo adentrarme en el mundo de los Server Controls. Una librería compilada en la cual se encontrarán los controles que desarrollemos así como los recursos necesarios para su uso (Imágenes, Scripts,css...etc).

Lo primero que vamos a hacer es crear un proyecto de “Biblioteca de Clases” el cual contendrá los Server Controls que vamos a crear. Ponerle el nombre que queráis(yo usare jordi.developer.ui )


Una vez creado el proyecto, eliminamos la clase que se nos crea por defecto (o la usamos para nuestro control) y creamos una nueva clase con el nombre del control que vamos a crear (UIButton por ejemplo).

Haremos que nuestro control herede de WebControl, pera ello, primero deberemos agregar la referencia “System.Web” a nuestro proyecto.

Con la referencia agregada y nuestro control heredando de
WebControl este ya sera tratado como un control web.


Antes de empezar a diseñar el aspecto del control, vamos a agregar al proyecto un fichero de imagen, el cual usaremos en el diseño del control.

Para poder usar esta imagen, se necesario que especifiquemos que se trata de un
“recurso incrustado”, de esta forma el propio archivo queda
compilado dentro de la librería del propio control.


También necesitaremos registrar en el “AssemblyInfo” el fichero en cuestión.

Con esto ya estaremos en disposición de usar la imagen dentro del diseño del control.

Ahora ya podemos proceder a diseñar el control que vamos a crear.


Ahora vamos a crear una propiedad "Text" a traves de la cual podamos personalizar el control y hacer que este muestre como etiqueta el texto que hayamos asignado a dicha propiedad.



Ahora procederemos a sobrescribiremos el evento “Render” para especificar como deseamos que se pinte nuestro control.
En este caso el código que usare en este control será algo similar a este
De esta forma estableceremos que en el momento en que se vaya a renderizar nuestro control, primero genere el codigo de la imagen y a continuacion una etiqueta con el texto que hemos especificado en su propiedad Text.
Es importante ver com generamos una URL a partir de un recurso web de la libreria del control por medio del comando "GetWebresourceUrl".
Ha llegado el momento de probal el control que hemos creado. Para ellos agregaremos un proyecto de Aplicacion Vacia de ASP.NET donde crearemos una pagina Test.aspx en la que probar el control.
A este proyecto web que hemos creado, hemos de agregarle la referencia a la libreria de controles que hemos creado, ya que de lo contrario, no podremos usar dichos controles en la pagina.
Modificacomos la pagina para registrar el assembly de controles que vamos a usar
y agregamos el codigo del control en cuestion.
Ya esta listo para probar. Si ejecutamos deberia aprecernos algo parecido a esto, teniendo en cuenta que la imagen que usado yo es la del interrogante rodeado de un circulo.
Este es el punto de partida para realizar controles mas ricos y mas complejos. A partir de aqui solo es cuestion de dejar volar la imaginacion.
Espero que este pequeño articulo os sea de ayuda.
Un saludo y hasta la proxima.

No hay comentarios:

Publicar un comentario