Pablasso

Wt Framework de desarrollo web en C++

August 14, 2007

Wt es un framework de desarrollo web que incluye su propio servidor web, si eres un empedernido desarrollador de C posiblemente te sea útil.

Especialmente si eres alguien que no tiene interés alguno en aprender a utilizar lenguajes interpretados de los mortales (PHP, Ruby, Python, etc) o te importa poco lo que signifique DHTML, Javascript, CSS, AJAX, etc. Wt se encarga de la presentación y tu de la funcionalidad y los contenidos.

De los 11 beneficios que menciona el autor, el único que considero 100% válido es el portar viejas aplicaciones de escritorio en C++ a web fácilmente pero esto obviamente solo va a ser en casos muy puntuales.

También existen otras opciones, como Tntnet que es un servidor web que te permite crear templates con código de C++ embebido por medio de tags, tal como lo hace PHP o ASP.

Este es el código, de ejemplo en un simple Hello World con un botón. Haz clic para verlo funcionando.

   /*
     * Copyright (C) 2006 Wim Dumon
   */
    
    #include 
    #include 
    #include 
    #include 
    
    using namespace Wt;
    
    // Este es el punto de entrada para nuevas sesiones
    //
    // Esta funcion se ejecuta cuando un nuevo usuario navega en la aplicacion,
    // y despues que la libreria ha negociado el soporte para el navegador.
    // Debe regresar un nuevo objeto WApplication
    
    WApplication *createApplication(const WEnvironment& env)
    {
      // Instanciando a la aplicacion Wt.
      WApplication *appl = new WApplication(env);
    
      // Estableciendo el titulo de la aplicacion
      appl->setTitle("Hello world!");
    
      // Se pueden agregar Widgets a un padre llamando addWidget()...
      // WApplication::root() es un WContainerWidget que esta asociado con
      // la ventana completa del navegador.
      appl->root()->addWidget(new WText(L"Hello, World!"));
    
      // .. o especificando un pariente en la construccion
      WPushButton *Button = new WPushButton(L"Quit", appl->root());
    
      // Escuchar eventos del usuario usando un mecanismo de señales. 
      Button->clicked.connect(SLOT(appl, WApplication::quit));
    
      return appl;
    }
    
    int main(int argc, char **argv)
    {
       return WRun(argc, argv, &createApplication;);
    }

Prefiero mil veces usar algo para lo que fue hecho originalmente en lugar de complicar las cosas, pero nunca esta de mas saberlo.


Juan Pablo OrtizWritten by Juan Pablo Ortiz who lives and works in Guadalajara, Mexico. You should follow him on Twitter