Ajax
Ich denke, Ihre Frage lautet: "Soll meine Webanwendung clientseitig oder serverseitig HTML generieren?" Die clientseitige Generierung kommuniziert mit dem Server über AJAX, obwohl das X (XML) im Allgemeinen durch JSON ersetzt wurde, aber die meisten Leute nennen es immer noch AJAX, weil es besser klingt. Serverseitig erstellt der Server nur HTML auf dem Server.
Ich habe viel Erfahrung mit XML und fast keine mit JSON. Alles, was ich über XML weiß, lässt mich vorschlagen, JSON zu verwenden, wenn dies überhaupt möglich ist.
AJAX-Profis:
- Senden Sie weniger Daten über HTTP (S), damit diese schneller ausgeführt werden können.
- Der Server ist im Wesentlichen ein Webdienst, damit andere (oder Sie) ihre eigenen Clients schreiben können. Dies kann beim Erstellen einer mobilen Version Ihrer Website hilfreich sein. Viele Erfindungen werden auch aus Gründen populär, die ihr Schöpfer nie beabsichtigt hat. Dienste sind für Leute, die neue Verwendungszwecke für Ihren Code finden, freundlicher.
- Sieht aus wie eine neuere Anwendung
AJAX Nachteile:
- Debuggen von JavaScript
- Komplexität?
- Die Dinge, die Sie mit JavaScript tun können, sind für Blinde oder Behinderte oft völlig unmöglich.
- Möglicherweise ist mehr Code insgesamt erforderlich (größerer Gesamtspeicher auf Ihrem eingebetteten Gerät)
Kundenserver
Alle Webanwendungen verwenden eine Client-Server-Architektur. Das HTTP-Protokoll erzwingt das Verhalten von Webanwendungen. AJAX verwendet eine Problemumgehung für diese Entwurfsbeschränkung, das grundlegende zugrunde liegende Modell von HTTP ist jedoch weiterhin Client-Server. Ich würde mich nicht darüber aufregen, wie MVC am besten auf Webanwendungen angewendet werden kann. Wenn Sie aus politischen Gründen MVC machen müssen, schauen Sie sich an, wie Ruby / Rails das macht. Tatsächlich ist Rails eine großartige Architektur zum Kopieren (oder Verwenden).
Service vs. App.
Ein guter Service ist fast immer besser als eine Anwendung. Aber einen guten Service zu leisten ist schwer! Möglicherweise müssen Sie erst einen Antrag stellen, bevor Sie eine ausreichend entwickelte Spezifikation für einen Dienst schreiben können. Machen Sie Ihre Arbeit nicht schwieriger als nötig. Konzentrieren Sie sich bei Version 1 darauf, eine großartige Anwendung zu erstellen. Solange Ihre Anwendung nicht relativ stabil ist und Sie sicher sind, dass sie die Anforderungen Ihres Benutzers erfüllt, wird Ihnen ein Dienst wahrscheinlich sowieso nichts nützen. Zu frühes Entwerfen des falschen Dienstes ist eine Zeitverschwendung, die immer wieder verschwendet wird, wenn Sie versuchen, Ihre Dienstschnittstelle zu reparieren und die nachfolgenden massiven Umgestaltungen von Server- und Client-Code zu bewältigen.
C / Web
Beeindruckend. Ich habe 3 Jahre in C und Assembly gearbeitet, bevor ich zur Webentwicklung gewechselt bin. Ich kann mir keine schlechtere Sprache für das Schreiben einer Webanwendung vorstellen - insbesondere aus Sicherheitsgründen. Die Validierung von Eingaben und das Entweichen von Ausgaben sind so wichtig ... SANS veröffentlicht jedes Jahr eine Liste der häufigsten Fehler. Pufferüberläufe, Injektionen, standortübergreifende Probleme (falsche Ausgabecodierung) ... All diese Fehler sind in C oder in der Assembly sehr einfach zu machen. Zumindest eine Sprache wie Java hat einen String, der unempfindlich gegen Überläufe ist, und einen Mechanismus zur Ausnahmebehandlung, der im Allgemeinen verhindert, dass Off-by-One-Fehler böswilligen Code auf den Systemspeicher zugreifen lassen. Ganz zu schweigen vom Umgang mit internationalen Zeichensätzen ( wenn möglich UTF-8 verwenden ).
Wenn Sie C aus Speicher- oder Firmware-Gründen verwenden müssen, müssen Sie dies tun. Sei einfach vorsichtig!
Browser-Unterstützung
Der erste Schritt zur Erstellung einer Webanwendung besteht darin, zu ermitteln, welche Browser von Ihren Kunden verwendet werden. W3Schools und Wikipedia sind gute Quellen für allgemeine Statistiken, aber YMMV.
Wo ich jetzt arbeite, überprüfen wir derzeit, dass unsere Anwendung nur gültiges XHTML 1.0-Übergangs-HTML erstellt. Wir verwenden auch den spezifischen Doctype und die Formatierung, die erforderlich sind, um den Quirks-Modus im IE zu vermeiden, wodurch sich browserübergreifendes HTML leichter schreiben lässt (siehe Tipps in meinem Blog ). Wir testen die neuesten 3 Versionen von IE sowie Firefox und Chrome unter Windows und Linux (Safari verwendet dieselbe Rendering-Engine wie Chrome). Mit dieser Validierung und diesen Tests funktioniert unsere Anwendung praktisch überall (Windows, Mac, Linux, iPhone, Android usw.), außer auf dem BlackBerry.
Der BlackBerry hatte noch nie einen richtigen Browser mit JavaScript, daher unterstützen wir diesen nicht. BlackBerry-Benutzer sind es gewohnt, keinen echten Webbrowser zu haben, und beschweren sich daher nicht. Vielleicht ändert sich das? Ich würde versuchen, ein paar Kunden zu fragen, welche Browser sie verwenden, und sicherstellen, dass sie mit diesen Browsern testen.
Zusammenfassung
Alle Websites basieren auf HTML und HTTP. Halten Sie eine gute Referenz für diese Technologien bereit, während Sie Ihren Antrag stellen. Während Sie eine Anwendung erstellen, werden Sie auch mit einem Toolkit auf Probleme stoßen, die ein grundlegendes Verständnis dieser Technologien erfordern, um sie zu lösen.
Sie müssen wahrscheinlich auch mit CSS und Bildkomprimierung vertraut sein, um ein anständiges Ergebnis zu erzielen, das schnell reagiert. JavaScript, Webserver und Browser sind zusätzliche Wissensbereiche, die Sie letztendlich benötigen.
Wenn Sie Ihren HTML-Code serverseitig erstellen, ist Ihre Codebasis wahrscheinlich kleiner und Sie müssen möglicherweise kein JavaScript lernen. Das serverseitige Modell bedeutet, dass Ihre Programmierer Code (C?) Schreiben, der HTML generiert, das sie direkt betrachten können, bevor es an den Client gesendet wird. Das AJAX-Modell bedeutet, dass Ihre Programmierer JavaScript schreiben, das HTML generiert. Mir sind nicht viele Tools bekannt, mit denen der von JavaScript in einem Browser generierte HTML-Code überprüft oder sogar angezeigt werden kann, was die korrekte Programmierung erschwert.
Wo ich jetzt arbeite, verwenden wir einen hybriden Ansatz, bei dem gelegentlich Java-Code zum Generieren von JavaScript zum Generieren von HTML verwendet wird. Wenn Sie neu in der Webentwicklung sind, ist dies nicht der richtige Ort, um anzufangen. Ich denke, ich muss sagen, dass ich mit dem älteren Modell der serverseitigen HTML-Generierung beginnen und sehen würde, wie weit es Sie bringt, es sei denn, Sie haben zwingende Gründe, ein AJAX-Modell zu verwenden.