Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » En Comunidad » Proyectos » Proyecto en formato ventana Responder al tema
Nuevo tema


Página 1 de 2  [ 22 mensajes ]  Ir a página 1, 2  Siguiente
 
Nota 2011-04-14 00:39 @068

Perlero Adicto
Registrado: 2009-10-28 13:50 @618
Mensajes: 225
Proyecto en formato ventana
Buenos días gente, estoy por comenzar con un proyecto y nuevamente estoy barajando utilizar Perl que me dio tan buenos resultados. El tema es que tendré que tener una interfaz tipo ventana. Por ello les pregunto basándose en su experiencia qué módulo usarían para comenzar con una aplicación para usuarios en tipo ventana… y que me permita mostrar posteriormente fotos y/o vídeos…

Bueno, desde ya muchas gracias al que responda… y saludos a todos.


Nota 2011-04-14 07:36 @358

Perlero Adicto
Registrado: 2009-10-28 13:50 @618
Mensajes: 225
Aplicación web como aplicación de escritorio
Hola, buenas, necesito conocer qué experiencia tuvieron con HTTP::Server::Simple, ya que la idea es montar la aplicación en web PHP como si fuera una aplicación de escritorio.

Desde ya, muchas gracias.


Nota 2011-04-14 07:57 @373
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Aplicación web como aplicación de escritorio
Si la aplicación será en PHP, necesitas, además del servidor web, un intérprete de PHP, además del intérprete de Perl.

Ese módulo (y casi todos los otros módulos Perl que hacen de servidor web) pueden realizar esa labor sin muchos problemas, pues su trabajo consistiría en derivar la presentación de una página PHP hacia el intérprete de PHP y esperar la respuesta.

Yo, de todas maneras, si se trata de hacer una aplicación sencilla de escritorio, la escribiría en XUL, y el cliente solo tendría que tener instalado el Mozilla Firefox.

Me parece que hay software que permiten empaquetar el Apache en un ejecutable, por lo que sería la mejor solución, en caso de seguir dependiendo de la presencia de un servidor web.

_________________
JF^D Perl programming


Nota 2011-04-14 08:17 @386

Perlero Adicto
Registrado: 2009-10-28 13:50 @618
Mensajes: 225
Re: Aplicación web como aplicación de escritorio
Ok, entendido, pero me queda la duda del intérprete de PHP. ¿Hay algún módulo que permita esta función desde Perl sin tener que instalar el PHP desde fuera? Pregunto esto porque la idea es empaquetar todo desde un exe, que cargue en memoria la aplicación y luego la borre cuando cierra.

La aplicación la planteo desde PHP más que nada por la comodidad de la parte gráfica, formularios.

Gracias por la respuesta.


Nota 2011-04-14 09:37 @442
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Aplicación web como aplicación de escritorio
En CPAN encontrarás algunos módulos relativos a PHP. Incluso uno de ellos se llama precisamente PHP, que dice que es capaz de ejecutar código PHP dentro de Perl. Pero viendo el fichero de instalación de este módulo, se ve que depende de la librería libphp y del ejecutable php-config para saber qué versión de PHP está instalada en el sistema.

Si quieres empaquetarlo todo junto, estarás obligado a incluir el intérprete de PHP.

Dices que quieres usar PHP para la parte gráfica. Eso indica que no has profundizado en las capacidades gráficas de Perl: desde la llamada a las funciones HTML del módulo CGI, hasta el uso de sistemas de plantillas, que comenzarían por HTML::Template, NES, o incluso soluciones iguales a PHP, pero con Perl: PLP. Con estos últimos podrás programar en Perl dentro de páginas HTML.

Para aplicaciones muy simples, me vale con las funciones HTML de CGI.pm. Para aplicaciones de tipo medio, CGI::Application con sistema de plantillas de HTML::Template, pero cada vez hay soluciones más y más simples, aunque requieren dominar un espacio de nombres nuevo, en cada ocasión. Son los entornos de trabajo web, como Catalyst, Mojolicious o Dancer. Cada uno de ellos requiere un esfuerzo de aprendizaje, pero enseguida se empiezan a obtener resultados, y los sitios web se pueden crear muy rápidamente.

