Frage

Ich arbeite an einer Manchmal Connected CRUD-Anwendung, die in erster Linie von Teams (2-4) des Sozialarbeiters und Krankenschwestern eingesetzt wird in Form eines Plans Patienteninformationen zu verfolgen. Die Anwendung ist ein revisualization einer ASP.Net-Anwendung, die vor meiner Zeit erstellt wurde. Es gibt ca. 200 Tabellen über 4 Datenbanken. Die Web-App-Version setzte stark auf SPs aber seit dieser Version ist eine winform App, die ich keinen Grund, mit SP weiterhin sehen zu einem lokalen db zeigen wird. Auch der Hinweis, hatte ich geplant Mergereplikation zu verwenden, um den sync'ing Teil zu handhaben und es scheint einige Probleme mit diesen beiden zusammen zu sein.

Ich versuche zu verstehen, was Ansatz für die DAL zu verwenden. Ich hatte ursprünglich geplant, LINQ to SQL verwenden, aber ich habe Häppchen lesen, die sie angeben, nicht in einer Manchmal Connected Einstellung funktionieren. Ich habe daher mit zahlreichen Lösungen zu lesen und zu experimentieren versucht; SubSonic, NHibernate, Entity Framework. Dies ist eine relativ einfache Anwendung und aufgrund einer „drohenden“ verion 3 Neugestaltung dieser Aufwand grenzwertig sein kann „Wegwerf“. Die Betonung liegt hier auf immer eine Desktop-Version und läuft so schnell wie möglich.

Was ich hier frage, ist für jedermann mit jeder Erfahrung eines dieser Technologie (oder einem Ich habe nicht aufführen) mir Ihre hart verdiente Weisheit zu verleihen. Was mein bester Ansatz ist, Ihrer Meinung nach für mich, zu verfolgen. Jede andere Erkenntnisse über die Schaffung dieser Art von App? Ich bin wirklich mit dem DAL Teil dieses Programms zu kämpfen.

Danke!

War es hilfreich?

Lösung

Wenn die gespeicherten Prozeduren zu tun, was Sie wollen, dass sie, würde ich muss sagen, ich bin zweifelhaft, dass Sie Vorteile erhalten werden, indem sie wegzuwerfen und sie Neuimplementierung. Außerdem sollte es keine Rolle, ob Sie gespeicherte Prozeduren oder LINQ to Zugriff Stildaten SQL verwenden, wenn es darum geht, Ihre Daten zurück an die Master-Datenbank zu replizieren, so sich Gedanken über die DAL Sie scheint verwenden eine falsche Fährte zu sein.

Der schwierige Teil über manchmal verbundene Anwendungen kommt mit einem guten Konfliktlösung System. Meine Vorschläge:

  • Verwenden Sie immer RowGuids als primäre Schlüssel zu den Tabellen. Mergereplikation funktioniert am besten, wenn Sie immer wieder neue Datensätze eindeutig verkeilt.
  • Erkenne, dass Mergereplikation kann nur so viel tun: es ist groß für neue Daten in unterschiedlichen Systemen zusammenzubringen. Es kann sogar einseitiges Updates herauszufinden. Es nicht auf magische Weise feststellen, dass Ihr neuer Rekord und mein neuer Rekord ist eigentlich die gleiche noch kann es wirklich mit den Veränderungen auf beiden Seiten ohne menschliche Eingreifen oder Vorfahrtsregeln befassen.
  • Aus diesem Grund werden Sie „matching“ Regeln müssen Datensätze lösen, die neu zu sein behaupten, sind aber eigentlich nicht. Beachten Sie, dass dies ein Fuzzy-Schritt ist: selten können Sie sich auf einen eindeutigen Schlüssel verlassen eigentlich genau das gleiche auf beiden Seiten und ohne Fehler eingegeben werden. Dies bedeutet, gewichtete Matches geben, wo viele Ihre Indikatoren sind gleich oder ähnlich.
  • Die Benutzeroberfläche für die Lösung von Konflikten und „neue“ Aufzeichnungen mit den ursprünglichen Anforderungen entsprechen bis sein, einfach zu bedienen. Ich verwende etwas, das zu den klassischen drei ähnlich sieht fusionieren, dass viele Quellensteuersysteme verwenden: Rekord A, Rekord B fusionierte Datensatz. Sie können die zusammengeführten Datensatz auf A oder B Standard durch einen Kopftaste klicken und kann jedes Feld auswählen, indem Sie gegen sie als gut. Schließlich fusionierte Datensätze Felder für die Bearbeitung geöffnet sind, da muss man manchmal auch Teile der Adresse nehmen (sagen wir) von A und B.

All dies sollte Ihre Datenzugriffsschicht im Geringsten beeinflussen: das alles entweder geringere oder höheren Ebene (Konfliktlösung, indem Sie Ihre Geschäftsregeln für die Auflösung zur Verfügung gestellt) (Mergereplikation, durch die Datenbank selbst zur Verfügung gestellt) als Ihre DAL .

Andere Tipps

Wenn Sie ein DB-System lokal installieren können, gehen für etwas, das Sie mit vertraut fühlen. Das größte Problem, das ich denke, dass die Synchronisation und Zusammenführung Teil sein. Sie müssen denken, von mehreren Möglichkeiten: Veränderte etwas, das jemand anderes auf dem Server gelöscht. Wer entscheidet?

nie den Sync Framework selbst, gerade einen Artikel gelesen. Aber das kann Ihnen ein solides Fundament gebaut auf. Aber jede Weise, die Sie mit dem Datenzugriff gehen, wird die Lösung auf die Businesslogik wahrscheinlich eine viel größere Wirkung ...

Es ist eine Beispielanwendung issueVision Microsoft namens 2004
löschte zurück http://windowsclient.net/downloads/folders/starterkits/entry1268.aspx

Gefunden Link auf alten Thread in joelonsoftware.com. http://discuss.joelonsoftware.com/default.asp?joel.3.25830. 10

Weitere Ideen ...
Was ist mobiles Breitband? Ein paar 3G-Mobilfunk-Karten funktionieren morgen und Ihre App wird keine Änderungen benötigen sans große Seiten / Grafiken.

Excel-Tabelle im Feld verwendet. DTS oder SSIS-Daten in Anwendung zu importieren. Während eine „bessere“ Lösung erstellt wird.

Viel Glück!

Wenn von SP gespeicherten Prozeduren bedeuten ... Ich bin nicht sicher, ob ich verstehe Ihre Argumentation von dem Versuch, von ihnen weg zu bewegen. Bedenkt man, dass sie schnell, bewährt und bereits für Sie geschrieben (dh. Getestet).

Sicher, wenn Sie eine App machen, das die ursprüngliche nachahmen wird, gibt es bestimmte Vorteile, wie viel von der ursprünglichen (Arbeits-) Code-Basis wie möglich zu halten - die am wenigsten von denen Geschwindigkeit

.

Ich würde versuchen, eine lokale Kopie der db installieren, und dann seit dem letzten angeschlossenen Zeitraum an dem Master db alle betroffenen Datensätze drücken, wenn sie nicht verbunden zu werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top