usando UrlRewriting :D

Hace tiempo que tenía un post en la cola, sobre el uso URL Rewriting en ASP.NET, la mayoría de ejemplos se basan en crear un nuevo HttpModule en ASP.NET, leer este artículo sobre Http Handlers y Http Modules: HTTP Handlers and HTTP Modules in ASP.NET.

Como decía, la solución más común es crear un nuevo Http Module, me animé por el http://www.urlrewriting.net/, ya que sólo adjuntas la dll, que contiene el nuevo HttpModule, lo registras en el web.config, agregas la siguientes configuración:

   1: <urlrewritingnet rewriteOnlyVirtualUrls="true" 
   2:                    contextItemsPrefix="QueryString" 
   3:                    defaultPage="default.aspx" 
   4:                    defaultProvider="RegEx" 
   5:                    xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
   6:         <rewrites>
   7:             <add name="Rewrite" virtualUrl="^~/Noticias/ShowNoticia(.*).aspx" 
   8:            rewriteUrlParameter="ExcludeFromClientQueryString" 
   9:            destinationUrl="~/Noticia/vernoticia.aspx?codNot=$1" 
  10:            ignoreCase="true"/>
  11:         </rewrites>
  12:     </urlrewritingnet>

Y listo, ahora ya tienes lo siguiente:

Esto es lo más simple que podemos hacer, ya que con expresiones regulares se pueden hacer otras marcianadas para ocultar la identificación de un posible parámetro.

Algunas de las features de http://www.urlrewriting.net/, son las siguientes:

  • Rewriting Urls based on regular expressions
  • Support for Themes and Master Pages
  • Support for OutputCacheing
  • Use in medium trust level environments (shared hosting) possible
  • Consistent Url after post back
  • Adding own rewrite rule providers possible
  • Redirects (also permanent) to other domains or websites possible
  • Support for Cookie less Sessions
  • Adding rewrite rules on runtime
  • Very easy installation and use

La documentación, sobre todo los elementos disponibles en el web.config, lo encontramos en el siguiente link: UrlRewritingNet.UrlRewrite – Configuration.

Por cierto en ASP.NET 2.0 tenemos URL Mapping, pero como dicen en el artículo con la limitante de no poder usar expresiones regulares, ah y no se pierdan esta entrada del gran ScottGu’s: Tip/Trick: Url Rewriting with ASP.NET.

Saludos,

Post cruzado

Demos: Web con VS2008 y Silverlight con VS2008

Holas!

En los eventos pasados, quedo pendiente la publicación de las demos que realicé.

  • Demo 01 – Desarrollo Web con VS2008. Esta demo está basada en la siguiente entrada de ScottGu’s, pero además tiene el uso de ASP.NET AJAX. La aplicación web usada para la demo es el starter kit: Classifieds Site Starter Kit. Se ha agregado una página llamada Portada.aspx, donde se mostrarán los últimos clasificados usando el control ListView junto con un control DataPager, para el paginado. Pero además para tener una mejor de experiencia del usuario, y no tenga demoras en la visualización del contenido, hemos colocado estos controles dentro de un UpdatePanel, para que la paginación se actualice con postbacks asíncronos, a por cierto para el acceso a datos se utilizo a Linq, a través del control LinqDataSource. En la página de visualización de todos los clasificados, también encontrarán otro uso de ASP.NET AJAX, como actualización basada en triggers y en modos condicionales, y en la página de detalle de un clasificado, encontrarán el uso de UpdatePanels anidados. Aunque este no es el ejemplo que yo usaría para mostrar el acceso datos, usaría BeerHouse, este Starter Kit, tiene mucho que explotar en cuanto a lo visual, y posibilidades de implementar Ajax, y como no hay que cambiar todo lo podamos tener por detrás de nuestra aplicación, sólo utilizando racionalmente y no indiscriminadamente ASP.NET AJAX, podemos tener un buen Sitio Web con Ajax.
  • Demo 02 – Silverlight con VS 2008. Esta demo esta basada en una de las demos que hubo en la presentación de Silverlight por ScottGu’s, en el Keynote del MIX07. En la demo original se usan servicios con WCF, posteriormente, se liberaron las librerías de los controles usadas para esa demo, Silverlight Airlines Sample. Estos juegos de controles Silverlight (WPF), un Map, un Calendar, y un ItineraryPicker, son suficientes para ver el poder y todo lo que podemos hacer con Silverlight, y de como este integra al desarrollo .NET, y a Visual Studio, pero como también el diseñador puede hacer de las suyas usando Expression Blend, en otra oportunidad hablare con más detalle sobre Silverlight. La demo consiste en crear mi proyecto Silverlight, y usar la librería de controles de Silverlight Airlines, además de programar determinados eventos bajo .NET, para posteriormente usar este proyecto Silverlight, en una Aplicación Web ASP.NET. Nota: Esta demo esta basada en Silverlight Tools for VS2008 Beta2, ya que al momento de hacer estas demos todavía no se liberaban las Tools para VS2008 versión final, aunque Miguel nos avisa hoy que ya fue liberada: Silverlight 1.1 Tools Alpha para VS2008, ahora si a molar, no se si estoy usando bien la palabra mola, la estoy usando como la entiendo 😀, con Silverlight y VS2008.

