Programmgesteuertes Generieren von HTML in C #, Targeting Printed Reports

8

Ich habe eine C # (2.0) Codebasis übernommen, die Informationen drucken kann. Der Code dafür ist wahnsinnig langwierig. Elemente werden auf jeder Seite gezeichnet, wobei magische Konstanten die Positionierung repräsentieren. Ich stelle mir vor, dass der Programmierer mit einem Lineal sitzt und jede Seite durch Messen und Eingeben der Positionen gestaltet. Und ja, man könnte sicherlich einige schöne Abstraktionen finden, um diesen Ansatz vernünftig zu machen. Aber ich schaue mir eine andere Methode an.

Ich möchte den aktuellen Code ersetzen, der mit Code gedruckt wird, der statische HTML-Seiten generiert, sie in einer Datei speichert und dann den Webbrowser für diese Datei startet. Der offensichtlichste Vorteil ist, dass ich mich nicht mit Formatierung befassen muss - ich kann den Webbrowser das für mich mit Tags und CSS machen lassen.

Ich suche also nach einem sehr leichten Satz von Klassen, mit denen ich HTML generieren kann. Ich brauche nichts so Schwergewicht wie HTMLTextWriter. Was ich suche, ist etwas, um solche Fragmente zu vermeiden:

%Vor%

Und nehmen Sie stattdessen diese Art von Gefühl:

%Vor%

Oder so ähnlich. Ich habe leichte Klassen wie diese für andere Sprachen gesehen, kann aber nicht das Äquivalent (oder besser) für C # finden. Ich kann es sicherlich selbst schreiben, aber ich glaube fest daran, Räder nicht neu zu erfinden.

Wissen Sie so etwas? Wissen Sie etwas besser als das?

    
Henk Holterman 05.06.2010, 07:16
quelle

2 Antworten

1

Genau wie eine Idee: Warum möchten Sie den HTML-Code in Ihrem Anwendungscode zusammenstellen? Klingt ein bisschen langweilig für mich. Sie können die für den Bericht erforderlichen Daten aggregieren und an eine der für C # vorhandenen Vorlagen-Engines (die normalerweise für Web-Apps verwendet werden) weitergeben. Dann speichern Sie das Ergebnis der Vorlagen-Engine in einer HTML-Datei.

Die wichtigsten Vorteile, die ich mit diesem Ansatz sehe:

  • trennt die Sicht von der Geschäftslogik
  • HTML-Vorlagen können von Nicht-C # -Entwicklern bearbeitet werden, HTML / CSS-Kenntnisse sind genug
  • keine Notwendigkeit, die Anwendung neu zu kompilieren, wenn der HTML-Code
  • geändert wird

Ich habe es noch nicht benutzt, aber ich habe gehört, dass die Spark-View-Engine in Ordnung ist: Ссылка (nicht sicher, ob es für C # 2.0 ist )

Vor einiger Zeit experimentierte ich (in PHP) mit Gagawa ( Ссылка ), wo du Sachen wie:

%Vor%

Aber bald fiel ein solcher Ansatz zugunsten einer Template-Engine.

    
Max 05.06.2010 07:56
quelle
0

Ein anderer Ansatz besteht darin, die Daten in XML zu konvertieren und ein XSL-Stylesheet anzuwenden. Um die HTML-Formatierung zu ändern, müssen Sie nur das Stylesheet ersetzen.

    
Christian Schwarz 05.06.2010 08:24
quelle

Tags und Links