Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #18939 > unrolled thread

Alert su nuovo record

Started byMarco75 <marcoporzi75@gmail.com>
First post2016-12-06 07:33 -0800
Last post2016-12-06 09:07 -0800
Articles 3 — 2 participants

Back to article view | Back to it.comp.lang.visual-basic


Contents

  Alert su nuovo record Marco75 <marcoporzi75@gmail.com> - 2016-12-06 07:33 -0800
    Re: Alert su nuovo record Luca D <antaniserse@yahoo.it> - 2016-12-06 08:40 -0800
      Re: Alert su nuovo record Marco75 <marcoporzi75@gmail.com> - 2016-12-06 09:07 -0800

#18939 — Alert su nuovo record

FromMarco75 <marcoporzi75@gmail.com>
Date2016-12-06 07:33 -0800
SubjectAlert su nuovo record
Message-ID<3b3f5386-ccfc-4b66-a2bf-21df0078159e@googlegroups.com>
Ciao,
sto sviluppando un'app con visual studio 2010 che poi sarà distribuita a diversi client..

vorrei, dopo l'inserimento di un nuovo record, far comparire ai vari client un popup di avviso "Nuovo inserimento!!"

a questo punto, gli altri utenti vedono il popup, aprono il form con i dati inseriti e alla chiusura si "spegne" l'avviso fino al prossimo record..

Ho provato con My.Settings.ContaRecordIns e My.Settings.ContaRecordVisti dove ContaRecordIns era di tipo application e l'altro tipo client ma il tipo application non me lo fa aggiornare in quanto di sola lettura..

Qualche suggerimento?
grazie
Marco

[toc] | [next] | [standalone]


#18940

FromLuca D <antaniserse@yahoo.it>
Date2016-12-06 08:40 -0800
Message-ID<8f7203c4-420e-4937-8c31-5dd80d11dad7@googlegroups.com>
In reply to#18939
On Tuesday, December 6, 2016 at 4:33:28 PM UTC+1, Marco75 wrote:
> Ciao,
> sto sviluppando un'app con visual studio 2010 che poi sarà distribuita a diversi client..
> 
> vorrei, dopo l'inserimento di un nuovo record, far comparire ai vari client un popup di avviso "Nuovo inserimento!!"
[...]

Per una cosa del genere, non puoi usare My.Settings per due motivi:
- Se marchi la variabile con scope 'Application', questa viene mantenuta nel file .config principale (quindi eventualmente visibile su una share di rete) ma per design sono valori in sola lettura, come hai constatato.

- Se marchi la variabile con scope 'User', è accessibile anche in scrittura ma viene salvata in un file user.config sulla macchina client (il framework poi si preoccupa di fare il merge in memoria tra i valori del .config principale e questi) e quindi non accessibile in rete

Per questo tipo di notifiche in rete, ci sono vari sistemi, a vari livelli di complessità... visto che a quanto capisco l'applicazione lavora già con un database centralizzato, una soluzione terra-terra è semplicemente creare una tabella di notifiche, inserire i record che servono e poi avere o una piccola applicazione separata che parte insieme alla principale, o un processo integrato che lavora su un thread differente, che fa il polling di quella tabella ogni tot secondi
Concettualmente potresti anche fare la stessa cosa scrivendo tu un file XML su share di rete, al posto dei .config standard, e usando poi un FileSystemWatcher per monitorare le modifiche, ma questa è già più bruttarella 

Pu nell'essere relativamente artigianale, l'opzione tabella db+polling ha il vantaggio di poter essere usata tra client peer-to-peer, senza bisogno di avere un server applicativo specifico dove posizionare un altro componente che lavori con socket/WCF/WebServices o altre soluzioni più strutturate per messaggi tra applicazioni... se però il sistema di notifiche diventa più complesso, può valere la pena guardare queste ultime

[toc] | [prev] | [next] | [standalone]


#18941

FromMarco75 <marcoporzi75@gmail.com>
Date2016-12-06 09:07 -0800
Message-ID<a30957ec-d23a-4858-bd87-3314776133f1@googlegroups.com>
In reply to#18940
Il giorno martedì 6 dicembre 2016 17:40:35 UTC+1, Luca D ha scritto:
> On Tuesday, December 6, 2016 at 4:33:28 PM UTC+1, Marco75 wrote:
> > Ciao,
> > sto sviluppando un'app con visual studio 2010 che poi sarà distribuita a diversi client..
> > 
> > vorrei, dopo l'inserimento di un nuovo record, far comparire ai vari client un popup di avviso "Nuovo inserimento!!"
> [...]
> 
> Per una cosa del genere, non puoi usare My.Settings per due motivi:
> - Se marchi la variabile con scope 'Application', questa viene mantenuta nel file .config principale (quindi eventualmente visibile su una share di rete) ma per design sono valori in sola lettura, come hai constatato.
> 
> - Se marchi la variabile con scope 'User', è accessibile anche in scrittura ma viene salvata in un file user.config sulla macchina client (il framework poi si preoccupa di fare il merge in memoria tra i valori del .config principale e questi) e quindi non accessibile in rete
> 
> Per questo tipo di notifiche in rete, ci sono vari sistemi, a vari livelli di complessità... visto che a quanto capisco l'applicazione lavora già con un database centralizzato, una soluzione terra-terra è semplicemente creare una tabella di notifiche, inserire i record che servono e poi avere o una piccola applicazione separata che parte insieme alla principale, o un processo integrato che lavora su un thread differente, che fa il polling di quella tabella ogni tot secondi
> Concettualmente potresti anche fare la stessa cosa scrivendo tu un file XML su share di rete, al posto dei .config standard, e usando poi un FileSystemWatcher per monitorare le modifiche, ma questa è già più bruttarella 
> 
> Pu nell'essere relativamente artigianale, l'opzione tabella db+polling ha il vantaggio di poter essere usata tra client peer-to-peer, senza bisogno di avere un server applicativo specifico dove posizionare un altro componente che lavori con socket/WCF/WebServices o altre soluzioni più strutturate per messaggi tra applicazioni... se però il sistema di notifiche diventa più complesso, può valere la pena guardare queste ultime

Ho capito..
vista anche la fretta di concludere l'app direi che posso utilizzare una soluzione "artigianale" già usata in Access per verificare le versioni del client:

metto un file ini o txt in una cartella di rete dove scrivo i record inseriti
metto un file ini o txt in una cartella di rete dove scrivo i record letti

nel form home faccio la differenza tra i letti e gli inseriti ogni 5 min con timer e se diversi apro il form di avviso..
In chiusura di maschera lettura dati aggiorno il local che andrà a coincidere con quella in rete

grazie
Marco

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.lang.visual-basic


csiph-web