Por cierto en los zips, de las demos también encontrarán los PDFs de las presentaciones usadas en las charlas, que están basadas en unas presentaciones de ScottGu’s con algunos cambios, el nombre del presentador, email, y la lista de links :D, ah y quite algunos slides, en el link de estas presentaciones también encontrarán otras demos, que ya no me dio el tiempo de revisar, pero tienen más ejemplos con que aprender.

P.D.: No se por que ahora en mi LiveWriter, esta funcionando el corrector Ortográfico, no recuerdo haber hecho nada para que esto funcione, fácil que en lo instale en una actualización y no me di cuenta :S, tan bonito que se veía el post en el Writer, ahora se ven puras rayas rojas, lo bueno es que ya no tengo que llevarlo a Word para darle el toke final, eliminar todas los horrores ortográficos 😀.

Saludos, y nos leemos 🙂

Post cruzado

Visual Studio 2008 version final, para las masas

Como ya muchos geeks lo han comentado, mientras otros terminábamos demos de ASP.NET con VS2008 y Silverlitght, se ha liberado Visual Studio 2008 a través de las suscripciones MSDN. Pero hombre, no todos tenemos acceso directamente a ellas.

Como comenta ScottGu’s en esta entrada, Visual Studio 2008 and .NET 3.5 Released, los que no tiene un suscripción MSDN, también pueden obtener Visual Studio 2008.

En primer lugar tenemos las versiones express, que son de libre de descarga, Visual Studio 2008 Express Editions:

Cada versión Express tiene un instalador vía Web, pero también podemos descargar las imágenes (ISO) de las express e instalarlas offline, en este momento hay una imagen de un DVD con todas las versiones express: Visual Studio 2008 Express Edition All-in-One DVD.

Que podemos hacer con una Versión Express?, miren lo que hicieron la gentita de la NASA con Visual C# Express, y ya se sabe que el artista con paint o lo que sea, es artista. Con las versiones express podemos crear aplicaciones Windows, Librería de Controles, WPF, WCF, Web, controles Web, aplicaciones Web con AJAX, y más. Es decir que: -Puedo aprender todo lo nuevo del lenguaje, los nuevos controles, las nuevas features de la herramienta, con las versiones express?, -Si, así es. Puedes hacer hasta aplicaciones en Capas con las versiones Express, tus componentes los tienes en una solución con C# express, y tu FrontEnd en otra solución con Visual Web Developer Express, en el caso de ser una aplicación Web.