He encontrado una web que analiza paquetes de software con servidores web incrustados, algunos de ellos con soporte para PHP y Perl.

_________________
JF^D Perl programming


Nota 2011-04-14 09:53 @454
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Proyecto en formato ventana
Quizás con GTK2 se consigan buenos resultados...

_________________
JF^D Perl programming


Nota 2011-04-14 10:04 @461

Perlero Adicto
Registrado: 2009-10-28 13:50 @618
Mensajes: 225
Re: Aplicación web como aplicación de escritorio
Ok, tienes una manera de explicar las cosas que generan interés así que,
mira lo que te diré, me pondré con cgi... y vamos con toda esa movida... Espero que Don PHP no se enoje...

Muchas gracias... y estaré consultando en caso de problemas.


Nota 2011-04-14 10:59 @499

Perlero Adicto
Registrado: 2009-10-28 13:50 @618
Mensajes: 225
Error con ejemplo HTTP::Server::Simple
Hola, buenas tardes.

Estoy tratando de poner en funcionamiento el ejemplo de HTTP::Server::Simple::CGI, con una base de:

This is perl 5, version 12, subversion 3 (v5.12.3) built for MSWin32-x86-multi-thread

pero me daba un error de perl510.dll, así que copié esa dll al directorio donde está la dll actual perl512.dll pero, obviamente, da errores varios. Les consulto si saben si ese módulo solo funciona con v5.10 o estoy haciendo algo mal.

Ah, tengo instalado el HTTP::Server::Simple v0.04.

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. {
  3.  
  4.     package MyWebServer;
  5.  
  6.     use HTTP::Server::Simple::CGI;
  7.     use base qw(HTTP::Server::Simple::CGI);
  8.  
  9.     my %dispatch = (
  10.         '/hello' => \&resp_hello,
  11.  
  12.         # ...
  13.     );
  14.  
  15.     sub handle_request {
  16.         my $self = shift;
  17.         my $cgi  = shift;
  18.  
  19.         my $path    = $cgi->path_info();
  20.         my $handler = $dispatch{$path};
  21.  
  22.         if ( ref($handler) eq "CODE" ) {
  23.             print "HTTP/1.0 200 OK\r\n";
  24.             $handler->($cgi);
  25.  
  26.         }
  27.         else {
  28.             print "HTTP/1.0 404 Not found\r\n";
  29.             print $cgi->header,
  30.                 $cgi->start_html('Not found'),
  31.                 $cgi->h1('Not found'),
  32.                 $cgi->end_html;
  33.         }
  34.     }
  35.  
  36.     sub resp_hello {
  37.         my $cgi = shift;               # CGI.pm object
  38.         return if !ref $cgi;
  39.  
  40.         my $who = $cgi->param('name');
  41.  
  42.         print $cgi->header,
  43.             $cgi->start_html("Hello"),
  44.             $cgi->h1("Hello $who!"),
  45.             $cgi->end_html;
  46.     }
  47.  
  48. }
  49.  
  50. # start the server on port 8080
  51. my $pid = MyWebServer->new(8080)->background();
  52. print "Use 'kill $pid' to stop server.\n";


Nota 2011-04-14 16:31 @730
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Aplicación web como aplicación de escritorio
Según la matriz de compatibilidad de HTTP-Server-Simple 0.44 (que se accede desde la página de la distribución HTTP-Server-Simple-0.44), no hay informes de éxito de instalación en esa versión de Perl, y en Windows.

Pero, quizás, eso no sea la causa del error.

_________________
JF^D Perl programming


Nota 2011-04-14 22:14 @968
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Proyecto en formato ventana
He encontrado un proyecto escrito en Perl, Mapivi, que sirve para organizar y manipular fotos. En este caso, el autor usa PerlTk.

_________________
JF^D Perl programming


Nota 2011-04-15 01:26 @102

Perlero Adicto
Registrado: 2009-10-28 13:50 @618
Mensajes: 225
opciones a http::server
Haciendo uso del recurso Paciencia v3.0, me veo en la necesidad de consultarles nuevamente…

Actualmente tengo la versión de Perl v5.12 y v5.10 en dos ordenadores diferentes… estoy tratando de montar un servidor con HTTP::Server pero me está dando guerra. ¿Alguno conoce alguna opción similar con el que pueda levantar un servidor HTTP?

