stringtranslate.com

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 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 .

Enlaces externos

Sitio web oficial