2010-01-20 2 views
9

Ich werde eine Inhouse-Occasionally Connected App (OCA) erstellen. Welche Technologien würde ich Ihnen vorschlagen?Tools zum Erstellen einer OCA (gelegentlich verbundene Anwendung)

Hier sind meine Parameter:

  1. .NET Shop (3.5sp1)
  2. C# für Code-behind (winform, wpf, Silverlight)
  3. SQL Server-Backend (2005 oder möglicherweise 2008 ausstehende zustimmung)
  4. Solo Entwickler
  5. Solo SQL Administrator
  6. Low Tech Endanwendern
  7. Geringe Bandbreite bis 5 Niederlassungen
  8. Dies ist ein LOB app aber kein POS.
  9. Mehrheit der Nutzer haben Laptops, die sie
  10. Die Daten für diese App zu Mitgliedern nach Hause nehmen wird in 5 separaten Datenbanken gespeichert, wenn auch in einer SQL-Instanz.

Ich bin auf der Suche nach bestimmten Empfehlungen auf dem Weg zu wählen. Merge Replication oder Sync Framework-Datenbanksynchronisierungsanbieter? SQL Express oder SQL CE auf dem Abonnenten? Kann ich LINQ to SQL für die DAL verwenden?

Ist eine Silverlight "Offline/Out of Browser App" Example Here, machbar?

Dies ist meine erste große Geschäftsanwendung, so dass alle erfahrenen Kommentare willkommen sind.


Wie hier angefordert ist einige zusätzliche Informationen über den Datentyp. Meine Benutzer sind Krankenschwestern und Sozialarbeiter, die zu den Häusern der Mitglieder gehen und für sie "Pläne" oder "Bewertungen der Gesundheitsbewertungen" erstellen. Dies sind Dinge wie eine Medikamentenliste oder eine Liste der aktuellen "Anbieter". Schritte, um die Ziele der Mitglieder zu erreichen oder eine Liste der aktuellen/früheren Diagnosen. Sachen wie diese.

Auch die typischen Mitglieder Name, Adresse, Telefonnummer, etc. Dies ist meist eine Datenspeicherung und Abruf App, die Berichterstattung erleichtert. Sehr wenig "Verarbeitung" findet statt und Krankenschwestern und Sozialarbeiter arbeiten in Teams, die Mitglieder zugewiesen sind, so dass ich normalerweise sehr wenig Crossover oder mögliche Datenkonflikte habe. Krankenschwestern und SW ist auch verantwortlich für die verschiedenen Bereich des MCP (Mitglied Centered-Plan)


Zusatzfrage; Ist Sync Framework wirklich nur eine brauchbare Option, wenn ich SQL 2008 benutzen kann? Scheint so wegen der Change Tracking etc .... Gedanken?

+0

Teilen Sie uns bitte mit, mit welchen Daten Sie arbeiten werden. Insbesondere, welche Art von Volume und Churn erwarten Sie in jeder Richtung (zwischen einem Benutzer und dem Server)? –

+0

opps, verpasste den Volumenteil. Wir haben 300 Angestellte und 5000 Mitglieder. Sie neigen dazu, mehrere "Pläne" pro Tag zu bearbeiten. –

+0

@RefraktedPaladin Hast du es am Ende geschafft? Ich schaue mir ein ähnliches Programm an. Irgendwelche Zeiger? –

Antwort

4

Sobald Sie das Problem der Änderungserkennung und Datenbewegung lösen, ist alles andere trivial. Mit anderen Worten sind Technologien wie WPF, Silverlight, Forms und sogar WCF orthogonal zu Ihrem Hauptproblem und Ihre Wahl sollte auf Ihren persönlichen Vorlieben und Erfahrungen basieren. Die wirklich harte Nuss, die es zu knacken gilt, funktioniert getrennt und synchronisiert Änderungen. Das lässt zwei Out-of-the-Box-Möglichkeiten offen: Synch Framework oder Replikation.

Ich würde sagen, für Ihr Szenario, definitiv Synch Framework. Die Zusammenführungsreplikation ist wie alle Replikationsformen für Systeme vorgesehen, die ständig mit Unterbrechungen verbunden sind. Und am kritischsten kann Replikation nur über statische Namen funktionieren. Laptops, die von verschiedenen Hot-Spots und ISPs angeschlossen werden, haben die unangenehme Angewohnheit, FQ-Namen mit jeder Verbindung zu ändern. Die Replikation kann dies nur überwinden, wenn ein VPN mit Sortierung verwendet wird und VPN in der Regel ein großes Supportproblem darstellt. Die Replikation ist einfach nicht für die hohe Mobilität von OCA-Systemen ausgelegt.

Synch Framework wird ziemlich zwingen Sie zu SQL 2008 Back-End wegen der Notwendigkeit, Change Data Capture oder Change Tracking, beide nur SQL 2008 Funktionen.