La idea es no utilizar otro componente que no sea de perl...


Nota 2011-04-15 02:32 @147

Perlero Adicto
Registrado: 2009-10-28 13:50 @618
Mensajes: 225
Re: opciones a http::server
Bueno, bajando de versión a v5.10 y bajando de versión de HTTP::Server a v0.43 me funcionó... lo pongo por sí a alguien le pasa lo mismo... igulamente me gustaría conocer opciones de servidor... si alguno conoce.


Nota 2011-04-15 04:21 @223

Perlero Adicto
Registrado: 2009-10-28 13:50 @618
Mensajes: 225
consulta sobre pagina inicial http::server
El server levantó bien pero sale un error 404. Necesitaría saber cómo hacer para definirle el HTML que quiero que inicie.

Estoy buscando ejemplos pero no con ellos...

El otro punto que no entiendo es por qué va directo al "else", ¿¿es porque no definí la pagina inicial??

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. sub handle_request {
  2.     my $self = shift;
  3.     my $cgi  = shift;
  4.  
  5.     my $path    = $cgi->path_info();
  6.     my $handler = $dispatch{$path};
  7.  
  8.     if ( ref($handler) eq "CODE" ) {
  9.         print "HTTP/1.0 200 OK\r\n";
  10.         $handler->($cgi);
  11.  
  12.     }
  13.     else {
  14.         print "HTTP/1.0 404 Not found\r\n";
  15.         print $cgi->header,
  16.             $cgi->start_html('Not found'),
  17.             $cgi->h1('Not foundsss'),
  18.             $cgi->end_html;
  19.     }
  20. }


Nota 2011-04-15 06:33 @314
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Proyecto en formato ventana
Yo supongo que te refieres a HTTP::Server::Simple, no a HTTP::Server.

Pero, ¿eso no es todo el código de tu programa, verdad?

Tienes que indicar las subrutinas que se van a ejecutar según la petición del usuario. Según tu código, en el hash %dispatch.

Al llegar a la línea 8, el código comprueba si es una referencia a un código o no. Si lo es, lo ejecuta, es decir, salta a la subrutina que se ocupa de una determinada petición del usuario. Y si no es un código, sale la página de fallo.

_________________
JF^D Perl programming


Nota 2011-04-15 08:21 @390

Perlero Adicto
Registrado: 2009-10-28 13:50 @618
Mensajes: 225
Re: Proyecto en formato ventana
El código es el ejemplo del http::server::simple 0.43, me parece que no me está quedando claro...

Este ejemplo levanta como webserver en localhost:8080, tendría que mostrar al menos un hello... y en mi caso quiero apuntar a un simple prueba.html donde pondré todo el sistema... Pero no me quedó claro lo del if(), qué función cumple en esta historia... o dónde va el path que apunta al html... disculpen si es básica la pregunta, es que me atoré en ese paso...

#!/usr/bin/perl
{
package MyWebServer;

use HTTP::Server::Simple::CGI;
use base qw(HTTP::Server::Simple::CGI);

my %dispatch = (
'/hello' => \&resp_hello,
# ...
);

sub handle_request {
my $self = shift;
my $cgi = shift;

my $path = $cgi->path_info();
my $handler = $dispatch{$path};

if (ref($handler) eq "CODE") {
print "HTTP/1.0 200 OK\r\n";
$handler->($cgi);

} else {
print "HTTP/1.0 404 Not foundsssssss\r\n";
print $cgi->header,
$cgi->start_html('Not foundsssss'),
$cgi->h1('Not foundsss'),
$cgi->end_html;
}
}

sub resp_hello {
my $cgi = shift; # CGI.pm object
return if !ref $cgi;

my $who = $cgi->param('name');

print $cgi->header,
$cgi->start_html("Hello"),
$cgi->h1("Hello $who!"),
$cgi->end_html;
}

}

# start the server on port 8080
my $pid = MyWebServer->new(8080)->background();
print "Use 'kill $pid' to stop server.\n";


Responder al tema  [ 22 mensajes ]  Ir a página 1, 2  Siguiente

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO