Laden...

Terminerinnerung per E-Mail versenden - Verbesserungsvorschläge?

Letzter Beitrag vor einem Monat 4 Posts 351 Views
Terminerinnerung per E-Mail versenden - Verbesserungsvorschläge?

Hallo liebes Forum,

ich habe eine Consolenanwendung erstellt, die Terminerinnerungen per E-Mail versendet.

Ich habe bewusst "erstellt" geschrieben und nicht "programmiert".

Ja das Programm funktioniert, ist aber nicht schön.

Aus dem Grund teile ich es hier mal und vielleicht hat der eine oder andere ja ein Verbesserungsvorschlag.

Da ich noch viel lernen muss.

Ich weiß einige von euch werden ihre Hände über den Kopf zusammen schlagen.

Für die jenigen die es interessiert, habe ich es mal als Datei angehängt, danke.

Mir is nich klar, was Du für eine Antwort Du Dir wünscht.. aber ich nehm mal kein Blatt vor den Mund 😃

  • Der Code ist super anfällig für SQL Injection ⇒ [Artikelserie] SQL: Parameter von Befehlen
  • Dem Code fehlt jegliche Struktur, auch fehlt der Sinn von OOP
  • Du beachtest keinerlei Namensregeln/-empfehlungen in C#; Du scheinst aber mal mit C? was zutun gehabt zu haben, weswegen Du solche Prefixe wie str für Strings verwendest - hat in modernem Code nix zu suchen

Es ist klassischer Spaghetti-Code, aber denke, dass Dir das bewusst ist 😉

Wie man es machen würde:

  • Verantwortlichkeiten trennen (DB Code, Email, Logik..) und damit Code in Klassen umsetzen
  • Man verwendet den Typ string und nicht String, ausser Du willst die Eigenschaften von String haben (zB Überschreibbarkeit)
  • Keine DataTables (verwendet man seit >10 Jahren nicht mehr), sondern mit ADO.NET arbeiten, zB EF Core.
  • SMTP ist quasi tot, bietet keinerlei Sicherheit oder Spamschutz → Hoher Missbrauch, kaum jemand bietet das noch als Endpunkt an
  • Zu DateTime siehe [FAQ] DateTime vs. DateTimeOffset und der Umgang mit Zeiten in .NET

Danke Abt,

für deine konstruktiven Anregungen ich werde versuchen diese nach und nach in dem kleine Programm umzusetzen.

ADO.NET da arbeitet man doch mit DataTables und DataSet?

Oder sollen ich mir da direkt am besten EF Core an sehen?

Verantwortlichkeiten trennen (DB Code, Email, Logik..) und damit Code in Klassen umsetzen

Das ist für mich der schwerste Punkt.

Hallo,

DataSets und DataTables sollten nicht mehr verwendet werden. EF Core oder Dapper oder ...

glandorf