Sie werden immer noch viele schwere Probleme müssen vor lösen (Authentifizierung, Versionierung und aktualisieren, Datenkonfliktlösung Politik, Daten auf dem Client für versehentliche Medien Verlust etc etc Sicherung)

+0

Möglicherweise eine dumme Frage, aber mit 'Sync Framework' kann ich' Linq To Sql' trotzdem als meine DAL benutzen? –

+0

Der typische Sync Framework-Client ist SQL Server CE und LINQ2SQL ist nur für den 'wahren' SQL Server (dh * nicht * CE). Sie können stattdessen linq zu EF verwenden. Sie können auch entscheiden, SQL Express auf den Clients bereitzustellen, und das wird sowohl mit Synch Framework * als auch mit * linq to sql funktionieren. In Ihren Schuhen würde ich linq 2 Entity Framework und SQL Server CE auf den Clients wählen. Natürlich kenne ich nicht alle Ihre Anforderungen. –

+0

Es macht mir nichts aus dem Linq zu EF Teil, vor allem wenn man gegen die extra 'Bloat' von Express gegen CE wägt. An einem anderen Punkt; Macht es einen Unterschied, dass sie sich nur im Büro verbinden müssen? Nicht auf dem Feld. Es existieren bereits VPNs für jede Zweigstelle von der Zentrale aus. Sie nehmen die Daten einfach mit zum Mitglied. Nehmen Sie Änderungen vor und synchronisieren Sie sie erneut, wenn sie wieder im Büro sind. Ändert dies Ihre Empfehlung? –

2

Persönlich würde ich sagen:

  • .NET 3.Data Services 5
  • WCF (für die Kommunikation zwischen der Client-Anwendung und Ihre Daten)
  • SQL Server 2k5/2k8 (je nachdem, was Sie verwenden können)
  • Silverlight w/Out of Browser-Funktionalität
  • VistaDB (zum Speichern von Daten lokal auf dem Client bis zum Server)
+0

Ich könnte nur SQL Micro Edition mit SyncFramework anstelle von VistaDB als OCA Client-Server-Interaktion empfehlen – abatishchev

+0

@abatishchev Ist "Micro Edition" das gleiche wie Compact Edition? –

+0

@Refract Paladin: Ja, Entschuldigung, mein Herbst. In der Tat CE, nicht ME – abatishchev

1

Verwendung unique-Kennung für Schlüssel drücken können, wenn Sie Sachen schaffen, während offline und nicht verbunden, und wenn Sie die Datenbank verbinde, zu aktualisieren.

das wird viel einfacher sein als die Verwendung von Auto-Increment Schlüssel

+0

yup danke. Das ist eine, die ich bereits behandelt habe, aber eine wichtige, die ich sammle. –

1

Nachdem auf einer gelegentlich verbundenen Anwendung gearbeitet, würde ich empfehlen Ihnen, für den Client-Rechnern zu SQL Server CE zu sehen in, mit Sync Services Behandle die Verbindungen. Here is a good tutorial.

1

Sie dieses Zeug aus dem schaffen könnte zermahlen, scheint es.

Dies scheint jedoch sehr viel wie eine CRM-Anwendung, und es würde mich nicht überraschen, wenn Sie ein Enterprise-Software-Paket finden, ohne von Grund auf neu zu starten und stattdessen eine der Konfigurationen ändern, um Ihre Geschäftsregeln zu erfüllen .

In einem früheren Leben war ich ein Konfigurationsentwickler für dieses Ding namens Siebel, das in der Nähe sein könnte, wonach Sie suchen. Sie haben sogar ein integriertes Synchronisationstool namens Siebel Remote.

Es könnte eine billigere Route sein, als selbst zu rollen.

1

Ich schrieb ein Bestellprogramm für Weinverkäufer. Here is the video. Die Client-Software wird mit Click-Once installiert. Das installiert auch SQL Server Express und lädt die Datenbank. Ich habe das Microsoft Sync Framework verwendet, um die lokale Datenbank mit der auf dem Server zu synchronisieren (siehe letzten Abschnitt des Videos).)

  • Mit mächtigen Clients sehe ich jetzt keinen Grund, SQL Server Express nicht zu verwenden, es ist frei mit einer Begrenzung von 4GB.

  • SQL CE hatte zu viele Einschränkungen - keine gespeicherten Procs sind ein wichtiger.

  • Sie müssen überall GUIDs als Primärschlüssel verwenden - siehe die neue NewSequentialID().

  • Ich liebe Click-Once, es ist eine große Zeitersparnis.

  • Ich freue mich auf Silverlight, aber habe gerade keine Zeit gehabt, um es zu untersuchen. Ich bin mir nicht sicher, ob ich es mit Silverlight gemacht hätte, wenn ich es jetzt gemacht hätte oder nicht.

    Nach all dem ist dies kein Projekt für unerfahrene. Also würde ich auch sehr erfahrene Hilfe bekommen.

    Verwandte Themen