Wt (webová sada nástrojů) - Wt (web toolkit)
Původní autoři | Emweb |
---|---|
První vydání | 1.0.0 / prosinec 2005 |
Stabilní uvolnění | 4.1.1 / 9. září 2019[1] |
Úložiště | Wt Repository |
Napsáno | C ++ |
Operační systém | Cross-platform |
Typ | Webový rámec |
Licence | Duální licence: |
webová stránka | www |
Hm (výrazný "vtipný") je open-source widget -centrický webový rámec pro C ++ programovací jazyk. Má API připomínající to z Qt framework (i když byl vyvinut s Boostem a je nekompatibilní při smíchání s Qt), také pomocí stromu widgetů a řízené událostmi systém signál / slot.[2]
Cílem WT v oblasti designu je těžit z stavový součástka model používaný v API desktopových aplikací, aplikovaný na vývoj webových aplikací —Místo tradičních MVC (model – pohled – řadič) návrhový vzor. Takže spíše než používat MVC na úrovni a webová stránka, je posunuta na úroveň jednotlivých komponent.[3]
Zatímco knihovna používá plochu proces vývoje softwaru, některé podporuje web - konkrétní funkce, včetně:
- Sémantické adresy URL
- Navigace v historii prohlížeče
Jednou z jedinečných vlastností Wt je jeho abstrakční vrstva prohlížeče vykreslování Modelka. Knihovna používá Ajax pro komunikaci s prohlížeči kompatibilními s ním, při použití obyčejného HTML -formulář post-backs pro ostatní uživatelské agenty. Pomocí progresivního bootstrap -metoda, uživatelské rozhraní je vykreslen jako prostý HTML dokument Nejprve je tedy za předpokladu, že je v prohlížeči podporována, automaticky upgradována na použití Ajax pro zvýšenou interaktivitu. Tímto způsobem je Wt podle definice:
- Jediný serveru -boční rámec provádění strategie progresivní vylepšení automaticky;
- Jediný rámec Ajaxu s optimalizace pro vyhledávače (SEO) kvality.
Kvůli popularitě C / C ++ v vestavěný systém prostředí se v takových zařízeních často používá Wt (a v důsledku toho) byl vysoce optimalizován pro výkon.
Hlavní rysy
- Automatický půvabná degradace a progresivní vylepšení
- Podporuje události iniciované serverem (Kometa )
- Sjednocený vykreslování API (SVG, HTML5 prvek plátna, VML )
- Klient - a serveru - boční ověření
- Obsahuje různé bezpečnostní funkce, kterým je třeba se vyhnout Cross-site skriptování a Padělání požadavků napříč weby (CSRF) zranitelnosti
- Zahrnuje kompaktní C ++ ORM -layer ("Wt :: Dbo")
- Používá WebSocket síťový protokol, pokud je k dispozici, pro Model klient-server komunikace, s nouzovými prostředky do Ajaxu nebo prostý webová stránka vykreslování
Podrobnější přehled najdete v části Funkce na oficiálních webových stránkách.
Příklad kódu
The "Ahoj světe!" program ve Wt:
#zahrnout <Wt/WApplication.h>#zahrnout <Wt/WBreak.h>#zahrnout <Wt/WContainerWidget.h>#zahrnout <Wt/WLineEdit.h>#zahrnout <Wt/WPushButton.h>#zahrnout <Wt/WText.h>/* * Jednoduchá ahoj světová aplikační třída, která ukazuje, jak reagovat * k událostem, čtení vstupů a poskytnutí zpětné vazby. */třída HelloApplication : veřejnost Hm::WAplikace{veřejnost: HelloApplication(konst Hm::WE prostředí& env);soukromé: Hm::WLineEdit *jménoUpravit_; Hm::WText *Pozdrav_; prázdnota pozdravit();};/* * Argument env obsahuje informace o nové relaci a * počáteční požadavek. Musí být předán WApplication * konstruktor, takže je to obvykle také argument pro váš zvyk * konstruktor aplikace.*/HelloApplication::HelloApplication(konst Hm::WE prostředí& env) : WAplikace(env){ setTitle("Ahoj světe"); // název aplikace vykořenit()->přidat nový<Hm::WText>("Vaše jméno prosím ? "); // zobrazit nějaký text jménoUpravit_ = vykořenit()->přidat nový<Hm::WLineEdit>(); // povolit zadávání textu jménoUpravit_->setFocus(); // zaměřit auto knoflík = vykořenit()->přidat nový<Hm::WPushButton>(„Pozdrav mě.“); // vytvoření tlačítka knoflík->setMargin(5, Hm::Boční::Vlevo, odjet); // přidat okraj 5 pixelů vykořenit()->přidat nový<Hm::WBreak>(); // vloží zalomení řádku Pozdrav_ = vykořenit()->přidat nový<Hm::WText>(); // prázdný text /* * Připojte signály pomocí slotů * * - jednoduchý Wt-way: uveďte objekt a metodu */ knoflík->klikl().připojit(tento, &HelloApplication::pozdravit); /* * - pomocí libovolného funkčního objektu, např. užitečné vázat * hodnoty s std :: bind () do výsledného volání metody */ jménoUpravit_->vstoupit stisknuto().připojit(std::svázat(&HelloApplication::pozdravit, tento)); /* * - pomocí lambda: */ knoflík->klikl().připojit([=]() { std::cerr << "Ahoj, " << jménoUpravit_->text() << " n"; });}prázdnota HelloApplication::pozdravit(){ /* * Aktualizujte text pomocí zadávání textu do pole nameEdit_. */ Pozdrav_->setText("Ahoj, " + jménoUpravit_->text());}int hlavní(int argc, char **argv){ /* * Vaše hlavní metoda může nastavit některé sdílené zdroje, ale měla by * spusťte serverovou aplikaci (FastCGI nebo httpd), která začne poslouchat * pro požadavky a zpracovává všechny životní cykly aplikace. * * Poslední argument WRun určuje funkci, která bude instancována * nové aplikační objekty. Tato funkce se provede, když nový uživatel surfuje * do aplikace Wt a poté, co knihovna vyjednala prohlížeč * Podpěra, podpora. Funkce by měla vrátit nově vytvořenou aplikaci * objekt. */ vrátit se Hm::WRun(argc, argv, [](konst Hm::WE prostředí &env) { /* * Můžete si přečíst informace z prostředí a rozhodnout se, zda * uživatel má oprávnění ke spuštění nové aplikace */ vrátit se std::make_unique<HelloApplication>(env); });}
Viz také
- Srovnání webových rámců
- JWt (webová sada nástrojů Java), rodák Jáva verze Wt
- Tntnet
Reference
- ^ „Wt: Release v4.1.1“. webtoolkit.eu. 9. září 2019. Citováno 11. října 2019.
- ^ Dumon, Wim; Deforche, Koen (11. února 2008). „Wt: A Web Toolkit“. Dr. Dobb's Journal. Citováno 24. ledna 2017.
- ^ Volkman, Victor (6. června 2008). „Wt: C ++ Web Toolkit Library umožňuje psát webové aplikace nezávislé na skriptování“. QuinStreet. Citováno 24. ledna 2017.