.net - Gem XML Lokal Indtil Netværksforbindelse Genoptager

Indlæg af Hanne Mølgaard Plasc

Problem



Nyt til. NET, ethvert punkt i den rigtige retning ville være en stor hjælp.


Forsøger at skrive et program til at acceptere dataindgang i et fremstillingsmiljø og gemme det direkte i en SQL-database.


Et problem, jeg kan forudse, er, hvis den trådløse netværkstilslutning afbrydes (eller midlertidigt uden for rækkevidde)


Hvor skal jeg undersøge, eller hvordan skal jeg gå i gang med at oprette en lokal XML-kopi eller midlertidig lokal XML-fil, hvis forbindelsen ikke bliver tilbageført til serveren?


Eventuelle forslag eller metoder til at gøre dette?


Tak!


(Jeg er en VB programmerer, men kan finde ud af C # oversættelse, hvis det er nødvendigt)

Bedste reference


hvorfor vil du ikke bruge Local Database caching-mekanismen? Walkthrough: Tilføjelse af en lokal database cache til et N-Tier-program [1]

Andre referencer 1


Vi havde det samme problem. Hvad vi gjorde var at bruge en lokal database, du kan gøre det samme, for eksempel ved at bruge SQLLite det er en god ide. Det er også muligt at gemme dataene ved hjælp af XML.


Nå, det gjorde vi, vi har to adskilte tråde:


i) en tråd (A), der scanner kilden til dataene (PLC'er i vores tilfælde) og sætter dataene i det midlertidige lager (i dit tilfælde XML-filer).


ii) en tråd (B), der scanner de midlertidige data og sender den til den centrale database. De data, der sendes til den centrale server, kan enten slettes eller markeres som sendt.


Dette virker meget godt. Når (B) ikke kan oprette forbindelse til serveren akkumuleres datastjernerne i den lokale database/xml. Når forbindelsen til serveren er tilgængelig igen, sendes dataene korrekt.

Andre referencer 2


Brug NHibernate med to forskellige datalager, en til fjernbetjening, en til lokal. Problemet kommer med synkronisering bagefter. Du kan iterere gennem objekterne i den lokale database og foretage disse ændringer til master og derefter slette dem fra den lokale database. Ideelt efter hver forbindelse skal du have nul data i den lokale database - medmindre det er en del af dit design, i hvilket tilfælde din synkroniseringsopgave bare blev mere kompleks.

Andre referencer 3


Message Queuing fungerer muligvis for dig http://code.msdn.microsoft.com/msmqpluswcf[2]


Du kan skrive dine meddelelser til køen og derefter have en anden proces, der læses fra køen og skrive til databasen.

Andre referencer 4


Her er hvor jeg ville starte: Smart Client Architecture and Design Guide [3]


Der er en Smart Client Application Block, der kan hjælpe dig med nogle af de vanskeligere detaljer. Smart Client Application Block hjælper med at synkronisere lokale ændringer til ændringerne i en DB.