-Entonces que de bueno tienen las otras versiones?, -tienen todas las plantillas de las express en una sola herramienta, tiene algunas features adicionales dependiendo de la versión, puedes hacer más aplicaciones como VSTO, móviles, entre otras. Puedes usar VS en varias fases del ciclo de vida del desarrollo de software, y muchas cosas más.

Si están haciendo aplicaciones Web o Windows pequeñas o para la universidad, y desean usar VS2008, pueden hacerlo también con las versiones Express, y no pasar penurias para conseguir una versión de Visual Studio 2008.

Y bueno, si quieren probar y conocer un poco más la herramienta en sus otras versiones, pueden descargar una Trial de Visual Studio 2008. Son 90 días, unos 3 meses para aprender lo que me interesa de Visual Studio 2008, y bueno de ahí esperar a trabajar con alguien que tenga una subscripción MSDN :D:

Por cierto, con respecto a Silverlight aún no han sido liberadas las Tools para Visual Studio 2008, la última versión conocida fue para la Beta 2, pero esta no trabaja con la versión final, o bueno no encontré la forma :S. Así que, si están trabajando con Silverlight tendrán que seguir usando Beta 2, pero en un par de semanas ya debe estar la nuevas Tools de Silverlight para la versión final.

Saludos, y están avisados :).

Post cruzado

3Dev Readiness Day: Visual Studio 2008 (faltan pocos dias)

Haciendo eco a la entrada de Cesar Fong, los invito a participar de este evento gratuito organizado por la gentita de 3Dev.


Fecha: 22 de Noviembre del 2007

Lugar: Microsoft Perú – Salón Lima

Dirección: Av. Victor Belaunde 147 Vía Principal. Torre Real 1. Piso 3. Lima. Perú.

Registro: 2:30 PM

Inicio: 3:00 PM

Finalización: 7:00 PM

 


Agenda

02:30 – 03:00 Registro

03:00 – 3:45  Desarrollo de aplicaciones ASP .NET con Visual Studio .NET 2008 (Ajax, SilverLight y mas)

03:45 – 04:00 Refrigerio

04:00 – 04:45 LINQ y la nueva forma de conexión a datos

04:45 – 05:15 Servicios y algo mas… (Windows Communication Foundation, Windows WorkFlow Foundation – incluyendo WFC para SharePoint, REST, JSON y mas)

05:15 – 05:30 Refrigerio

05:30 – 06:15 Windows Presentation Foundation (XAML, Expression Interactive Designer, Cider y mas)

06:15 – 07:00 Desarrollo de aplicaciones con Visual Studio Tools for Office – OBAs

07:00 Cierre

Pueden registrarse a través de los teléfonos de 3dev (421-0996) o enviando un correo a ventas@3devnet.com.


Y al igual que Fong, también estaré participando, así que nos vemos en el evento, no se lo pierdan :).

P.D.: Sigo pensado que falto un loguito para el evento :D.

Actualización (20080524): Las demos las pueden descargar del siguiente enlance.

Saludos,

SID, VirtualPCs y AD

El error que me trae por acá es el siguiente: “The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain”.

Lo que pasa es que tengo dos Virtual PCs, en una (AD_VPC) ya levante Active Directory, y ahora desde la otra virtual (TFS_VPC) quiero conectarme al dominio de la primera virtual.

Pero el mensajito de arriba, me puso el primer obstáculo. El problema es que las dos virtuales tuvieron la misma base, es decir, cree una virtual con el software base (updates, services packs, y todo eso) e hice dos copias una para AD_VPC y otra para TFS_VPC. Y debido a esto las dos virtuales tiene el mismo SID.

No, no hay que crear otra virtual desde cero. Para cambiar el SID de una virtual, sólo tenemos que descargar la herramienta NewSID, ejecutarla sobre la virtual (TFS_VPC) en la que deseemos cambiar el SID, y problema solucionado. Obvio, que para cambiar el SID debemos iniciar sesión sobre la PC, reiniciamos y ya podemos iniciar sesión sobre el dominio.

Fuentes:

Saludos,

