Erfahrungen mit dem Wt C ++ Framework? [geschlossen]


72
  • Hat jemand Wt ernsthaft benutzt?
  • Hat es gut funktioniert?
  • Haben Sie bestimmte Einschränkungen erfahren? Oder Vorteile?

Wt ist eine C ++ - Bibliothek zum Entwickeln von Webanwendungen.

Bitte vermeiden Sie die Diskussion darüber, ob C ++ eine gute Sprache für die Webentwicklung ist. Ich möchte Wt nur ausprobieren, weil es so aussieht, als ob es eine lustige Sache sein könnte.


3
Ich weiß nicht, Wt. Entdeckte es mit Ihrer Frage. Ich bin an der Antwort interessiert. Für die Faulen: webtoolkit.eu/wt
neuro

Warum nicht ... probieren Sie es aus. Es ist kostenlos! (Und es ist großartig)
Vector

@Vector Weit davon entfernt, kostenlos zu sein, ist es sehr teuer, ein Webframework durch Schreiben einer großen, durchdachten und funktionsfähigen Website zu testen und festzustellen, dass es nicht gut funktioniert, wenn versucht wird, auf 10.000 Benutzer pro Tag zu skalieren, oder es ist ein wenig schwierig über das Erstellen wirklich guter Benutzeroberflächen oder was auch immer andere Probleme haben könnten. Viel billiger andere zu fragen!
Begrenzte Versöhnung

1
@LimitedAtonement - Wenn Sie etwas ausprobieren , verwenden Sie es nicht für ernsthafte Großprojekte. Sie schreiben ein kleines Prototypprojekt, das Ihre wichtigen Anforderungen darstellt, und ein Stresstest-Framework, bevor Sie ernsthafte Ressourcen einsetzen.
Vektor

Antworten:


34

Ich habe das Framework nicht persönlich verwendet, aber mit einigen Leuten darüber gesprochen. Sie hatten keine wirklichen Einschränkungen, aber ich fand es schwer zu glauben, dass sie jedes Mal kompilierten. Ihr Hauptkommentar war, dass der Server in Bezug auf die Speichernutzung ziemlich leicht belastet war. Persönlich denke ich, dass die interpretierten Sprachen PHP, Python, Ruby usw. gut mit der Art der Webentwicklung zusammenarbeiten - aber das ist nicht die Frage, die Sie gestellt haben. Der wahrscheinlich größte Vorteil besteht darin, dass Sie Ihre vorhandenen Fähigkeiten nutzen können, um in einem neuen Medium zu arbeiten.

Es gibt auch ein paar gute Kommentare online, in denen Vor- und Nachteile diskutiert werden. Hier ist eine, die ich gefunden habe: http://discuss.joelonsoftware.com/default.asp?biz.5.599655.33

Ich denke jedoch, dass die Hauptantwort hier lautet, dass es ohne Berücksichtigung einer bestimmten Projektanforderung schwierig sein wird, einen Rahmen für die Eignung zu bewerten. Wenn Sie glauben, dass es Spaß machen wird, ein paar Dinge damit zu programmieren, probieren Sie es aus. Dies ist der beste (wenn nicht nur) Weg, um festzustellen, ob es Ihren Anforderungen entspricht.


Ich habe das Kompilieren nicht als große Sache empfunden. g ++ erstellt inkrementelle Builds und kann auf mehreren Kernen ausgeführt werden. Normalerweise möchten Sie nach einer bestimmten Anzahl von Änderungen kompilieren, um sicherzustellen, dass Ihre Inhalte ohnehin nicht beschädigt sind. Wenn Sie die überall enthaltenen Elemente nicht geändert haben, dauert es nicht lange (Sekunden bei den meisten meiner Projekte mit mache -j8).
MrFox

6
Ich stimme der Meinung von MrFox zu. Zusammenstellung ist keine große Sache. Und es hilft Ihnen, dumme Fehler zu fangen. Kompilierungsfehler sind besser als Laufzeitfehler - und interpretierte Sprachen geben Ihnen nur Laufzeitfehler, was meiner Meinung nach ein viel größerer Aufwand ist, als make -j8ein paar Sekunden auszugeben und dann zu warten ...
Laryx Decidua

