Daniel Thoma: Java vs. C# vs. PL/SQL

Beitrag lesen

Hallo Klaus,

die eigentliche Logik des Datenmodells (Konsistenz der Daten sichern, den jeweils notwendigen Objekt-Teilgraphen auswählen, etc.) sollte definitiv in der Datenbankschicht implementiert werden.
Diese Logik brauchen alle auf der Datenbank aufbauenden Anwendungen (falls es mehrere geben sollte, wobei man sich darüber streiten kann, ob das gut ist), es ist meist wesentlich Performanter, das in der Datenbank zu erledigen und es macht Anwendungen meist unübersichtlich, wenn man diese Logik aus dem Datenmodell, das nunmal in der DB liegt, herauszieht.

Bei vielen Wirtschaftsanwendungen gibt es darüber schon gar keine Geschäftslogik mehr sondern nur noch eine Präsentationsschicht. Wenn es keine gibt, sollte man sich auch keine ausdenken ;-)
Gibt es welche (Anbindung anderer Systeme, Realisierung irgendwelcher Arbeitsabläufe, komplexere Auswertung der Daten also im Sinne von irgendwas Simulieren/Berechnen (eher selten nach meinem Eindruck in der Wirtschaft)) dann ist eine Zwischenschicht, die das erledigt, und nicht in der Datenbank implementiert ist, sinnvoll.

Nun stellt sich die Frage, in welcher Technologie man das tut. Nachdem ich nun etwas C# verwendet habe, scheint mir Java angenehmer, weil die Klassenbibliothek ausgereifter ist. Das fängt schon mit Datenstrukturen an, bei .NET fehlt einfach einiges.
Für C# spricht allerdings sehr stark, dass ihr Euch damit auskennt und dass ihr schon ein Teil der Anwendung damit realisiert habt. Eine weitere Sprache verhindert effektiv die Wiederverwendung bestehenden Codes. Außerdem ist die Kommunikation in heterogenen Anwendungen praktisch immer etwas umständlicher zu handhaben.

Was Application-Server, Komponentenkonzepte (JEE) usw angeht, würde ich vorsichtig sein. Diese Dinge haben alle ihren Zweck und sind hilfreich, allerdings nur, wenn man sie auch versteht und das kostet Zeit und Aufwand.
Wenn ihr also nicht die Zeit oder das Geld habt, Euch in komplexe, neue Technologie einzuarbeiten, kann es besser sein, es zu lassen.
Nichts versaut eine Architektur eines Systems meiner Meinung nach zuverlässiger, als Technologie, die man nicht verstanden hat.

Grüße

Daniel