Hallo zusammen,
ich schlage mich jetzt schon eine ganze Weile mit folgendem Problem rum. Ich denke mal ich habe das ganze Konzept irgendwie falsch aufgebaut, deswegen will ich es hier mal vorstellen und eure Meinung hören.
Ich möchte eine Client/Server Applikation schreiben.
Der Server besteht aus folgenden Komponenten:
- ASP.NET Webservice
- Datenbankprovider in Form einer DLL
- Datenbank
Der Client besteht aus:
- Win32 UI
- Webservice Datenprovider
- dem identischen Datanbankprovider wie auf dem Server
- und einer Datenbank die identisch zur Serverseitigen DB aufgebaut ist.
Die Idee dahinter ist, das ich auf Basis eines Rollenkonzeptes Daten aus der Serverseitigen DB in die Clientseitige DB repliziere (das macht eine zusätzlicher Windows Dienst, der auf jedem Client läuft). Je nach Netzwerkzustand des Clients, soll die Client Applikation nun entweder über den WSI Datenprovider auf den Webservice Zugriff (Online-Mode) oder über den Datenbankprovider auf die lokale SQL Server Express Edition (Offline-Mode).
Nun habe ich den folgenden Code in einer Client DLL implementiert:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| private DBConfigItem GetServerValue(int configId) { DBConfigItem ci = new DBConfigItem(); if (workOnline) ci = webApiConnection.WebApiService.GetConfigItemById(configId); else { ci.Id = configId; ci.Get(); } } |
"ci" ist ein Objekt das ich aus der Klasse "DBConfigItem" im Datenbankprovider erzeugt habe. Die Methode "GetConfigItemById" liefert ebenfalls "DBConfigItem" zurück, halt nur über den Webservice.
Leider erzählt mir der Compiler dann, dass er das Objekt das der Webservice zurückliefert nicht in ein Objekt konvertieren kann, dass ich vorher über den Datenbankprovider generiert habe. Mir ist ja auch klar warum er damit Stress hat. Aber mir ist nicht klar wie ich geschickt an diese Aufgabenstellung herangehe.
Würde mich über ein paar Vorschläge und Denkansätze freuen.
Viele Grüsse und Dank
Dave