Ver Mensaje Individual
  #18  
Antiguo 13-06-2010
aarmalo aarmalo is offline
Miembro
 
Registrado: mar 2005
Ubicación: México
Posts: 46
Reputación: 0
aarmalo Va por buen camino
Espero que esto sea lo suficientemente profesional y no un programita de prueba

http://facturlinex.sourceforge.net/
Cita:
PuntoDEV GNU S.L. ha creado una aplicación cliente-servidor con la posibilidad de ejecución multiusuario para la gestión integral de la facturación desde una pequeña empresa hasta una gran empresa con 9999 sucursales.
Empezaron usando Kylix pero todos ya saben que pasó con Kylix, eso si fue perder tiempo, dinero y esfuerzo.

Si no consideras suficientemente estable el entorno de desarrollo Lazarus, puedes hacer uso, desde FreePascal, las qt o gtk de forma directa. Hasta puedes usar glade para desarrollar las gui generer un archivo xml y cargarlo desde freepascal.

Si no consideras suficientemente maduro freepascal, puedes decantarte por usar C, C++, python, perl, php, C#, java, etc. etc. etc. y cargarle tu archivo xml generado por glade o puedes optar por definir la interfaz totalmente a mano usando las gtk o las qt y sin olvidarme de las wx.

Ej (lo único que hacen es crear una ventana).
FreePascal+gtk

Código:
program win;

uses
 glib2, gtk2;

procedure destroy(widget : pGtkWidget; data: pgpointer ); cdecl;
begin
  gtk_main_quit();
end;

var
  window: pGtkWidget;

begin
  gtk_init (@argc, @argv);
  window:=gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_signal_connect(pGTKOBJECT(window),'destroy',
            GTK_SIGNAL_FUNC(@destroy), NULL);
  gtk_widget_show(window);
  gtk_main();
end.
python + gtk


Código:
import gtk

class MyWin:
  def __init__(self):
    self.window=gtk.Window()
    self.window.connect('destroy',self.close_window)
    self.window.show_all()

  def close_window(self,widget):
    widget.destroy()
    gtk.main_quit()

if __name__=="__main__":
  w=MyWin()
  gtk.main()
C + gtk
Código:
#include <gtk/gtk.h>

static void destroy(GtkWidget *widget, gpointer data)
{
  gtk_main_quit();
}

int main(int argc, char**argv)
{
  GtkWidget *window;

  gtk_init(&argc, &argv);

  window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

  g_signal_connect (window, "destroy", G_CALLBACK(destroy), NULL);

  gtk_widget_show(window);

  gtk_main();

  return 0;

}
Mono (Vb.NET+Gtk)
Código:
imports System
imports Gtk

Public Module MyWin

  Sub OnDeleteEvent (ByVal obj as object, ByVal args as DeleteEventArgs)
         Application.Quit()
  End Sub


  Public Sub Main()
         Application.Init()

     Dim window as Window= new Window("Title2")
     AddHandler window.DeleteEvent, AddressOf OnDeleteEvent

     window.ShowAll()

     Application.Run()
  End Sub

End Module
Mono (C#+Gtk)
Código:
using Gtk;
using System;

class MyWin{
  static void Main()
  {
    Application.Init();
    Window window= new Window("Title");
    window.DeleteEvent +=delete_event;
    window.Show();

    Application.Run();
  }

  static void delete_event(object obj, DeleteEventArgs args)
  {
    Application.Quit();
  }
}
Ahora imagínate cargando la gui desde un archivo xml , podrías usar la misma interfaz para distintos lenguajes (en el dado caso que tus planes sean usar dos lenguajes distintos para cada SO) te ahorrarías bastante en la reescritura de tus funciones, pero las de la gui prácticamente permanecerían casi intactas

Lo que Lazarus hace es que no tengas que saber nada de esto, las gtk y las QT son muy estables y maduras. Lazarus te provee un entorno en el cual puedas hacer uso de uno u otra sin que realmente lo tengas que conocer pero con una sintaxis familiar y con la que te sientes como pez en el agua (si es que vienes de Delphi)

PD: http://www.gtk.org/commerce.html
Nero Linux usa las gtk: http://www.gtkfiles.org/app.php/NeroLinux
http://wiki.freepascal.org/Lazarus_Application_Gallery
http://wiki.freepascal.org/Projects_using_Lazarus

PD: Las QT pertenecen a Nokia (por si piensas que la madures viene dada por la empresa que este detrás) y Lazarus te permite hacer uso de ellas sin que las tengas que conocer.

PD: Si te vas a la página de las QT te darás cuenta de las aplicaciones profesionales que se han hecho con ellas http://qt.nokia.com/qt-in-use . Artlantis usa qt, ISE de Xilinx usa las QT.

PD: Si no consideras cualquier cosa como perdida de tiempo y dinero prueba tambien el QTCreator de Nokia (multiplataforma Embedded Linux, Linux, Mac, Symbian, Maemo, Windows, Windows CE/Mobile). Varias Plataformas si reescribir código. ¿Cuales plataformas soporta el Visual Basic NET? Con la varidad de dispositivos y plataformas que existen actualmente, sería algo *^?¿~#½ desarrollar para una única plataforma y si un entorno, ide, herramientas, bibliotecas, etc. etc. te permite desarrollar para todas ellas (o la mayoría) que mejor, y mejor si la reescritura de código tiende a ser casi nula. Cuantas plataformas soporta freepascal, hasta el iphone aunque a partir de IphoneOS 4 ya es ilegal por políticas de Apple. ¿Cuantas plataformas soporta Visual Basic NET?. Cuantas plataformas soporta Mono, hasta el iphone pero me imagino que también va a ser ilegal por políticas de Apple

PD: Si no haces uso de las apis especificas de Windows aunque tu progrma lo hayas hecho en VB.NET (con el Visual Studio o como se llame) instalando en Mac OSX o Linux el Mono vas a poder ejecutar tu programa sin ningún problema y no vas a tener que usar X para el SO X y Y para el SO Y.

PD: Java corre tanto en Windows como en MacOSX, si vas a usar Java y VB.NET, porque no mejor usas sólamente java, al cabo corre en ambos SO y otros más. Te ahorrarías "tu tiempo y dinero" ya que no tendrías que mantener el código de dos programas que hacen lo mismo.

Así como dice Casimiro primero levanta y analiza tus requerimientos, los requerimientos de tus posibles clientes y tus planes a futuro, porque de todos los lenguajes puedes encontrar aplicaciones profesionales y no juguetitos o pruebas caseras, lo que tu consideres como profesional probablemente para un nivel superior ya no lo sea. Igual tu entorno de desarrollo puede ser extremadamente profesional y tu programa extremadamente profesional que para un nivel inferior es como estar matando moscas a cañonazos. Al final el que le da lo profesional es la habilidad del programador.

Def. de profesional: com. Persona que ejerce su profesión eficientemente y con destacada capacidad (http://www.wordreference.com/definicion/profesional)

Wiki: Un profesional es toda aquella persona que puede brindar un servicio o elaborar un bien, garantizando el resultado con calidad de excelencia. Puede ser una persona con un reconocimiento de grado universitario, técnico o experto en cierto tema, disciplina o arte. Sin embargo, una persona también puede ser considerada profesional por el hecho de proveer un servicio o producto y exhibir un comportamiento honesto, calificado, responsable y capaz; características que se obtienen con constancia y talento en la disciplina desempeñada. (http://es.wikipedia.org/wiki/Profesional)
__________________
No todo es lo que parece y lo que parece no es todo.
Responder Con Cita