Ist es in einer Webanwendung akzeptabel, HTML in Ihrem Code zu verwenden (nicht geskriptete Sprachen, Java, .NET)?
Es gibt zwei wichtige Unterfragen:
Im Allgemeinen ist es besser, die Präsentation (HTML) getrennt von der Logik ("Back-End" -Code) zu halten. Ihr Code ist entkoppelt und einfacher zu pflegen.
Solange Ihr HTML-Code von Ihrer Anwendungslogik getrennt ist und der HTML-Code garantiert gut strukturiert ist, sollten Sie in Ordnung sein.
Der einzige Code, der in Markup-basierten Seiten gemischt werden sollte (d. h. solche, die literales HTML enthalten) ist der Code, der zum Formatieren des HTML verwendet wird (z. B. eine Schleife zum Schreiben einer Liste).
Es gibt Kompromisse, ob Sie den Code in den HTML-Code einfügen oder reinen Code verwenden, um den HTML-Code mithilfe von String-Literalen in Anführungszeichen zu schreiben.
Nein, wenn Sie gute und wartbare Software erstellen und eine lose Kopplung erreichen wollen.
Wenn ich die Frage richtig verstanden habe, fragen Sie, ob es eine gute Methode ist, Markup mit Backend-Code zu kombinieren. Nein. Das ist zwar üblich, aber immer noch eine schlechte Idee.
Sie sollten das MVC -Paradigma sowie bestehende Fragen zu diesem Thema lesen. wie Was ist? der beste Weg, um eine bestehende unordentliche Webapp auf elegante MVC zu migrieren? und Best Practices für die Umgestaltung von klassischem ASP?
Der Punkt besteht darin, die Anzeigelogik vom Rest des Codes getrennt zu halten. In jeder komplexen Website wird Code mit Ihrem HTML-Code gemischt, der Code sollte jedoch nur zu Darstellungszwecken dienen. Es sollte keine komplexen Berechnungen durchführen.
Zum Beispiel enthalten Vorlagen Schleifen und Bedingungen. Außerdem haben Sie wahrscheinlich eine Bibliothek von HTML-spezifischen Routinen, wie das Ausdrucken einer & lt; -Option & gt; Liste basierend auf einem Listenobjekt.
Stellen Sie sich vor, Sie schreiben eine Anwendung mit zwei Ausgabemodi: HTML und etwas anderes. Wie würdest du es schreiben, um Code zu duplizieren? Das wird dich wahrscheinlich in die richtige Richtung weisen.
Der HTML-Code, aus dem die Ansicht besteht, muss irgendwie an den Browser gesendet werden. In .net gibt jedes Serversteuerelement ein eigenes HTML-Markup als Teil des Seitenlebenszyklus aus. Also ist es in Ordnung, HTML im serverseitigen Code zu verwenden.
Vielleicht sollten Sie versuchen, dem ASP.net-Muster zu folgen. Erstellen Sie eine Reihe von Steuerelementen, die UI-Elemente darstellen, und sorgen Sie dafür, dass sie ihr eigenes HTML basierend auf ihrem Status ausgeben.
Wenn ich Methoden brauche, die HTML generieren, isoliere ich sie normalerweise in einer HtmlHelpers-Klasse. Auf diese Weise halten Sie einige Ebenen der Trennung. Das ASP.NET MVC Framework macht das ziemlich erfolgreich.
Wenn Sie meinen, HTML in Ihrem Code auszudrucken, dann nein. Wenn Sie keinen guten Grund haben, dies nicht zu tun, sollten Sie Vorlagen
verwendenSelbst wenn du denkst, dass du das jetzt nicht brauchst, besteht immer eine gute Chance, dass du es später brauchst. Vielleicht möchten Sie in einem anderen Format als HTML ausgeben oder Sie möchten eine andere Präsentation für die gleichen Daten. In der Regel brauchen Sie diese Dinge im weiteren Verlauf, also verwenden Sie am besten einen von Anfang an.
Ich stimme allen anderen zu, dass Sie so hart wie möglich versuchen sollten, das HTML / XHTML-Markup von der Anwendungslogik zu trennen. Manchmal müssen Sie jedoch aus verschiedenen Gründen HTML / XHTML in der Anwendungslogik generieren.
In diesen Fällen habe ich versucht, sicherzustellen, dass die minimale Menge an Präsentationscode in die Anwendungslogik gemischt ist und versuche, alles andere auf den Präsentationscode zu übertragen. Es ist nichts wert, dass Sie in einigen Fällen Situationen haben, in denen Sie alles auf die Präsentationsebene verschieben können. Es ist jedoch möglicherweise einfacher, das Markup als Teil der Anwendungslogik zu generieren. In diesen Fällen ist es wahrscheinlich am besten, die Route zu wählen, die am sinnvollsten ist.
Ich glaube nicht, dass es eine Entschuldigung dafür gibt, HTML in Ihrer Geschäftslogik zu generieren. Tun Sie es nicht einmal, wenn es nur eine "schnelle Lösung" ist oder wenn Sie "zurückgehen und es später reparieren", denn das passiert nie.
Um meine Position von anderen Fragen zu wiederholen, ist die Verwendung einiger Steuerlogik (Bedingungen, Schleifen) in HTML zur Erstellung OK. Machen Sie im HTML keine Daten massieren oder Geschäftslogik. Du musst diszipliniert sein, aber es ist es wert. Die Wartung ist viel einfacher, wenn Ihre Bedenken (wie Logik und Display) getrennt sind.
Idealerweise streben Sie eine Trennung von Bedenken zwischen Ihrem Präsentationscode und Ihrem Domänencode an.
Der Grund, warum Sie vermeiden sollten, diese beiden Probleme (in beide Richtungen) zu verbinden, ist einfach ...
Sie haben nur einen Grund, einen Code zu ändern. Ob es sich um strukturelle / gestalterische Änderungen in Ihrem HTML-Design oder um die Änderung Ihrer Geschäftsregeln handelt, Sie sollten die Änderung nur an einer Stelle vornehmen müssen.
In geringerem Maße, obwohl viele Puristen nicht zustimmen würden, indem Sie HTML-Code über Ihren Domain-Code streuen oder umgekehrt, sind Sie Lärm für den nächsten Entwickler, der zum Lesen / Pflegen kommt.
Tags und Links html user-interface