1
Wenn Sie Java oder C # verwenden, müssen Sie für die Webentwicklung (Struts / ASP.NET MVC usw.) jedes Mal neu kompilieren, wenn etwas nicht Statisches geändert wird. Ich denke, es wäre keine so große Sache.
Animesh

3
Ich bin überrascht, dass dies abgestimmt und als Antwort markiert wurde.
Wikingerben

35

Ich habe Wt verwendet, um Apps zu erstellen, die direkt mit C ++ - Bibliotheken verknüpft sind, aber keine besonderen Anstrengungen unternommen habe, um die Layoutfunktionen wie CSS zu nutzen. Bisher eignet es sich hervorragend als Ersatz für GTK beim Erstellen solcher Anwendungen. Ich bin ausschließlich ein Linux-Benutzer und einer der ungewaschenen Heiden, die tatsächlich gerne in C ++ programmieren. Dieses Framework ist eine perfekte Möglichkeit für mich, eine Anwendung zu erstellen, die tatsächlich auf vielen Plattformen verwendet werden kann.


20

Ich habe mehrere in C ++ eingebettete Webserver ausprobiert. Sie sind in der Regel eine Herausforderung und nicht Windows-freundlich.

(Sie erwähnen Ihre Plattform nicht. Wenn Sie unter Unix arbeiten, werden die verfügbaren Server vermutlich einfacher zu verwenden sein und können diese Antwort wahrscheinlich ignorieren. Wenn Sie unter Windows arbeiten, lesen Sie weiter ...)

Ich habe Wt ausprobiert, wurde aber von der massiven Installation, deren Kompilierung und Generierung von Warnungen Seite für Seite dauert, und der umfangreichen Lernkurve besiegt. Wt ist Qt nachempfunden. Wenn Sie also mit Qt vertraut sind, ist die Lernkurve weniger eine Herausforderung.

Ich habe Webio von John Bartas ausprobiert. Das Konzept hat mir gefallen und es hat gut funktioniert. Ich fand es jedoch zu kompliziert zu verwenden und den Servercode schwer zu verstehen. Ein Großteil der Komplexität von Webio wird durch die Verwendung eines „HTML-Compilers“ verursacht, um die HTML-Seiten auszublenden, die das Erscheinungsbild der GUI in einem im Anwendungscode eingebetteten Dateisystem steuern. Ich bevorzuge es, die HTML-Seiten draußen in einer einfachen Ansicht zu haben, wo ich die GUI anpassen kann, ohne die Anwendung neu zu kompilieren.

Ich habe mir auch TWS angesehen. Dies ist von Richard Hipp, der für SQLITE und FOSSIL verantwortlich ist und von dem ich ein großer Fan bin. TWS wurde jedoch seit 2001 nicht mehr gewartet und ist nicht wirklich WINDOWS, daher habe ich mich widerwillig entschieden, es nicht weiter zu verfolgen.

Am Ende habe ich mein eigenes, WEBEM genannt, basierend auf einer minimal modifizierten Version des boost :: asio-Webservers gerollt. In einem ähnlichen Konzept, das jedoch einfacher als TWS ist, ermöglicht es HTML-Code, C ++ - Methoden auszuführen.


31
Für Leute, die über Google hierher kommen: Zum Zeitpunkt des Jahres 2011 habe ich Wt sehr einfach ohne "massive Installation" ausprobiert. Ich fand es sehr gut für meine Bedürfnisse.
Offirmo

Ich habe es unter Ubuntu 14.04 mit Aptitude installiert - es dauerte ungefähr 15 Sekunden und es funktionierte sofort. Einfach in den Bibliotheken verlinken und los geht's.
Vektor

@Vector Wie bereits erwähnt, gilt meine Antwort nur für Windows. Es ist natürlich extrem schnell, wenn Sie vorgefertigte Binärdateien installieren, aber dann haben Sie die meisten Vorteile der Verwendung von Open Source verloren.
Ravenspoint

