2012-06-07 12 views
6

He creado un conjunto de herramientas que utilizo en mi trabajo diario y me gustaría que se vean un poco más "profesionales" para venderlas a las instituciones financieras.¿Cómo crear una aplicación profesional en Perl?

Por el momento estas herramientas están escritas en Perl y se ejecutan desde una línea de comandos de DOS, es extremadamente eficiente pero no se ve muy atractivo.
lo tanto, me gustaría añadir una interfaz de usuario a ella, pero no se sabe muy bien lo que debe usar para el lenguaje que knowning:

    interfaz
  • Un Perl CGI alojado en la web no es una opción ya que la información para ser dado como entrada es bastante sensible.
  • Sería ideal venderlo como un paquete/ejecutable.
  • Realmente no me gusta la interfaz Perl/Tk.
  • Estoy de acuerdo con la reescritura de la aplicación en otro idioma pero preferiría reutilizar los módulos principales en Perl ya que es muy potente con expresiones regulares y listas/matrices.

¿Qué me recomendarías que hiciera? Gracias , Lory

+2

"la web no es una opción ya que la información es bastante sensible". Hay Intranets, o incluso localhost. – Thilo

+0

De hecho, lo pensé. Es tal vez una estupidez, pero ¿es un uso común vender una aplicación que requiere configurar un servidor Apache, Perl, etc.? – loeyck

+2

Sí. Sin embargo, puede agruparlo bien. Por ejemplo, como un dispositivo virtual (para VMWare o VirtualBox). – Thilo

Respuesta

8

Si desea una interfaz gráfica de usuario no basados ​​en web, y no le gusta Tk, también hay Wx, que es un contenedor para el conjunto de herramientas wxWidgets interfaz gráfica de usuario.

Sin embargo, las aplicaciones web de hoy en día pueden ser realmente fáciles de crear (utilizando un marco moderno). Tome una aplicación Mojolicious, por ejemplo: Mojolicious no tiene dependencias que no sean Perl 5.12.x, y proporciona su propio servidor web (Hypnotoad). Puede comenzar por generar una "Lite :: App", que es una aplicación autónoma de un solo archivo, y luego aumentarla a una distribución más grande más adelante a medida que surja la necesidad. Incluso viene con herramientas para convertir su aplicación en una distribución convenientemente empaquetada que puede instalarse tan fácilmente como cualquier otro módulo de CPAN.

Eso deja el problema de la seguridad. Autenticación de usuario, lista blanca de IP, red local solamente ... hay muchas maneras de hacer una aplicación web "solo para uso interno" si eso es lo que necesita.

Puede lanzar un prototipo de aplicación web, y una vez que determine el interés del cliente en su producto, invierta todo su tiempo en escribirlo como una aplicación GUI de Windows.

+1

Es mucho más fácil improvisar una GUI de Windows utilizando un kit de herramientas RAD que luego se atasca en el ensamblado web con HTTP, HTML, CSS, Javascript, apatridia, parches como Cookies. Especialmente si eres un novato. He estado haciendo desarrollo web durante muchos años, pero el conjunto de aplicaciones web es terriblemente complicado y de bajo nivel una vez que lo comparas con el mundo RAD de desarrollo de escritorio brillante. Por cierto, Mojolicious (que también he estado usando) no resuelve el problema de la interfaz de usuario para ti. Y otro, Mojolicious no está bien probado en Windows (como muchas cosas de guiones), y Hypnotoad no usa Windows en absoluto. – Lumi

2

Supongo que el sistema de destino será Windows. Use una plataforma RAD (desarrollo rápido de aplicaciones) para desarrollar una GUI. Ejemplos de dicha plataforma son Delphi o .NET con C# o VB. Para agrupar la parte de Perl, considere usar una herramienta llamada perl2exe.

No parece que sus scripts requieran un servidor web. Además, considere la molestia de la instalación. Solo supongo que no está dando mucha información sobre lo que están haciendo sus scripts.

+0

De hecho, realmente no requiere un servidor web, excepto tal vez para una interfaz eventual pero no para la funcionalidad misma. Digamos que elijo la opción de una interfaz VB.NET ejecutar un script perl incluido con perl2exe, ¿podría también dar argumentos y recuperar el resultado en la parte VB.NET? – loeyck

+0

@ user1441405 (por cierto, considere cambiar su número a un nombre) - Sí, podría usar E/S y abrir tuberías a su programa y enviar comandos y leer el resultado. Haga algo [googleando] (https://www.google.com/search?q=vb.net+external+program+read+stdout), eso debería darle ideas. O eche un vistazo a la [sección sobre "Controlar E/S de proceso" aquí] (http://www.devx.com/dotnet/Article/7914/1954). – Lumi

+0

Ok muchas gracias por su ayuda (aviso Acabo de cambiar mi nombre de usuario. De hecho, he creado rápidamente una cuenta esta mañana para hacer esta pregunta :-)). Solo por información, no soy un desarrollador real, solo un chico está construyendo alguna herramienta sucia para ayudar con mi trabajo diario, por eso las preguntas a veces suenan estúpidas :-) – loeyck

3

Continuando con la respuesta de DavidO, debido a que los microframeles web actuales para Perl (prefiero Dancer por su sugerencia de Mojolicious, pero ambos son buenos y en gran parte equivalentes) contienen sus propios mini servidores web agrupados, también permiten la aplicación para ejecutar fácilmente por completo en la máquina local.

Dado que estos mini servidores tienen por defecto un puerto no estándar (normalmente 3000 o 5000) de manera predeterminada y puede configurarlos fácilmente en un puerto diferente, pueden ser aislados por firewalls con relativa facilidad, asegurando que nadie se pueda conectar a ellos remotamente.También puede, por supuesto, incluir y verificar la dirección IP en la aplicación y rechazar cualquier solicitud que no se origine en localhost.

+1

Si se trata de un servidor basado en HTTP :: Server :: Simple, puede enlazar a localhost para que no sea accesible al mundo exterior (sin un túnel) – singingfish

0

Estoy usando el Cava packager para implementar mis herramientas escritas en Perl. Incluso puede generar un ejecutable de instalador con solo hacer clic con el mouse. Funciona bastante bien con strawberry Perl y wxPerl en Windows.

Cuestiones relacionadas