Post cruzado

Serie de articulos: Cazando mitos en ADO.NET

El título también pudo ser: “Serie de artículos: Destripando a ADO.NET”, pero creo que no se leía bien :S.

Excelente serie de Artículos del amigo Carlos Walzer:

  1. Anti Prácticas .NET: Lectura de Datos con ADO.NET. En esta entrada se resuelve el mito:  “El DataReader es más rápido que un DataSet“. Se muestra a detalle un versus del uso de DataSet vs DataTable vs DataReader, los tiempos que demoran los queries, y como podemos optimizarlos. Esto último hay que resaltarlo bastante, si bien estamos tras la caza de un mito, también podemos ir tras los mitos de nuestras propias aplicaciones y ver el porqué de los cuellos de botella.
  2. Anti Prácticas .NET: Lectura de Datos con ADO.NET II. El mismo artículo, pero a mi pedido agregando ahora Lista genérica para pasarlo entre las capas, y compararlo con los técnicas usados en el artículo anterior.
  3. Anti Prácticas .NET: Lectura de Datos con ADO.NET III. En este artículo se agrega el uso del asistente de Visual Studio y crear un DataSet tipificado para acceder a la data. Además se muestra un resumen comparativo en tiempos del uso de las diversas técnicas, y se hacen algunas conclusiones.

Para los artículos Carlos, utilizo la herramienta dotTrace 3.0, otra herramienta que podríamos usar pero con distintas features, es el Profiler de Visual Studio. Por cierto, dotTrace 3.0 es una herramienta, aquí su lista de las features.

P.D.: Interesante serie, no se la pierdan.

Saludos,

Post cruzado

Live Meeting 2005 Replay Wrapper… para ver los WebCast con canchita

Live Meeting 2005 Replay Wrapper es una máscara para Windows Media Player, que te permite verlos con tu canchita al costado mejorar la experiencia, al ver un WebCast bajo demanda:

En esta imagen estamos viendo un WebCast de Carlos Walzer, sobre Herramientas para mejorar el desempeño de las aplicaciones .NET Framework, recomendable :D. Como se puede apreciar en la imagen, podemos navegar sobre la agenda del WebCast (slides y demos), podemos ver el presentador, y además ver las preguntas y respuestas hechas durante el WebCast. Aunque en este webCast no pude moverme a través de la agenda, creo que no se descargo correctamente :S, en otros funciona correctamente.

Si quieren estar al tanto de WebCast en espaniol pueden visitar MSDN WebCast (espaniol-latam), y si nos perdimos un WebCast, no lo entendimos a la primera, quiero que lo vea mi mamá si soy el presentador, o quiero revisarlo a más detalle, podemos verlos bajo demanda:

Y en inglés que hay muchos más WebCast:

Saludos,

Post cruzado

deployment de aplicaciones Web ASP.NET… pero en mi PC funcionaba

“pero en mi pc funcionaba”…. es lo único que te queda decir si estas en una presentación con tus jefes y nos probado previamente que el sitio este funcionando correctamente en el Servidor Web.

Vayamos al tema, tengo mi aplicación web y mi jefe me pidió una pequeña presentación del avance. Como sabemos con Visual Studio 2005, tenemos la herramienta Publish Web Site, Luis tiene una entrada también, con la cual podemos hacer esta tarea fácilmente. Y como en tu PC todo funciona bien, dices: -deme 5 minutos, lo subo al servidor Web y lo vemos desde su oficina.

Contento y tranquilo, compilas, todo bien, publicas al Servidor Web desde Visual Studio, y te salió el mensajito “Publish succ…”. Vas a la oficina y tienes la siguiente pantalla:

Imagen a: CustomErrors, en mode=On.

Y te dicen: -Y qué paso?. Tu respondes: -Pero en mi PC funcionaba. Pides 10 minutos más, 5 te la pasas buscando en Google, por ahí lees una sugerencia de cambiar algo en el web.config, de mode On, a mode Off. Lo haces y vas nuevamente a la oficina del Jefe, -Puede probar de nuevo?:

