Was ist die beste Vorgehensweise für den Desktop-Client, der Zugriff auf einen SQL-Server benötigt?
Wenn Sie einen lokalen SQL-Server verwenden, greifen Sie direkt auf die Datenbank zu. Wenn der Kunde eine SQL-Datenbank auf einem anderen System verwenden muss, ist die Verwendung eines Webdienstes vorzuziehen, um einen zusätzlichen Schutz und den zusätzlichen Vorteil einer Geschäftsschicht zu erhalten, die in der Lage sein sollte, mehrere Benutzer zu bedienen.
Welche Vorteile hat die Verbindung zur Datenbank von der Anwendung aus gegenüber der Verwendung eines Webdienstes?
Die Verbindung über einen Webdienst wird immer etwas langsamer sein, und Änderungen an der Datenbank sind etwas schwieriger in das gesamte System zu integrieren. (Im Grunde würde das bedeuten, dass Sie eine neuere Version des Webdienstes erstellen müssen, während Sie den älteren Webdienst aus Gründen der Abwärtskompatibilität beibehalten).
Welche bietet mehr Sicherheit?
Die Nutzung von Webdiensten ist tendenziell sicherer, auch wenn die Sicherheit oft eher ein Menschen Problem als ein Softwareproblem. Aber mit dem Webdienst zwischen dem Benutzer und der Datenbank ist die Verbindung zur Datenbank sicherer, da der Benutzer nicht direkt auf sie zugreifen kann. (Mit Ausnahme der Funktionen, die Sie über den Webdienst bereitstellen.) Dieser Punkt ist irrelevant, wenn sich Client und Datenbank auf demselben System befinden, da der Benutzer dann vollen Zugriff erhält.
Welche Art von Anwendungsbereich würde das eine gegenüber dem anderen erfordern (Unternehmensintranet vs. Webanwendung, etc.)
Webdienste eignen sich besser für Client-Server-Anwendungen, bei denen die Benutzer keinen direkten Zugriff auf die Datenbank haben sollten. Ansonsten würde eine direkte Datenbankverbindung nur die Leistung verbessern. Wenn Sie einen Webdienst erstellen, beginnen Sie mit dem Schreiben einer generischen (Klassen-)Bibliothek, die die Funktionalität für den Webdienst bereitstellen wird. Erstellen Sie um diese (Geschäfts-)Bibliothek herum einen Webdienst, der die wichtigen Methoden nach außen hin offenlegt. Jede Website kann diese Bibliothek direkt aufrufen, ohne den Webdienst zu verwenden, obwohl Sie sich auch dafür entscheiden können, den Code der Website über den Webdienst auf die Daten zugreifen zu lassen. Selbst wenn Sie nur eine Desktop-Anwendung mit einer lokalen Datenbank erstellen, ist es eine gute Sache, eine Geschäftsbibliothek mit Logik für den Zugriff auf die Datenbank zu schreiben. Ihr Client kann diese Geschäftsbibliothek direkt oder über einen Webdienst aufrufen, je nach Bedarf.
Gibt es weitere Überlegungen, die bei der Wahl der Plattform angestellt werden müssen?
Hauptsächlich geht es um die Menge an Hardware, die Sie bereit sind, für die Einrichtung zu verwenden. Wenn Sie es sich leisten können, einen Datenbankserver, einen separaten Webdienst für die Dienste und einen dritten für Ihre Website einzurichten, mit einem Dutzend Client-Systemen oder so, dann können Sie sich für die mehrschichtige Version entscheiden, bei der sowohl der Client als auch die Website den Webdienst aufrufen, der wiederum die Datenbank aufruft. Wenn aber alles auf einem einzigen System laufen muss, dann sollten Sie sich auf die Anwendung und die Geschäftsschicht/Bibliothek beschränken.
Das Hinzufügen von Ebenen verringert jedoch die Leistung aus der Sicht eines einzelnen Benutzers. Die Arbeit mit mehreren Ebenen kann jedoch die Gesamtleistung verbessern, da die Ressourcen besser auf mehrere Benutzer verteilt werden.