Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: spiritdead en 1 Octubre 2012, 06:16 am



Título: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 1 Octubre 2012, 06:16 am
buenas tardes a todos queridos elhacker, pues pensando que sabia bastante de este lenguaje vb.net pero valla que estaba equivocado, descubri estos 2 namespaces muy interesantes
(reflection,codeDOM) y me gustaria q vieran 1 ejemplo y os subire unas pics de como puedo crear un programa, que es capas de compilar tambien!

codigo usado en el compilador dinamico

todos estos examples son pruebas que realizo, para incorporar los modulos a mi programa principal (http://foro.elhacker.net/net/mi_software_fdt-t366926.15.html (http://foro.elhacker.net/net/mi_software_fdt-t366926.15.html)) y permita que programadores puedan crear scripts potentes, y darle mayor dinamismo a la plataforma :D

Código:
dim w as new form()
dim p as new label()
w.suspendlayout()
p.autosize=true
p.location = new point(117,128)
p.text="soy el primer label creado dinamicamente"
p.tabindex=0
w.autoscaledimensions=new sizeF(6.0!,13.0!)
w.autoscalemode=AutoScaleMode.Font
w.ClientSize = New Size(284, 262)
w.text="Soy el primer form creado dinamicamente"
w.resumelayout(false)
w.PerformLayout()
w.controls.add(p)
w.show()

y una muestra :D

(http://i1206.photobucket.com/albums/bb451/spiritdead/prueba1.jpg)

uso namespace Reflection y CodeDOM!


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: Maurice_Lupin en 1 Octubre 2012, 20:40 pm
muy bueno el CodeDom.

Aqui un bello ejemplo, incluso crea variables  ;D lo que estaba buscando.

http://www.codeproject.com/Articles/12852/Compile-and-Run-VB-NET-Code-using-the-CodeDom

Saludos.


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 1 Octubre 2012, 20:50 pm
de ahi me guie, pero yo expandi el codigo, añadi mas librerias, y optimize muchisimo mas el codigo :) porque ese no permite el uso de sintaxis de winform, ni drawing XD


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: Maurice_Lupin en 1 Octubre 2012, 21:05 pm
umm, si puedes postea un ejm pequeño.

Saludos.



Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 1 Octubre 2012, 22:32 pm
bueno continuo mejorando, añadiendole eventos,etc y estoy comenzando la implementacion en mi proyecto despues de largas pruebas 1 ejemplo

(https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-snc7/458654_521488051210335_1549601364_o.jpg)

aca 1 foto de una correcta compilacion

(https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-ash4/330443_521495921209548_1530313659_o.jpg)

aca esta 1 version mas actual, aun sigo mejorando la interface y añadiendo mas propiedades y opciones

(https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-ash3/615750_521643304528143_1152062499_o.jpg)


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: Novlucker en 2 Octubre 2012, 17:59 pm
¿Con que te refieres a scripts potentes?

Si la idea es poder extender el programa, entonces define un sistema de plugins :P

Saludos


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: Maurice_Lupin en 4 Octubre 2012, 17:23 pm
Una consulta, se puede modificar una variable declarada en el exe mediante este método.

Por ejem incrementar una variable contador desde un script. Estoy buscando info  :(

Saludos.


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 5 Octubre 2012, 07:23 am
Una consulta, se puede modificar una variable declarada en el exe mediante este método.

Por ejem incrementar una variable contador desde un script. Estoy buscando info  :(

Saludos.
la verdad no te sabria responder, aun estoy experimentando con el namespace codeDOM y que yo sepa creo que no, ya que es como compilar 1 .exe completo, solamente q yo los genero en memoria para evitar crear tantos exe


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 5 Octubre 2012, 07:25 am
¿Con que te refieres a scripts potentes?

Si la idea es poder extender el programa, entonces define un sistema de plugins :P

Saludos
si supieras que estoy buscando el "metodo" para permitir plugins instalables como hace el firefox, pero mis conocimientos no llegan a ese nivel, que al instalar 1 complemento modifique el .exe original realmente es dificil :/ si lograra conseguir 1 ejemplo por mas minimo que fuera podria tener 1 idea y poder explorarla hasta mejorarle como estoy haciendo con el namespace codeDOM y reflection


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: kub0x en 5 Octubre 2012, 13:23 pm
Buenas spiritdead,

te queria preguntar si la clase para crear subprogramas dentro del programa original permite interactuar con clases incluidas dentro del proyecto. Es decir, ¿Podría llamar a cierta clase incluida en el proyecto utilizando la clase que mencionas?.

Gracias


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: Maurice_Lupin en 5 Octubre 2012, 14:42 pm
buscando en google:

http://www.dreamincode.net/forums/topic/110542-plug-ins/
http://www.divelements.co.uk/net/articles/plugins/plugins.asp
http://geekswithblogs.net/WTFNext/archive/2009/05/06/how-to-create-a-plugin-architecture-in-vb.net.aspx
http://vbnotebookfor.net/2007/10/09/how-to-create-application-plug-ins-in-vbnet/

Ahora a leer se ha dicho  :(
Saludos.


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: seba123neo en 5 Octubre 2012, 15:04 pm
si supieras que estoy buscando el "metodo" para permitir plugins instalables como hace el firefox, pero mis conocimientos no llegan a ese nivel, que al instalar 1 complemento modifique el .exe original realmente es dificil :/ si lograra conseguir 1 ejemplo por mas minimo que fuera podria tener 1 idea y poder explorarla hasta mejorarle como estoy haciendo con el namespace codeDOM y reflection

segun mis pocos conocimientos sobre el tema plugin, que yo sepa los plugins no modifican el .exe. simplemente son "extensiones" por asi decirlo del programa, el cual el .exe debe estar preparado para reconocer y permitir ejecutarlos sin necesidad de volver a compilar el .exe original.

por tirar un ejemplo facil, el programa CCleaner cuando vas a seleccionar el idioma del programa tiene como 30 lenguajes, esos lenguajes si te fijas en la carpeta de instalacion, estan guardados en una carpeta con extension .dll, si yo borro alguno de esos archivos cuando voy al programa ya no existen y no puedo usarlos. y si me llegaria a crear yo un nuevo lenguaje y pongo ahi la .dll, el programa estaria listo para usar el lenguaje creado por mi con esa .dll nueva.

otro ejemplo es la widget library, eso si son plugins, el programa original simplemente reconoce los archivitos de los widget y los carga al sistema y permite ejecutarlos, yo me puedo crear 20 widgets y agregarlos sin la necesidad de modificar nada del .exe original.

si buscas en internet encontras en 2 segundos ejemplos de plugins en .NET, explicados, creo que aca ya se habia publicado algo en el foro, de ultima busca.

saludos.


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: 79137913 en 5 Octubre 2012, 15:25 pm
HOLA!!!

segun mis pocos conocimientos sobre el tema plugin, que yo sepa los plugins no modifican el .exe. simplemente son "extensiones" por asi decirlo del programa, el cual el .exe debe estar preparado para reconocer y permitir ejecutarlos sin necesidad de volver a compilar el .exe original.

por tirar un ejemplo facil, el programa CCleaner cuando vas a seleccionar el idioma del programa tiene como 30 lenguajes, esos lenguajes si te fijas en la carpeta de instalacion, estan guardados en una carpeta con extension .dll, si yo borro alguno de esos archivos cuando voy al programa ya no existen y no puedo usarlos. y si me llegaria a crear yo un nuevo lenguaje y pongo ahi la .dll, el programa estaria listo para usar el lenguaje creado por mi con esa .dll nueva.

otro ejemplo es la widget library, eso si son plugins, el programa original simplemente reconoce los archivitos de los widget y los carga al sistema y permite ejecutarlos, yo me puedo crear 20 widgets y agregarlos sin la necesidad de modificar nada del .exe original.

si buscas en internet encontras en 2 segundos ejemplos de plugins en .NET, explicados, creo que aca ya se habia publicado algo en el foro, de ultima busca.

saludos.

+999

Ademas, el sistema de scripts es para hacer cosas on the fly , rutinas rapidas para no recompilar, pero se suelen usar para tareas simples y aisladas (ejemplo un parche que mandas por internet y el programa ejecuta) no para algo que abras todos los dias, para eso es necesario un sistema mas robusto como dice seba.

GRACIAS POR LEER!!!


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: Maurice_Lupin en 5 Octubre 2012, 15:34 pm
encontre lo que buscaba. Aqui (http://www.divelements.co.uk/net/articles/plugins/pluginssample.zip)

 ;D


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 5 Octubre 2012, 21:43 pm
Buenas spiritdead,

te queria preguntar si la clase para crear subprogramas dentro del programa original permite interactuar con clases incluidas dentro del proyecto. Es decir, ¿Podría llamar a cierta clase incluida en el proyecto utilizando la clase que mencionas?.

Gracias

por ahora son ajenas al codigo original, pero no ajuro :P la cosa es que es muy complicado


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 5 Octubre 2012, 21:46 pm
encontre lo que buscaba. Aqui (http://www.divelements.co.uk/net/articles/plugins/pluginssample.zip)

 ;D

wow, estoy revisandolo, y capas podria hacer que el algoritmo de codeDOM generara DLL, y guardarlas en 1 carpeta, hmmmm es interesante este asunto de verdad

lo revisare despues, porque la estructura del programa me complicaria la insercion de plugins, pero posiblemente cuando tenga mas tiempo, podria hacer 1 rediseño fuerte para permitirme usarles pero me gusto la verdad


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 5 Octubre 2012, 22:03 pm
usando un control llamado ICSharpCode.texteditor
miren como quedo
(http://i1206.photobucket.com/albums/bb451/spiritdead/prueba5.jpg)
mejorando cada dia =)


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: Novlucker en 5 Octubre 2012, 22:54 pm
Para extender tu app puedes utilizar MEF

Saludos


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 5 Octubre 2012, 22:56 pm
Para extender tu app puedes utilizar MEF

Saludos

si pudieras explicarme un poco que vendria siendo MEF :P


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: Novlucker en 5 Octubre 2012, 23:10 pm
http://mef.codeplex.com/
http://fernandomachadopiriz.com/2010/04/15/simple-introduccin-al-microsoft-extensibility-framework/ ;)


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 5 Octubre 2012, 23:11 pm
http://mef.codeplex.com/
http://fernandomachadopiriz.com/2010/04/15/simple-introduccin-al-microsoft-extensibility-framework/ ;)
suena interesante

por cierto busco programadores de alto nivel de experiencia y diseñadores para este proyecto

es 1 proyecto freelancer, pero si genera ingresos se divide segun su aporte!


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: spiritdead en 6 Octubre 2012, 10:32 am
nuevos avances

nueva posibilidad de usar "eventos-raiseevent-withevents" dentro de los scripts como tambien uso de timers,etc aumentando casi al 100% la posibilidad de utilizar los objetos que permite el framework!

:D 1 ejemplo!

Código:
Imports System
Imports System.Xml
Imports System.Data
Imports Microsoft.VisualBasic
Imports System.Drawing
Imports System.Windows.Forms
'imports aditionals here
Namespace FDT 'no edit
Class ModuleFDT 'no edit
'global variable here
dim t as new form
dim withevents w as new button
Sub Main() 'no edit
'code initialization here
w.text= "test"
t.text="form de prueba"
t.controls.add(w)
t.show()
End Sub 'no edit
'rest code here,subs,functions
private sub w_click(byval sender as object,byval e as system.eventargs) handles  w.click
msgbox("soy un mensaje generado por 1 evento")
end sub
End Class 'no edit
End Namespace 'no edit
(http://i1206.photobucket.com/albums/bb451/spiritdead/prueba7.jpg)


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: LordBynary en 19 Enero 2015, 22:02 pm
nuevos avances

nueva posibilidad de usar "eventos-raiseevent-withevents" dentro de los scripts como tambien uso de timers,etc aumentando casi al 100% la posibilidad de utilizar los objetos que permite el framework!

:D 1 ejemplo!

Código:
Imports System
Imports System.Xml
Imports System.Data
Imports Microsoft.VisualBasic
Imports System.Drawing
Imports System.Windows.Forms
'imports aditionals here
Namespace FDT 'no edit
Class ModuleFDT 'no edit
'global variable here
dim t as new form
dim withevents w as new button
Sub Main() 'no edit
'code initialization here
w.text= "test"
t.text="form de prueba"
t.controls.add(w)
t.show()
End Sub 'no edit
'rest code here,subs,functions
private sub w_click(byval sender as object,byval e as system.eventargs) handles  w.click
msgbox("soy un mensaje generado por 1 evento")
end sub
End Class 'no edit
End Namespace 'no edit
(http://i1206.photobucket.com/albums/bb451/spiritdead/prueba7.jpg)

Hola"spiritdead" quisiera que me ayudes con una pregunta sobre CodeDom y Reflection:
- He estado viendo el ejemplo de: http://www.codeproject.com/Articles/12852/Compile-and-Run-VB-NET-Code-using-the-CodeDom
y de hecho he modificado un par de cosas, pero mi pregunta es: Cómo puedo modificar una propiedad de un control dinámicamente osea por ejemplo:
- escribir dentro de un TextBox1 que se deshabilite TextBox2.Enabled=False al presionar el Button1, me entiendes?
como haría eso, ya que cuando le mando la propiedad por escrito me sale que no se puede modificar la propiedad de esa maner, sino tiene que ser de manera explícita por el usuario en el código.
entonces como haría eso??? ya que tu lo haz hecho, sólo necesito esa línea!!! pleaseee ayudaa!!!


Título: Re: 1 muestra del poder de la programacion dinamica
Publicado por: Eleкtro en 19 Enero 2015, 23:01 pm
@LordBynary

Está prohibido revivir temas antiguos, además, fíjate en la fecha de conexión del usuario SpiritDead en su perfil, dudo que vaya a responderte.



Para modificar en tiempo de ejecución la propiedad de un control teniendo solamente un string del tipo "Control.Property = Value", puedes hacerlo utilizando Reflection.
Pero no entendí muy bien si es eso lo que pretendes hacer.

Plantea tu duda de forma correcta en otro tema, y muestra tú código.



Tema cerrado.

Saludos.