Imagen b: CustomErrors, en mode=Off.

Ahora cambio el error, y dependiendo del humor de tu jefe, lo que te diga puede variar :D. Y dejas la oficina repitiendo en tu mente, pero en mi PC funcionaba.

Vamos analizar la situación. La Imagen a, es un error clásico y que siempre se ve por lo foros, y se tiende a confundir el problema, ya que algunas veces se plantea como solución poner a CustomErrors en mode=Off, y en sí, el problema no depende del elemento CustomErrors del archivo web.config. El problema es de nuestra aplicación Web, pero al ver el error de la Imagen a, podemos tener el alivio de que nuestra servidor Web tiene la configuración básica para funcionar, ya que si tuviéramos un Server Application Unavailble en el navegador, tendrías un problema con el IIS, y específicamente con el Application Pool. Otro problema que podemos tener, y que suceda antes de que el request llegue a la aplicación web, es que nuestra Aplicación Web tenga una asignada una versión distinta de .NET Framework a la que usa. Como decíamos, si tienes el error de la Imagen a, alégrense por que el error es su Aplicación Web, y sobretodo porque hoy vamos a aprender algo nuevo :).

El error puede ser por muchas cosas, no hay conexión el servidor de base datos, hay un objeto que no se instanció, el usuario que estamos usando no tiene permisos en la base de datos, no tenemos permisos para escribir en el disco duro, o por ahí alguien dejo un bugsito :).

El elmento CustomErrors del archivo web.config, nos ayuda a mejorar el manejo de errores en nuestra Aplicación Web ASP.NET. Por eso al poner CustomErrors en modo On, lo que estamos haciendo es ocultar la información del error al usuario final. Si lo ponemos en modo Off, lo que haremos es mostrar las errores tal y como son, y dependiendo del error, puedes decirle al usuario: error for login “tuLogin” al conectarse al servidor “tuServidor”. Por cuestiones de seguridad y por apariencia del sitio Web, se tiende a no mostrar directamente el error al usuario final.

CustomErrors, podemos configurarlo desde el archivo web.config, o través del Snap-in de ASP.NET para el IIS:

Imagen c: Habilitar los errores personalizados sólo usuarios remotos, y los vamos a direccionar a la página Error.aspx.

 Ahora cada vez que haya un error, y un usuario acceda al Sitio Web, verá esta página:

Imagen d: Sitio Web con un mensaje de error personalizado.

Aunque se puede mejorar el mensaje de error, lo importante es que podemos hacerlo. Este redireccionamiento se puede personalizar aún más, pero eso lo veremos en otra entrada. Para poder redireccionar a una página de error puede ser en los modos On o Remote Only, en modo On, todos los pedidos serán redireccionados a la página de error, pero en modo “Remote Only”, todos a excepción de los pedidos que se realicen desde del Servidor Web. Es decir que en modo Remote Only, vamos asegurarnos que todos los usuarios que visitan la página web verán nuestro error personalizado, pero si vemos la Aplicación Web desde el Servidor Web, y hay algún errorcillo, vamos a ver la descripción del error como en la Imagen b.

El error puede ser tan sencillo como iniciar el servicio de SQL en el servidor de Base de datos, habilitar las conexión remotas, o sólo cambiar las cadena de conexión, y el sitio Web estará funcionando en el Servidor Web, al igual que en tu PC :D:

Imagen e: Ahora ya no funciona sólo en tu PC, si no también en el Servidor Web.

P.D.: Una vez que encuentren el error, recuerden que la peor opción es ponernos a depurar la aplicación Web usando Visual Studio, existen herramientas como SQL Profiler que nos permiten dar un diagnostico sin depurar. Por ejemplo puede ser sólo que nos olvidamos de agregar un campo a la base de datos de pruebas, que si tiene la base de datos de desarrollo, y por eso tu decías: pero en mi PC funcionaba… y continuará xD!

