Frage

Ich werde eine interne, gelegentlich verbundene App (OCA) bauen. Welche Technologien würden Sie vorschlagen, die ich anwende.

Hier sind meine Parameter:

  1. .NET Shop (3.5sp1)
  2. C# für Code dahinter (Winform, WPF, Silverlight)
  3. SQL Server Backend (2005 oder möglicherweise 2008 bis zur Genehmigung)
  4. Solo -Entwickler
  5. Solo SQL Administrator
  6. Low -Tech -Endbenutzer
  7. Niedrige Bandbreite bis 5 Filialen Ämter
  8. Dies ist eine LOB -App, aber keine POS.
  9. Die Mehrheit der Benutzer hat Laptops, die sie zu Hause des Mitglieds bringen
  10. Die Daten für diese App werden in 5 separaten Datenbanken gespeichert, jedoch in einer SQL -Instanz.

Ich suche nach spezifischen Empfehlungen, auf welchen Weg sie wählen sollen. Replikation oder Sync -Framework -Datenbank -Synchronisationsanbieter zusammenführen? SQL Express oder SQL CE im Abonnenten? Kann ich LINQ verwenden, um SQL für den DAL?

Ist ein Silverlight 'Offline/Out Out Browser App' Beispiel hier, machbar?

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


Wie hier angefordert, finden Sie einige zusätzliche Informationen zur Art der Daten. Meine Nutzer sind Krankenschwestern und Sozialarbeiter, die zu den Häusern des Mitglieds gehen und "Pläne" oder "Gesundheitsbewertungsbewertungen" für sie erstellen. Dies sind Dinge wie eine Medikamentenliste oder eine Liste der aktuellen "Anbieter". Schritte zur Erreichung der Ziele der Mitglieder oder einer Liste der aktuellen/früheren Diagnose. Sachen wie diese.

Auch der typische Name, die Adresse, die Adresse, die Telefonnummer usw. der Mitglieder. Dies ist hauptsächlich eine Datenspeicherung und Abruf -App, die die Berichterstattung erleichtert. Sehr wenig "Verarbeitung" findet statt und Krankenschwestern und Sozialarbeiter arbeiten in Teams, die Mitglieder sind, daher habe ich normalerweise nur sehr wenig Crossover- oder potenzielle Datenkonflikte. Krankenschwestern und SWs sind auch für verschiedene Bereiche des MCP verantwortlich (Mitglied zentrierter Plan)


Zusätzliche Frage; Ist Sync Framework wirklich nur eine praktikable Option, wenn ich SQL 2008 verwenden kann? Scheint so aufgrund der Änderungsverfolgung usw. ... Gedanken?

War es hilfreich?

Lösung

Sobald Sie das Problem der Änderungserkennung und Datenbewegung gelöst haben, ist alles andere trivial. Mit anderen Worten, Technologien wie WPF, Silverlight, Formen und sogar WCF sind orthogonal für Ihr Hauptproblem, und Ihre Wahl sollte auf Ihren persönlichen Vorlieben und Erfahrungen beruhen. Die wahre harte Nuss zum Riss arbeitet nicht miteinander verbunden und synchronisiert Änderungen. Wodurch zwei Wege außerhalb des Boxs gelassen werden: Synchronisierungsrahmen oder Replikation.

Ich würde sagen, für Ihr Szenario definitiv Synchronisierungsrahmen. Die Zusammenführungsreplikation ist wie alle Replikationsformen für Systeme ausgelegt, die kontinuierlich mit interemonierenden Trennungen verbunden sind. Und die kritischsten Replikation können nur über statische Namen funktionieren. Laptops, die sich aus verschiedenen Hotspots und ISPs verbinden, haben eine böse Angewohnheit, FQ-Namen mit jeder Verbindung zu ändern. Die Replikation kann dies nur überwinden, wenn ein VPN -Sortier verwendet wird und VPN normalerweise ein wichtiges Unterstützungsproblem ist. Die Replikation ist einfach nicht für die hohe Mobilität von OCA -Systemen ausgelegt.

Das Synchronisierungsrahmen zwingt Sie so ziemlich zum SQL 2008 -Back -End, weil Datenerfassung ändern oder Verfolgung ändern, Beide sind nur SQL 2008 -Funktionen.

Sie haben weiterhin viele schwere Probleme zu lösen (Authentifizierung, Versioning und Upgrade, Richtlinien zur Datenkonfliktlösung, die Sicherung von Daten zum Kunden für versehentliche Medienverlust usw.).

Andere Tipps

Persönlich würde ich sagen:

  • .NET 3.5
  • WCF -Datendienste (für die Kommunikation zwischen der Client -App und Ihren Daten)
  • SQL Server 2K5/2K8 (je nachdem, was Sie verwenden können)
  • Silberlicht mit der Browserfunktionalität
  • VISTADB (um Daten lokal im Client zu speichern, bis Sie auf den Server drücken können)

verwenden eindeutige Kennung Für den Schlüssel, wenn Sie Offline -und nicht verbundene Sachen erstellen, und wenn Sie eine Verbindung herstellen, aktualisieren Sie die Datenbank.

Dies wird viel einfacher sein, als den Auto-Increment-Schlüssel zu verwenden

Nachdem ich an einer gelegentlich verbundenen Anwendung gearbeitet hatte, empfehle ich Sie, nach SQL Server CE für die Client -Maschinen zu suchen, mit Sync -Diensten, um die Verbindungen zu verarbeiten. Hier ist ein gutes Tutorial.

Sie könnten dieses Zeug von Grund auf erschaffen, so scheint es.

Dies scheint jedoch eine schreckliche CRM -Anwendung zu sein, und es würde mich nicht überraschen, wenn Sie ein Unternehmenssoftwarepaket finden könnten, um dies zu tun, ohne von vorne zu beginnen, und stattdessen eine der Konfigurationen zu ändern, um Ihre Geschäftsregeln zu erfüllen.

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

Es könnte eine billigere Route sein, als Sie Ihre eigenen von Grund auf neu zu rollen.

Ich habe ein Bestellprogramm für Weinvertriebsmitarbeiter geschrieben. Hier ist das Video. Die Client-Software wird mit Click-Once installiert. Dadurch werden auch SQL Server Express installiert und die Datenbank geladen. Ich habe das Microsoft Sync Framework verwendet, um die lokale Datenbank mit der auf dem Server zu synchronisieren (siehe den letzten Abschnitt des Videos).

  • Mit leistungsstarken Clients jetzt sehe ich keinen Grund, SQL Server Express nicht zu verwenden, es ist kostenlos mit einem Grenzwert von 4 GB.

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

  • Sie müssen überall als Hauptschlüssel Guids verwenden - siehe New SeenialID ().

  • Ich liebe Click-Once, es ist ein großer Sparer.

Ich freue mich auf Silverlight, hatte aber einfach keine Zeit, es zu prüfen. Ich bin mir nicht sicher, ob ich es mit Silverlight getan hätte, wenn ich es jetzt tun oder nicht.

Trotzdem ist dies kein Projekt für niemanden, der unerfahren ist. Also würde ich auch sehr erfahrene Hilfe bekommen.

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