Lassen Sie mich beginnen, indem Sie sagen: Dies ist mein 1. Beitrag hier, dies ist ein bisschen lenghty, und ich havent getan Windows Forms Entwicklung in Jahren....with, dass im Verstand bitte entschuldigen Sie mich, wenn dies nicht direkt eine Programmierung Frage und bitte mit mir, wie ich wirklich die Hilfe brauchen!!!
Ich wurde gebeten, eine Windows Forms-Anwendung für unser Unternehmen zu entwickeln, die mit einem zentralen (lokalen Netzwerk) Linux-Server kommuniziert, der eine PostgreSQL-Datenbank hostet. Die Anwendung soll es Benutzern ermöglichen, sich am System zu authentifizieren und anschließend die üblichen Transaktionen mit der PG-Datenbank durchzuführen. Normalerweise würde ich vorschlagen, eine Webforms-Anwendung für Mono zu schreiben, aber die Clients müssen lokale Ressourcen wie USB-Peripheriegeräte nutzen, so dass das nicht in Frage kommt. Auch wenn es vielleicht nicht klar erscheint, meine Fragen sind kursiv unten:
Dilemma Nr. 1:
Die Anwendung ist dafür gedacht, immer verbunden zu sein. Wie sollte ich meine DAL/BLL strukturieren - sollte sie auf dem Server oder auf dem Client liegen? ?
Dilemma Nr. 2:
Ich habe mich informiert über Client-Anwendungsdienste (CAS) und es scheint sich hervorragend für die Authentifizierung zu eignen, da alles über URIs zugänglich ist. Ich weiß, dass es einen .NET Data Provider für PostgreSQL gibt, aber Ich bin mir nicht sicher, ob CAS auf einem Linux (Debian)-Server funktionieren wird. ? Glauben Sie mir, ich würde mir die Hände schmutzig machen und es selbst versuchen, aber ich muss mir erst einen logischen Entwurf ausdenken, bevor mir Ressourcen für "Versuchszwecke" zur Verfügung gestellt werden!
Dilemma Nr. 3:
Wenn sich die DAL/BLL auf dem Server befinden soll, gibt es dann eine Möglichkeit, Datendienste zu erstellen und nur diese Dienste für authentifizierte Clients zugänglich zu machen? Es gibt eine (Sicherheits-)Anforderung, wonach eine Verbindungszeichenfolge mit Benutzernamen und Kennwort zur Datenbank nicht auf Client-Rechnern vorhanden sein darf... selbst wenn die Sicherheit auf der Datenbankseite ziemlich streng ist. Ich vermute, dass der einzige Weg für diese zu arbeiten wäre, die verschiedenen CRUD-Datendienst-Methoden zu erstellen, die von einem ASP.NET app ausgesetzt sind, und haben die WindowsForms machen eine Anforderung für Daten oder persistieren Daten an die ASP.NET app (durch eine URI) und haben, dass ein Resultset oder Wert zurückgeben. Liege ich mit dieser Vermutung richtig? Sollte ich WCF Data Services in Betracht ziehen? und wird WCF mit einer Nicht-SQL Server-Datenbank funktionieren?
Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu lesen, aber Sie sollten wissen, dass ich dringend jeden Rat in dieser Sache suche! TAUSEND DANK!!!!
EDIT:
Ich erwäge auch NHibernate als meine ORM verwenden
0 Stimmen
Die URL für den PostgreSQL .NET-Datenanbieter lautet: npgsql.projects.postgresql.org
0 Stimmen
Was genau meinen Sie, wenn Sie sagen "immer verbunden"?
1 Stimmen
Ich meine, dass im Gegensatz zu einem Smart-Client, der gelegentlich verbunden ist (z. B. mit einem zentralen DB-Server), aufgrund der geschäftlichen Anforderungen dieser Anwendung immer eine Verbindung zu Live-Daten bestehen muss - sonst kann der Benutzer nicht fortfahren. "Wenn die Person mit etwas beschäftigt ist und die Verbindung aus irgendeinem Grund abbricht, dann ist das schade" ... um unseren Analysten zu zitieren! Ja, das ist die Mentalität, mit der ich mich abfinden muss!