Saludos,

Post cruzado

MCPD 70-547: Creando y seleccionando Controles

Damos inicio a la serie de post, basados en los temas de preparación para el examen 70-547. Si eres MCTS en Web y das este examen, podrás ser MCPD Web Developer.

Para clasificar los post me basaré en la tabla de contenidos del libro: MCPD Self-Paced Training Kit (Exam 70-547): Designing and Developing Web-Based Applications Using the Microsoft® .NET Framework. Aunque lo que describa en las entradas no necesariamente tiene que estar en el Training Kit, usaré otros libros y a la gran internet para completar lo que sea necesario. Y como dije, además de solamente tratar los temas técnicamente, también lo haré desde el punto de vista de cómo podemos aplicarlo en lo que estamos desarrollando o trabajando.

Por cierto, con Visual Studio 2008 se mantendrán las certificaciones MCTS y MCPD. Eso se intuye, aunque de repente por ahí sale alguna mención en VS2008, son cosas que estoy suponiendo :D. Pero lo que sí es claro es que los temas del lado técnico usando VS2005, serán base de VS2008, por ejemplo en ASP.NET con VS2008, no habido un cambio radical como lo hubo de VS2003 a VS2005, se agregado nuevos controles para explotar las nuevas versiones de los lenguajes, aquí tenemos al control LinqDataSource, y también se mejorado el entorno de VS2008 para el desarrollo Web. Pero no hay pierde en aprender a usar Visual Studio 2005 con ASP.NET 2.0.

En un inicio voy hablar sólo de los temas, y si da el tiempo y los comentarios lo piden, haré algunos ejemplos, pero si dejaré enlaces con ejemplos en código.

Vayamos al tema: ¿Cuándo debemos crear y usar controles en nuestra aplicación Web?.

En internet hay muchos ejemplos de código de cómo crear controles de usuario y controles web personalizados, pero muy pocas veces queda claro cuando debemos controles, y cuando te das cuenta que necesitas un control, surgue la pregunta, debemos crear un control de usuario o un control personalizado?.

Según las fases del ciclo de vida del desarrollo de Software, después de la fase de análisis y diseño, todo debe estar claro, clarísimo, deben estar terminados todos los requerimientos, los bosquejos de las pantallas de interfaz de usuario deben estar terminadas, bajo esa premisa es fácil darse cuenta que interfaz de usuario se repiten en todos los casos, obteniendo así las posibles interfaces a reemplazarse por controles. Que bonito fuera que siempre pasará eso, pero muchas veces se tiene que iniciar el desarrollo sin esto terminado, así que el uso de controles será un poco intuitivo, o también será dado por la experiencia. Por ejemplo controles de búsqueda o controles de menú de mantenimiento, son siempre básicos, y que se repetirán a lo largo de una aplicación.

Si no tenemos claro cuando crear controles. Podemos seguir estas tres pautas básicas:

  1. Revisar y verificar si existen controles de ASP.NET, que cumplen con lo que nosotros necesitamos:
  2. Imaginemos que necesitas un editor de texto, pero enriquecido?, el textBox se puede quedar chico para cumplir esta tarea, el siguiente paso es buscar si hay algún control en internet que cumpla con lo que necesitamos. Por ejemplo un editor enriquecido para asp.net es el FreeTextBox. En este caso es un control gratuito, también podemos encontrar varios sitios en internet que venden juegos de controles, acá debemos evaluar el coste/beneficio/tiempo. Si te va tomar unos meses crear tu juego de controles y sólo tienes tres meses para terminar una aplicación, o si el proyecto tiene un poco más de tiempo  y hay un tiempo asignado para la creación de un juego de controles, son puntos puntos de vista sobre los cuales partir para tomar una decisión. Claro tampoco debemos pensar que comprar los controles más caros, más bonitos, y más útiles, nuestra aplicación ya está terminada.
  3. En el caso de que, el control que necesitemos no venga en ASP.NET, o no exista un control en internet, tendremos que desarrollarlos nosotros mismos. A este punto también podemos llegar por que hemos notado interfaces de usuario comunes en nuestra aplicación y es mejor hacerlas un control, por ejemplo para menús de mantenimiento o para controles de búsqueda. Dependiendo de las páginas también podemos usar controles para reducir la complejidad y el trabajo de mantenimiento de la misma.

