10.529 messaggi dal 09 febbraio 2002
Contributi
Ciao,


la proposta di far salvare il file da browser non è stata accettata dal cliente, motivata da "...i miei utonti non sono in grado di fare questo."

È normale che ti abbia risposto così. Ma anche se ti avesse detto OK, non avresti neanche dovuto considerarla come una soluzione valida. L'esperienza d'uso degli utenti non deve essere compromessa a causa di problemi puramente tecnici, soprattutto quando sono facili da risolvere.


cosa mi consigli

ri-ripeto:


Scrivi tu una seconda applicazione per Windows che dovrà girare in background e che si registrerà per gestire il protocollo scontrino://. L'applicazione si limiterà a scrivere il file .txt in base ai dati giunti da URL. In mezza giornata te la cavi.

URL da cui partire:
https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx

ciao,
Moreno

Enjoy learning and just keep making
3.777 messaggi dal 28 gennaio 2003
scusate se mi intrometto... ma è un argomento interessante e la risposta lo è ancora di più.

non capisco "applicazione per Windows che dovrà girare in background"

seguendo l'esempio proposto ho creato una semplice applicazione console. Ma questa applicazione viene aperta ad ogni richiesta dell'url particolare

Pietro
10.529 messaggi dal 09 febbraio 2002
Contributi
Ciao Pietro,
puoi anche lasciare che si apra ogni volta, tanto deve semplicemente salvare il contenuto dell'url in un file.

L'ideale sarebbe non far aprire alcuna finestra e questo lo puoi fare abbastanza facilmente con un'applicazione WinForms (non mostrare alcun Form quando l'applicazione parte).

In alternativa, se vuoi avere una sola istanza dell'app che gira in background, puoi farlo seguendo questo post.
http://www.hanselman.com/blog/TheWeeklySourceCode31SingleInstanceWinFormsAndMicrosoftVisualBasicdll.aspx
In realtà, anche con questa soluzione, ogni volta che l'URL viene aperto verrà eseguito un nuovo processo ma, anziché scrivere lui il file, delegherà questo compito all'istanza già aperta. Un approccio del genere non è strettamente necessario ma potrebbe essere utile a boysoft se deve creare una coda per la scrittura sul file, nel caso in cui debbano essere stampati parecchi scontrini a raffica (es. se nella sua applicazione esiste una funzione "Stampa tutti").
Presumo che in quel caso si debba attendere un certo intervallo tra una scrittura e l'altra, per consentire all'altra applicazione di stampa scontrini un tempo sufficiente per accorgersi che il file è stato modificato, aprirlo in lettura e chiuderlo.

ciao,
Moreno
Modificato da BrightSoul il 12 febbraio 2018 13.04 -

Enjoy learning and just keep making
3.777 messaggi dal 28 gennaio 2003
Hai ragione: con una windows form si evita di vedersi aprire una finestrella DOS per un istante. E ho visto che funziona bene.



Ti ringrazio ancora.

Pietro
145 messaggi dal 08 dicembre 2003
Grazie Moreno... il tuo suggerimento ha dato i risultati voluti.
Da un po di giorni però, visto che sono aumentati i client connessi, riscontro un blocco random sulla creazione del file che viene dato in pasto all'applicazione che gira in background. Il tutto probabilmente per un problema di 'code' che si viene a creare.
Che tu sappia c'è un modo per passare come parametro all'applicazione in background un vettore, piuttosto che N parametri uno dietro l'altro?
10.529 messaggi dal 09 febbraio 2002
Contributi
Ciao, prego! Sono contento che il problema sia stato risolto.
Tu hai il completo controllo sulla stringa che viene passata via URL e quindi puoi scegliere liberamente un formato di serializzazione che sia comprensibile all'applicazione in background. Per esempio, dovendo passare un array, puoi decidere di passare i valori separandoli con la virgola, oppure puoi usare il JSON che ti consentirà anche di passare un'intera gerarchia di oggetti.


sono aumentati i client connessi, riscontro un blocco random sulla creazione del file che viene dato in pasto all'applicazione che gira in background. Il tutto probabilmente per un problema di 'code' che si viene a creare

Non ho capito. Ogni client non ha un proprio registratore di cassa?


ciao,
Moreno
Modificato da BrightSoul il 25 marzo 2018 13.43 -

Enjoy learning and just keep making
145 messaggi dal 08 dicembre 2003
Si hai ragione... infatti sto passando all'uso di JSON che mi sembra più versatile rispetto allo SPLIT della 'stringa comandi' che uso attualmente.
Purtroppo il registratore di cassa può 'servire' contemporaneamente più client. Non è il classico punto vendita... in realtà è una sorta di deposito/logistica che ad ogni spedizione associa uno scontrino.
Visto l'interesse per questo post vi terrò aggiornati sul prosieguo.
A presto...
10.529 messaggi dal 09 febbraio 2002
Contributi

Purtroppo il registratore di cassa può 'servire' contemporaneamente più client.


Ok, se il registratore di cassa ha un proprio IP ed è collegato via Ethernet, presumo che sia in grado di accettare richieste da più client contemporaneamente, un po' come funzionano le stampanti di rete.

Il problema si verifica quando due client vogliono stampare uno scontrino in contemporanea?

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.