Una de las características que más repercusión ha tenido en ASP.NET Web Forms, y que personalmente creo que ha sido clave en el éxito, es la posibilidad de crear controles personalizados o extender los ya existentes. Esta característica está presente desde la aparición de .NET, donde en principio, únicamente existía un tipo de proyecto web dentro de la plataforma, poco a poco ha ido evolucionando y dejando pasos a nuevos paradigmas como ASP.NET MVC, ASP.NET Web API, etc. Sin embargo Microsoft sigue apostando por esta tecnología, ASP.NET WebForms nos permite un rápido desarrollo de aplicaciones (RAD Application) basadas en Arrastrar y Soltar, crear componentes visuales reutilizables, paradigma de programación similar al de una aplicación de escritorio, hacen que resulte una opción a tener en cuenta para algunos escenarios como por ejemplo una aplicación utilizada en una intranet local, pequeñas aplicaciones puntuales dirigidas por datos.
¿Con todo esto quiero decir que no tengamos en cuenta otras opciones cuando se trate de aplicación para intranet? No de ningún modo, la idea que trato de plasmar es que si dispones de una aplicación con Web Forms puedes sacar mucho partido de ella, y no porque otro paradigma como ASP.NET MVC, sea más acertado para el escenario X debes tirarla a la basura y rehacerla de todo.
Bueno, y después de este disclaimer de porque un domingo del 2014 me pongo a postear sobre Web Forms, es para hablaros de una característica no muy conocida, y que nos facilita un poco más la labor de extender controles.