Ahora una vez que tenemos noción de crear un control, que debemos crear un control de usuario o custom control?, disculpen nuevamente el anglicismo pero es más rápido escribir Custom Control que Control Personalizado 😀 y también por comodidad xD.

Cuando podríamos usar un Control de Usuario o User Control:

  • Controles búsqueda, si es que sólo serán usados en nuestro sitio Web, además que es más sencillo hacer un control de usuario que un custom control.
  • Si tenemos pequeños Gadgets en nuestra aplicación que pondremos en varias páginas, por ejemplo una lista rápida de las últimas 10 noticias, o los usuarios conectados. Nuestro cerebro debe estar programado de tal manera que si vemos que una interfaz la usamos dos veces, es porque podemos reemplazarlo un control de usuario. Y no dejarlo para más adelante, ya que hacer el cambio a más 20 páginas que usan la misma interface no es lo mismo que hacerlo a dos páginas.
  • Reducir la complejidad en una página Web. Cuando en una página web (sin incluir la master page, si es que estamos usando), sobrecargamos demasiado la interfaz de usuario, se hace difícil el mantenimiento, para reducir esto podemos usar controles de usuario para reducir la complejidad y el mantenimiento. La división debe ser de acuerdos a las tareas que se estén realizando, tampoco vamos a hacerlo más complejo al intentar dividir en un control de usuario una partecita de cada tarea.

Y cuando, un Custom Control o Control Personalizado:

  • Necesitamos un control adicional, por ejemplo necesitamos un Calendar como un DateTimePicker pero para ASP.NET. Si no tenemos presupuesto para comprar un control de esto, o necesitamos uno más personalizado al que hay en la web, podemos crear nuestro propio control.
  • Cuando tengamos algún control necesitemos usar en otras aplicaciones Web, por ejemplo nuestro Calendar++, puede ser parte de nuestro propio juego de controles, y podemos usarlo en cualquier aplicación web que deseemos.
  • Necesitamos soporte en diseño del control, mayor personalización agregar eventos a la ventana de propiedades, mayor personalización en el render del control, podemos resumir que necesitamos un control con más interacción al momento de usarlo o tiempo de diseño.
  • Se necesita tener el control en un ensamblado (dll), para pueda ser usando en cualquier aplicación Web, además también se puede necesitar que sea registrado en el GAC.

Por cierto no es que los controles de usuario, no se puedan utilizar en otros sitios Web, si pueden, pero tienes que agregarlos como elementos existentes, en cambio un custom control, lo puedes tener una ensamblado. Aunque siempre hay la excepción a la regla, y podemos hacer algo para poder reutilizar un control de usuario en otra aplicación Web, leer el primer comentario hay un link para otra opción de hacer lo mismo.

Ahora en cuanto los controles de usuarios, para recuperar o pasar valores podemos agregar propiedades, para tomar alguna respuesta ante alguna acción dentro del control podemos levantar un evento, podemos soportar Templates con los controles de usuario, aquí algunos artículos sobre esto:

En cuanto a los Controles Web Personalizados (Web Custom Control), tenemos tres formas básicas de crearlos. Desde cero, heredando de la clase WebControl, juntando controles existentes heredando de la clase CompositeControl, y extendiendo un control existente heredando del mismo control. Algunos artículos referente a estas tres formas:

Ahora veamos otras características que se pueden agregar a los custom controls:

Algunas versus:

P.D.: Y pensé que poniendo código, el post se iba a ser muy extenso :S.

Saludos,

Post cruzado