4 Stimmen

Empfohlene Praxis zur Speicherung einer E-Mail-Vorlage

Meine Anwendung sendet Benachrichtigungs-E-Mails an Benutzer, daher habe ich für jeden Benachrichtigungstyp eine HTML-Vorlage erstellt. Ich habe in der Vorlage so etwas wie Felder als {n} festgelegt, um so etwas verwenden zu können, wenn ich die Nachricht sende:

string bodyTemplate = GetBodyTemplate(); // Holt die HTML-Vorlage mit {n}
message.Body = String.Format(bodyTemplate, fieldZeroValue, fieldOneValue);

Zum Beispiel könnte die Vorlage einen Abschnitt davon enthalten:

    Zur Seite gehen

In diesem Beispiel würde ich Folgendes verwenden:

message.Body = String.Format(bodyTemplate, IdValue.ToString());

Hier ist meine Frage: Wo sollte ich diese sehr langen Zeichenfolgen mit den HTML-Vorlagen speichern? Ich möchte nicht auf die Datenbank zugreifen, um sie zu erhalten, und sie in String-Konstanten zu speichern, sieht schrecklich aus.

Bitte sagen Sie mir, was die empfohlene Vorgehensweise ist, um diese Zeichenfolgen zu speichern.

3voto

Josh Punkte 9876

Ich erstelle Textdateien und speichere die Vorlagen im Projekt. Wenn es nicht zu viele gibt, könnten Sie sie in Ihr Assembly einbinden und sie aus den Ressourcen herausnehmen. Wenn es viele gibt, würde ich auf ein Verzeichnis verweisen, das die Dateien enthält, und einen String-Reader verwenden, um einen Dateinamen auszuwählen.

1voto

Rikon Punkte 2670

Ich hörte neulich einen klugen Spruch über eine Diskussion darüber, ob man #regions verwenden sollte oder nicht. Der "Pro-#regions"-Typ sagte: "Aber ich will hässlichen Code verstecken", und der "Anti-#regions"-Typ sagte: "Wenn er so hässlich ist, hättest du ihn gar nicht schreiben sollen."

Es hat mich zum Lachen gebracht, dass du bei hässlichen Konstanten einen Codegeruch bekommen hast.

Was spricht dagegen, es in die Datenbank zu legen? Ist es der Aufwand, es häufig abrufen zu müssen? Wenn ja, dann vielleicht zwischenspeichern und in angemessenen Abständen erneut aus der Datenbank abrufen. Auf diese Weise können Sie die Flexibilität bewahren, Vorlagen hinzuzufügen oder zu ändern, ohne jedes Mal die Datenbank abfragen zu müssen.

Wenn Konstanten tatsächlich funktionieren würden und du dich dagegen sträubst, weil sie hässlich sind, dann verstecke sie mit einem #region :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X