Domanda

In realtà non sono sicuro esattamente come la questione dovrebbe essere formulata, quindi per favore siate pazienti se chiedo la cosa sbagliata.

Sto scrivendo un'applicazione ASP.NET utilizzando Visual Basic come il codice dietro la lingua. Ho una classe di dati di accesso che si collega al database per eseguire la query (parametrizzata, ovviamente), e un'altra classe per svolgere i compiti di validazione - accedo questa classe dalla mia pagina aspx

.

Quello che vorrei è quello di essere in grado di memorizzare i dati lato server e attendere che l'utente di scegliere tra alcune opzioni in base alla validità dei dati. Ma a meno che la mia comprensione è completamente fuori, avendo oggetti dati persistenti sul server darà problemi quando più utenti si collegano?

Il mio obiettivo finale è che una volta che i dati è stato convalidato l'utente finale non può modificarlo. Attualmente sto convalidare i dati, ma devo ancora recuperare dal modulo web dopo che l'utente dice OK, che ovviamente lascia aperta la possibilità di iniettare dati errati accidentalmente (improbabile) o di proposito (anche improbabile per l'uso, ma io preferisco non correre il rischio).

Quindi, io sono completamente fuori nella mia comprensione? Se è così, qualcuno può puntare a una risorsa che fornisce alcune istruzioni su come mantenere i dati persistenti sul server, o fornire istruzioni?

Grazie!


esempio concreto:

Recentemente abbiamo assunto Inspector Gadget per inserire i dati per gli ispettori Segnale che vanno 'round ispezionando i cartelli autostradali per assicurarsi che nessuno di loro è stato storpiato o rubato da bubble-gum da masticare, normalmente onesto membri del consiglio comunale dei giovani.

Se gadget in grado di dimostrare il suo coraggio allora potrebbe ottenere una promozione per fare le ispezioni segno attuali. Per ora, il suo unico lavoro consiste di andare in questo sito intranet un'informazione inputing sulle ispezioni più recenti. Il distretto, contea, percorso #, tratto di strada, e date il segno è stato installato e ispezionato.

Naturalmente nessuno di noi che erano vivi alla fine degli anni '80 hanno familiarità con inettitudine gadget. Così il sito è di circa come gadget come prova ce la possiamo fare. Il distretto / provincia / percorso è tutto compilati tramite un elenco a discesa, si deve solo inserire manualmente l'inizio della sezione e di fine e le date. A volte si armeggia il mouse e finisce fuori scambiare l'inizio e la fine della sezione, doh! Così i giri testo rosso per avvisare gli dell'errore. Purtroppo ha scelto di indossare gli occhiali da sole anti-rossi oggi che trasformano tutti i colori rosso al nero. Ebbene, dopo aver tentato di inviare i dati che gli mostra un messaggio di errore di lui dove e che cosa ha bisogno di correzione dicendo. Purtroppo ha grasso dita sulla tastiera e, invece di immettere 1.337 ha messo a 13,37 (miglia) - e la strada è a soli 10 miglia di lunghezza! Bene, ora un messaggio (un div modale) si apre e gli dice che il vero chilometraggio per la strada è 0-10, e che il suo ingresso combinerà tre sezioni della strada. Poi si è dato tre pulsanti tra cui scegliere. Cancellare, che gli permette di andare a modificare i propri dati, Vincola, che converte 13,37-10, e override, che gli permetterà di inserire i dati in ogni caso.

"Yowza!" Gadget esclamò, e cliccato su annulla per tornare indietro e correggere il suo errore. Beh, la prossima serie di dati che di input correttamente, quindi un messaggio di conferma spuntato mostrandogli i cambiamenti che stava per fare e chiedendo se era OK per continuare. Beh, purtroppo ispettore Gadget rovesciò la tazza di caffè, spargendo detriti in tutta la sua scrivania. Nella fretta per ripulirlo, ha cliccato "OK", ma non prima che il suo Go-Go-Gadget elettromagnete accidentalmente girato pochi bit sul suo computer, cambiando la contea in forma da Arkansas a AKRSANAS, doh!

Ha avuto i dati sono memorizzati sul server attraverso campus, e l'unica informazione passata era "OK" o "Cancel", questo sarebbe stato evitato.


Certo che posso sempre validate nuovo dopo il "OK", ma sembra proprio come una soluzione hacky.

In ogni caso, spero che questo chiarisce!

È stato utile?

Soluzione

Penso che si sta pensando di usare la cache del server web. In ASP.NET, è possibile utilizzare Context.Cache per memorizzare i dati sul server. Una volta che uno cache utente è tutto, qualsiasi altro utente sul server può anche accedervi.

Poiché i dati vengono memorizzati nella cache sul server, si vuole cancellare la cache di ogni si chiama una query di aggiornamento sul DB. Quindi la prossima volta che caricare i dati, è possibile salvare i dati nella cache di nuovo.

Nel tuo metodo di selezione, controllare se la vostra cache [tasto] non è nullo. Se lo è, quindi caricare i dati dal DB e quindi salvarlo cache [tasto] prima di restituire i dati. Se non è nullo, quindi è sufficiente caricarlo dalla cache al posto del DB.

La chiave che si utilizza può contenere i parametri in modo da non avere per filtrare i dati dalla cache .... o la chiave può essere solo generico in modo che memorizza tutti i dati. Quindi è possibile eseguire una query LINQ sui dati di filtro per i parametri

Spero che questo sia di aiuto.

Altri suggerimenti

Credo che lei si riferisce alla Concorrenza . Controlla il link per iniziare a capire che, se questo è quello che stai chiedendo circa. Probabilmente si dovrà fare un po 'più di ricerca a seconda del back-end e la vostra situazione specifica. Ancora una volta, se questo è ciò che si sta cercando si potrebbe essere interessati a particullary pessimistica la concorrenza.

http://en.wikipedia.org/wiki/Concurrency_control


Modifica Dopo aver letto il vostro esempio .... suona come si consiglia di effettuare le seguenti operazioni, in bocca al lupo.

  1. "blocco" il record utilizzando un modello della concorrenza pessimistica di qualche tipo (sul db poiché è qui i dati effettivamente) quando è accessibile dall'utente inputing dati . Questo è come fare il record db sola lettura.

  2. Quando l'utente preme ok si sarebbe probabilmente necessario convalidare tramite il codice asp.net, e se viene superato la convalida, aggiornare il db e sbloccare il record db.

  3. Se l'utente preme annullare, non aggiornare il record db, basta sbloccarlo.

  4. Se l'utente vuole forzare l'ingresso, poi basta aggiornare il db e sbloccare il record db.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top