Articulo de referencia

Wt (kit de herramientas web)

Wt (pronunciado "witty" ) es un framework web de código abierto centrado en widgets para el lenguaje de programación C++ . Tiene una API similar a la del framework Qt (aunque fu...

Wt (pronunciado "witty" ) es un framework web de código abierto centrado en widgets para el lenguaje de programación C++ . Tiene una API similar a la del framework Qt (aunque fue desarrollado con Boost y es incompatible cuando se combina con Qt), y también utiliza un árbol de widgets y un sistema de señales/slots controlado por eventos . [2]

El objetivo de diseño de Wt es aprovechar el modelo de componentes con estado utilizado en las API de aplicaciones de escritorio, aplicado al desarrollo web , en lugar del patrón de diseño MVC (modelo-vista-controlador) tradicional. Por lo tanto, en lugar de utilizar MVC a nivel de una página web , se lo aplica al nivel de componentes individuales. [3]

Si bien la biblioteca utiliza un proceso de desarrollo de software de escritorio , admite algunas funciones específicas de la web , entre las que se incluyen:

Una de las características únicas de Wt es su capa de abstracción del modelo de representación del navegador . La biblioteca utiliza Ajax para comunicarse con los navegadores compatibles con ella, mientras que utiliza HTML simple ( post-backs de formularios) para otros agentes de usuario . Mediante un método de arranque progresivo , la interfaz de usuario se representa primero como un documento HTML simple y luego, siempre que sea compatible con el navegador, se actualiza automáticamente para usar Ajax para una mayor interactividad. De esta manera, Wt es por definición:

Debido a la popularidad de C /C++ en entornos de sistemas integrados , Wt se utiliza a menudo en dichos dispositivos y (como consecuencia) se ha optimizado en gran medida para el rendimiento .

Características principales

Para obtener una descripción más detallada, consulte la sección Características del sitio web oficial.

Ejemplo de código

El programa "¡Hola, mundo!" en Wt:

#include <Wt/WApplication.h> #include <Wt/WBreak.h> #include <Wt/WContainerWidget.h> #include <Wt/WLineEdit.h> #include <Wt/WPushButton.h> #include <Wt/WText.h> 
 
 
 
 
 

/* 
* Una clase de aplicación simple de hola mundo que demuestra cómo reaccionar 
* a eventos, leer entradas y brindar retroalimentación. 
*/ 
class HelloApplication : public Wt :: WApplication { public : HelloApplication ( const Wt :: WEnvironment & env );    


    

privado : 
Wt :: WLineEdit * nameEdit_ ; Wt :: WText * saludo_ ;   
       

  void saludar (); }; 


/* 
* El argumento env contiene información sobre la nueva sesión y 
* la solicitud inicial. Debe pasarse al 
constructor WApplication * por lo que normalmente también es un argumento para el 
constructor * de la aplicación personalizada. 
*/ 
HelloApplication :: HelloApplication ( const Wt :: WEnvironment & env ) : WApplication ( env ) { setTitle ( "Hola mundo" ); // título de la aplicación  
   

                              

  root () -> addNew < Wt :: WText > ( "Su nombre, por favor ?" ); // mostrar algún texto  

  nameEdit_ = root () -> addNew < Wt :: WLineEdit > (); // permitir la entrada de texto nameEdit_ -> setFocus (); // dar foco          
                                

  auto button = root () -> addNew < Wt :: WPushButton > ( "Salúdame." ); // crea un botón button -> setMargin ( 5 , Wt :: Side :: Left ); // agrega 5 píxeles de margen    
                          

  root () -> addNew < Wt :: WBreak > (); // insertar un salto de línea greeting_ = root () -> addNew < Wt :: WText > (); // texto vacío            
     

  /* 
   * Conectar señales con ranuras 
   * 
   * - Wt-way simple: especificar objeto y método 
   */ 
botón -> clicado (). connect ( this , & HelloApplication :: saludo );   

  /* 
   * - usando un objeto de función arbitrario, p. ej. útil para vincular 
   * valores con std::bind() a la llamada al método resultante 
   */ 
nameEdit_ -> enterPressed (). connect ( std :: bind ( & HelloApplication :: greeting , this ));   

  /* 
   * - usando una lambda: 
   */ 
botón -> hecho clic (). connect ([ = ]() { std :: cerr << "Hola, " << nameEdit_ -> text () << " \n " ; }); }    
          
  


void HelloApplication :: greet () { /*    * Actualiza el texto, utilizando la entrada de texto en el campo nameEdit_.    */ greeting_ -> setText ( "Hola, " + nameEdit_ -> text ()); } 

  


    


int main ( int argc , char ** argv ) { /*    * Su método principal puede configurar algunos recursos compartidos, pero luego debe    * iniciar la aplicación del servidor (FastCGI o httpd) que comienza a escuchar    * solicitudes y maneja todos los ciclos de vida de la aplicación.    *    * El último argumento de WRun especifica la función que instanciará    * nuevos objetos de aplicación. Esa función se ejecuta cuando un nuevo usuario navega    * a la aplicación Wt y después de que la biblioteca haya negociado    el soporte del * navegador. La función debe devolver un    objeto de aplicación recién instanciado.    */ return Wt :: WRun ( argc , argv , []( const Wt :: WEnvironment & env ) { /*      * Puede leer información del entorno para decidir si      * el usuario tiene permiso para iniciar una nueva aplicación      */ return std :: make_unique < HelloApplication > ( env ); }); }    

  










        
    



     
  

Véase también

Referencias

  1. ^ "Wt: Notas de la versión". www.webtoolkit.eu . Consultado el 10 de julio de 2024 .
  2. ^ Dumon, Wim; Deforche, Koen (11 de febrero de 2008). "Wt: A Web Toolkit". Diario del Dr. Dobb . Consultado el 24 de enero de 2017 .
  3. ^ Volkman, Victor (6 de junio de 2008). "Wt: C++ Web Toolkit Library Lets You Write Scripting-Independent Web Apps" (La biblioteca de herramientas web de C++ le permite escribir aplicaciones web independientes de la programación). QuinStreet . Consultado el 24 de enero de 2017 .

Sitio web oficial

Obtenido de "https://es.wikipedia.org/w/index.php?title=Wt_(kit_de_herramientas_web)&oldid=1233673204"