Autor Beitrag
kingdave2nd
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Mo 29.09.08 18:22 
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:

ausblenden 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
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 29.09.08 20:49 
Wenn ich das richtig verstanden habe, ist das Problem, dass du nun zwei DBConfigItem-Klassen hast. Dann lagere diese Klasse in ein eigene Dll ("Klassenbibliothek"-Projekt) aus und referenziere diese aus beiden Projekten. Dann dürfte auch die Zuweisung funktionieren.

_________________
>λ=
kingdave2nd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Mo 29.09.08 21:16 
Hi,

genau dass habe ich schon gemacht. Die Klasse "DBConfigItem" ist schon in eine eigene DLL ausgelagert. Diese DLL wird sowohl von meiner Clientanwendung als auch vom WebService referenziert. Nur wenn ich in meiner clientanwendung aus einer quelle ein DBConfigItem erstelle, kann ich in kein anderes DBConfigItem mehr da reinschreiben, auch wenn beide ursprünglich aus der gleichen Klasse erzeugt wurden.

Gruss Dave
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 29.09.08 21:20 
Hm. Wie lautet denn die Fehlermeldung genau?

_________________
>λ=