Recuerdan los controles ActiveX de VisualStudio 6? No debe ser tan difícil, hoy en día se siguen utilizando en varios sitios web, pero para breviario programático diremos que un control ActiveX es algo asi como la contraparte de los Applet de java en la plataforma COM de Microsoft, es decir, un programa con interfaz de controles estilo Windows que se pueden ya sea acoplar a proyectos de aplicaciones de escritorio dentro de una ventana o incorporar dentro de una página web con el tag <object> de HTML. En la plataforma .NET de Microsoft, ya no se pueden crear controles ActiveX de manera directa, sin embargo podemos crear un ensamblado que funcione de manera similar.
Lo primero que tenemos que hacer es crear un proyecto de Biblioteca de Controles de Windows en VisualStudio (2003 o 2005), el cual nos dará como resultado una dll. Dentro del proyecto insertamos un nuevo control que herede de System.Windows.Forms.UserControl por ejemplo:
//Este control tiene un TextBox llamado cajaTexto al que le asignamos la propiedad Texto del control
namespace MiControl
{
public partial class MiControl : UserControl
{
private string m_texto;
public string Texto
{
get
{
return m_texto;
}
set
{
m_texto = value;
cajaTexto.Text = value;
}
}
public MiControl()
{
InitializeComponent();
}
}
}
Despues de compilar el proyecto anterior, creamos un proyecto de sitio web en VisualStudio y copiamos al directorio raíz del sitio web nuestra dll de controles y dentro del WebForm principal agregamos el tag de object de la siguiente manera:
<object id="miControl1" name="miControl1" classid="MiControl.dll#MiControl.MiControl">
<param name="Texto" value="ejemplo de texto">
</object>
Donde el atributo classid ya no es un extraño número identificador de COM, sino una cadena compuesta de el nombre de nuestra dll, un # y por último el nombre completo de nuestro control, con namespaces. Ahora bien, podemos asignar las propiedades de nuestro control con el tag <param> y los atributos name y value como se muestra en el ejemplo.
Por último hay que mencionar algunas observaciones y limitaciones de poner controles windows en una página web. Para que todo esto funcione correctamente es necesario al momento de publicar nuestra web poner los permisos de ejecución del directorio de IIS en Sólo Scripts, por consiguiente la segunda es que solo funciona en IIS e Internet Explorer como cliente, además de que cliente y servidor deber tener el Redistributable del .NET Framework instalado. Si no nos importa lo anterior y de todas formas queremos hacerlo, otra limitante es la seguridad de .NET Framework que no nos va a dejar hacer casi nada (acceder al sistema de archivos, a la red, etc.) si no configuramos la directiva de seguridad del mismo en Panel de control/Herramientas Administrativas/Configuración de Microsoft .NET Framework X.X/Mi PC/Directiva de seguridad en tiempo de ejecución/Ajustar Zona de seguridad, en cada cliente que queramos que utilice nuestro control desde el navegador, lo cual puede funcionar para una intranet pero no para una página pública, y la última y más importante es que como el control se ejecuta en el cliente, nosotros desde ASP.NET no podemos acceder al estado y las propiedades del control de manera directa. Sin embargo, ésta técnica es útil cuando tenermos un control hecho y no queremos implementarlo de nuevo en ASP.NET (como fue mi caso jejeje). Me despido, au revoir!
Suscribirse a:
Comentarios de la entrada (Atom)
3 comentarios:
Oh si, hablando de dlls al rato postearé como controlar una webcam con las dlls estandar de windots ... me late cacahuate.
Ya entiendo, yo no estudio para Ingeniería en Computación, yo estudio Ingenieria Electrica-Electronica, no soy el dios programando, pero aqui en mi casa soy un dios soy root, yo tambien pongo cosas en mi blog acerca de las cosas que me gustan, siempre, si no para que lo hago?
Gracias por la ayuda, pero en mi caso tengo que obtener la Notacion O-Grande, del código agenda: y muchas cosas más, tiempo de ejecución, me dicen que es para ver la eficiencia del programa, necesito modificarla, tal vez tu puedas ayudarme, necesito que esa agenda ordene por nombre, la restricción es que sea en C, no java no c++, no nada: C, lo que no pude hacer fue ordenar nombres, y además me pidieron comentar todo, para alguien de filos que no sabe nada de programación que lea y que entinda, cha, con esos ojetes, pero ps asi son, gracias por tu comentario, ya que no entendí el que me habías hecho
pos yo estudio en filosofia y letras y vivo de esto de la programada...
Publicar un comentario