@ravenspoint - OK, das habe ich nicht verstanden. Aber nichts, was nicht Windows-spezifisch ist, ist "Windows-freundlich" ... Ich benutze Open Source seit mehreren Jahren - ich ändere nie den Quellcode der von mir verwendeten Tools, aber ich spare viel Geld und trage zu Projekten bei, die ich mache Verwenden Sie und haben Sie Zugang zu einem guten Geld gute Werkzeuge.
Vektor

3
2014 kompilierte es in weniger als einer halben Stunde unter Windows, keine Warnungen. Das Kompilieren von Boost kann eine Weile dauern, es ist jedoch nicht erforderlich, es selbst zu kompilieren.
Alice

11

Um ehrlich zu sein, ich hatte es mir angesehen, aber ich sehe einen signifikanten Wt-Designfehler - es ist Qt nachempfunden. Der Versuch, Webanwendungen so zu gestalten, dass sie wie eine grafische Benutzeroberfläche aussehen und sich so verhalten.

Ich denke, dieser Ansatz ist falsch. Es sollte eine klare Trennung zwischen Client- und Serverseite bestehen.

Wenn Sie an C ++ - Webprogrammierung interessiert sind, schauen Sie sich CppCMS an, das ein traditionelleres MVC-Modell hat.

Beachten Sie, dass ich eine voreingenommene Meinung habe, da ich Entwickler von CppCMS bin.


3
Wie kann das Modellieren nach Qt jemals ein Konstruktionsfehler sein;) Aber ich verstehe Ihren Standpunkt.
Christian Rau

3
@Cristian Weil das Entwerfen der Benutzeroberfläche und das Entwerfen für ein Web zwei sehr unterschiedliche Dinge sind
Artyom

7
Artyom fehlt die Perspektive. Für GUI-ähnliche Web-Apps ist die von Wt bereitgestellte Verknüpfung sehr gut. @Artyom Sie entwerfen für Ihre Kunden, nicht für Webgurus.
Offirmo

14
Viele Websites sehen so aus, als würden sie weniger wie statische Dokumente aussehen, sondern eher wie dynamische Desktop-Anwendungen mit vollem Funktionsumfang. Ich kenne viele Fälle, in denen Websites als Frontends erstellt wurden, um die Client-Server-Architektur zu ersetzen. In solchen Situationen ist es sehr sinnvoll, die Website so zu entwickeln, als wäre sie eine Desktop-App, und meiner Meinung nach ist es sehr sinnvoll, einige Ajaxy-Inhalte zu abstrahieren, wenn dies das Leben der Menschen erleichtert.
MrFox

3
Der Versuch, Webanwendungen so zu gestalten, dass sie wie eine grafische Benutzeroberfläche aussehen und sich so verhalten : Eine grafische Benutzeroberfläche ist eine grafische Benutzeroberfläche: Mit zunehmender Komplexität des Webs ähneln browserbasierte Apps immer mehr Desktop-Apps ... klare Trennung zwischen den Clientseiten - gefällt Ihnen das wirklich? so viel mit dummen Browsern zu tun haben? Qt ist wohl das beste OOP-Framework, das jemals implementiert wurde - wie kann die Modellierung nach Qt möglicherweise ein Nachteil sein?
Vektor

11

Erstellt damit eine Aufgabenlisten-App. funktioniert super, keine probleme.


Ich kann mir vorstellen, dass es in ein dünnes Webbrowser-Steuerelement (.net, qtwebview usw.) eingebettet und angezeigt wird. Scheint so, als würde das Spaß machen.
swdev

9

Ich verwende es derzeit, um eine Webanwendung für die Verarbeitung von GPS-Messungen zu entwickeln, die auf in C implementierten Verarbeitungsalgorithmen basiert. Es funktioniert gut und hat eine gute Synergie mit altem C / C ++ - Code.

Die Dokumentation ist nicht so umfangreich und das Fehlen von Lernprogrammen und verwandten Büchern macht es irgendwie schwierig zu lernen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.