| 

.NET C# Java Javascript Exception

2
Hallo zusammen,

ich arbeite an einem Projekt, bei dem eine Art Terminplanung an verschiedenen Rolltoren erfolgt. Das ganze funktioniert grundsätzlich auch sehr gut - soll jetzt jedoch auch in einer Umgebung eingesetzt werden, in der mehrere Planer parallel arbeiten. Natürlich drüfen sich die die geplanten Termine keinesfalls überschneiden. Momentan behelfe ich mir mit einem DB-seitigen "Kollisionscheck". Sehr viel schöner wäre es aber, wenn die Planung des einen Kollegen zeitnah auf den Monitoren der anderen auftauchen würden. Allerdings möchte ich auch vermeiden, das die komplette Planung alle paar Sekunden durch einen Refresh muss. Ich habe hier auch schon asynchron abgefragt - war leider auch nicht praktikabel.

Wie kann hier eine brauchbarer Lösungsansatz aussehen?

Wir reden von einer Desktop-Anwendung (WPF, MVVM, EF, Planungskomponente ist dbi Scheduler) in Verbindung mit MS SQL-Server 2008
17.04.2015
5stroke 33 4
4 Antworten
1
Dazu fällt mir das Duplex-Verfahren von WCF ein.
Damit hatte ich mir schon einmal einen kleinen "Chat"-Client gebaut (zum Testen).

Das Prinzip ist einfach:
Jeder meldet sich am Server an und die Verbindung bleibt offen.
Wenn jemand eine Nachricht an den Server schickt, dann wird diese sofort an alle angemeldeten Clients verteilt.
21.05.2015
Marcus.D 86 1 4
1
Eine Möglichkeit wäre es eine Zwischenschicht einzufügen. Alle deine Datenbankanfragen gehen an diesen Layer, der diese dann an die Datenbank weiterleitet. Gleichzeitig kann er aber auch prüfen, ob neue Termine eingefügt, geändert oder gelöscht wurden und diese Änderungen mit Hilfe eines Benachrichtigungssystems, z.B. Events an die jeweilige Anwendung des Planers schicken. Die Anwendung kann dann die neuen, geänderten oder gelöschten Termine in der eigenen Anzeige verwalten. So brauchst du keine Polling der Datenbank durchführen, sondern wird aktiv über Änderungen informiert.

War mein erster Gedanke zu diesem Thema. Vielleicht hilft es dir ja.
17.04.2015
multi1209 848 1 8
1
Eine Möglichkeit wäre, SQL Server 2008 Push notification services zu nutzen. Dieses API ist allerdings als deprecated markiert. Hier ein paar Links zum Thema:

SQL Server 2008 push notification to WCF Service
Change Notification with Sql Server 2008
How to: Use SQL Server Change Tracking
Query Notification using SqlDependency and SqlCacheDependency

und, ganz besonders interessant:

Let me google that for you ;-)))
18.04.2015
luedi 2,0k 1 9
0
Hallo zusammen und sorry, dass ich mich erst jetzt wieder melde.

@Marcus:
Genau diesen Lösungsansatz verfolgen wir jetzt auch. Danke!

@alle anderen:
Vielen Dank auch für eure Antworten! Auch wenn wir diese Lösungen nicht nutzen, so haben sie doch geholfen, weil wir einiges dabei lernen konnten bzw. uns zumindest tiefer mit dem Thema beschäftigt haben.
21.05.2015
5stroke 33 4

Stelle deine .net-Frage jetzt!