Newsgroup: it.comp.lang.visual-basic
Titolo: [2008 Express] voi come gestite gli errori ?

Intanto comunico a quanti mi avevano incoraggiato che il passaggio 
VB6-VB2008 dopo il trauma iniziale sta avendo successo.
L'unico piccolo problema (Kaz ..Put ...Pork ...) č che utilizzo un controllo 
(Mapppoint) che all'accoppiata Express-Vista non piace.
Piace a VB6-Vista/XP, piace a Express-XP, non piace a Express-Vista. Vedremo 
(uno fa tanto per tenersi al passo e poi come al solito si caccia nei guai)
Volevo chiedervi come fate voi la gestione degli errori.
In VB6 io metto all'inizio di ogni SUB un ON ERROR GOTO errman
in ERRMAN apro un file di log, ci scrivo numero e tipo di errore e scrivo 
anche il nome della SUB dove č accaduto.
Poi RESUME NEXT e via.
Questo non risolve realmente il problema, ma mi permette, andando ogni tanto 
a sbirciare il file log, di capire quali SUB generano errori e di correggere 
poi il tiro.
Soprattutto non mi fa apparire anatemici messaggi di errore con chiusura 
dell'applicazione, cosa che come immagine č deleterea.
Questo per gli errori che non sono in grado di prevedere, quelli che mi 
aspetto li gestisco subito opportunamente.
E' un metodo ortodosso ? Lo chiedo perchč io sono totalmente autodidatta e 
non ho mai seguito un corso o letto un libro, non ho quindi una giusta base 
alle spalle.
In particolare chiedo anche se in 2008 Express c'č un sistema piů furbo per 
fare il tutto. Sarebbe bello in un unica routine raccogliere tutta la 
gestione erori ma non credo sia fattibile (poi il nome della SUB che genera 
l'errore si puň ricavare in runtime ? Non credo, una volta compilato si 
perde tutto ...)
Ciao
Marco 

 per fare il tutto. 
Mentre in VB6 la gestione degli errori è un po' primitiva -giusto per 
usare un eufemismo- in .NET esiste un gestore degli errori molto più 
efficiente e strutturato.
disquisire di questo però diventerebbe troppo lungo,
ti invito perciò ad una ricerca su MSDN, o su google (esistono decine di 
guide gratuite) del costrutto
try
catch
finally
ciao
stefano

 compilato si perde tutto ...)
Io ho creato una mia classe che mi gestisce gli errori, la quale salva i 
dati necessari al debug.
In ogni routine ho un try... catch che mi chiama la classe qualora si 
sollevi un'eccezione.
La classe, banalmente si limita a dare un output sul file log 
dell'errore e, se l'applicazione è usata da un utente, restituisce una 
messagebox informativa.
Nicola

 sollevi un'eccezione.
ok, grazie a entrambi. Ho giŕ provato a usare il Try catch appena prima di 
un istruzione che so potrebbe dare un errore.
Se capisco bene il try catch puň essere applicato invece a tutta la SUB ?
piccolo esempio ? ....
Io non so se non ho ancora capito come si usa la guida o č fatta proprio da 
schifo. In VB6 andavo con il cursore sul nome dell'istruzione nel codice, 
premevo F1 e mi si apriva la guida con tanto di esempi. Qui mi perdo.
Marco

 perdo.
Una guida di base su 
VB.NET
http://programmazione.html.it/guide/leggi/42/guida-vbnet/
Nello specifico, la gestione degli errori:
http://programmazione.html.it/guide/lezione/1376/la-gestione-degli-errori-in-vb-net/
oppure
http://www.pierotofy.it/pages/guide/Guida_al_Visual_Basic_dotNET/Gestione_degli_errori/
o ancora
http://www.google.it/search?hl=it&q=vb.net+gestione+errori&btnG=Cerca&meta=
ciao
stefano

 
http://www.pierotofy.it/pages/guide/Guida_al_Visual_Basic_dotNET/Gestione_degli_errori/
grazie ! prezioso riassunto di link
Marco

Mi aggancio qui per segnalare un interessante (almeno per me)
post in un blog dove viene disquisita una differenza nell'IL generato 
dal compilatore VB rispetto al C#
http://weblogs.asp.net/donxml/archive/2004/11/15/257586.aspx
spero possa interessare anche qualcun'altro.
ciao
stefano

 spero possa interessare anche qualcun'altro.
qualcun altro
mi bacchetto da solo ...
ciao
stefano

 prodotta con dati errati?
scusa se mi intrometto, ma avrei una domanda che non centra nulla con la 
discussione ma per me e' importante,
sia per mia curiosita', sia per capire come funzionano queste cose.  te fai 
riferimento ad un tuo gestionale per ottici, e per questo ti chiedo, come si 
fa' a mettere al sicuro un propio programma? cioe', sapevo che non ci sono 
brevetti per il software, quindi quali precauzioni ci sono per essere sicuri 
che una volta messo in commercio non venga copiato, o peggio ancora che 
venga copiato ma riscritto con qualche modifica e ricommercializato da 
altri? 

 altri? 
Con VB6 è facile poichè il compilato è praticamente impossibile da 
decompilare.
Con .NET ci sono gli offuscatori che rendono più difficile l'operazione 
di decompilazione. Creare un'applicazione come il mio gestionale è un 
operazione che porta via 1 mese di pianificazione 6 mesi/uomo per la 
realizzazione. Se per deoffuscare ci volessro 5 mesi, chi avrebbe 
convenienza a farlo? Molto meglio riscrivere tutto da zero.
Non dimenticare che inoltre il copyright è sempre tuo per la tua opera 
d'ingegno. Non devi pagare nulla, non devi registrare nulla alla SIAE e 
non devi brevettare nulla. Il copyright è un diritto che ti viene 
assegnato "di base", l'importante è riuscire a dimostrare la paternità 
dell'opera.
Nicola

 convenienza a farlo? Molto meglio riscrivere tutto da zero.
non e' esattamente quello che intendevo chiederti, cioe' io intendevo dire 
non propiamente copiato nel senso del termine, ma copiata l'idea, cioe' un 
altro programmatore potrebbe comprare il tuo programma, oppure vedere come 
funziona da un tuo cliente, e poi riscriverlo anche da capo, pero' avrebbe 
copiato comunque l'idea, il funzionamento finale, magari potrebbe apportarci 
qualche modifica per non farlo propio uguale al tuo. cioe' ti avrebbe rubato 
l'idea, o come vogliamo chiamarla l'invenzione di quel programma. 

Stefano Ferrari ha scritto:

Molto interessante, grazie della segnalazione.
Chissà perché hanno fatto una cosa del genere. Il tizio del blog ha 
perfettamente ragione: perché non far sì che sia il compilatore ad 
accorgersi della presenza della gestione d'errore (se così vogliamo 
chiamarla) vecchio stile.
Inoltre, sono costretto a quotare in toto anche l'ultima frase:
"I know this really isn’t that big of a deal, in terms of 		performance, 
it is just a VB mindset issue that helps to promote the idea that VB.Net 
is a second class language (which is re-enforced by little things like 
this)."
S.

 chiamarla) vecchio stile.
Sì, alla fine del periodo ci doveva essere un punto di domanda.
S.

 l'idea, o come vogliamo chiamarla l'invenzione di quel programma. 
Non è un problema.
Le automobili hanno compiato la struttura alla carrozza, che a sua volta
ha copiato la ruota ecc...
Anche il mio programma ha funzionalità presenti in altri programmi.
Non credere che il tuo sia il software definitivo. Ci saranno altri che
ne faranno uno simile al tuo, magari migliore. Tu poi prenderai spunto
da loro per migliorare il tuo, e così via... è l'evoluzione.
Nicola

 da loro per migliorare il tuo, e così via... è l'evoluzione.
ok ho capito, che non ci sono di questi problemi, forse lunico vero problema 
e' che poi qualche tuo cliente potrebbe craccare il tuo programma e 
distribuirlo ad altri, cosi come si trovano prohrammi famosissimi su emule.
questo, sarai daccordo che e' un problema, oppure c'e' la soluzione?

 questo, sarai daccordo che e' un problema, oppure c'e' la soluzione?
La soluzione definitiva non esiste e anni di tentativi sempre più 
"raffinati" di bloccare il fenomeno sono sempre naufragati, forse 
l'hanno limitato ma non certo eliso.
Certo che il tuo programma può essere "craccato" ma se si arriva a 
questo punto vuol dire che il programma è -quanto meno- ritenuto utile 
da una platea abbastanza numerosa di utenti, questo vuol dire anche che 
i tuoi introiti saranno proporzionati e se qualche licenza sfugge alle 
maglie del tuo personale sistema antipirateria pazienza ...
ciao
stefano


BAH!
...della serie....
meglio lo Spectrum o il Commodore64????

 meglio lo Spectrum o il Commodore64????
C64 ... decisamente ;-)
ciao
stefano

 maglie del tuo personale sistema antipirateria pazienza ...
exactly! ;)
In ogni caso ogni mio programma ha una differenza rispetto agli altri:
l'assistenza. Nessuna grossa azienda può permettersi un'assistenza come
quella che posso fornire io. E' questo che faccio pagare... il programma
in sè potrei anche darlo gratis.
Nicola

 Nicola
quindi se' ho ben capito si guadagna piu' sull assistenza che sulla vendita 
del programma?. scusa di nuovo se' sono curioso, io non sono programmatore, 
ma piacerebbe capire come funzionano queste cose.

 scusa ma non capisco propio questo punto , me lo puoi spiegare?
Chiedilo a MS, che son sempre stati esperti in questa tecnica :-)
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Saluti, VITRIOL

 Chiedilo a MS, che son sempre stati esperti in questa tecnica :-)
non so l'express: vs 2005 e 2008 di msdn hanno il seriale gia' inserito per 
risparmiare la fatica :)

 non so l'express
La express non ha proprio nessun seriale, ma visto che è gratuita non 
credo si possa catalogare nel filone "sono contento se lo usi anche se 
non lo paghi, basta che lo usi".


 ma piacerebbe capire come funzionano queste cose.
Si possono fare varie scelte di marketing quando si piazza un proprio
prodotto, molto dipende anche dalla dimensione del programma, dalla sua
complessità.
Generalmente però si guadagna di più scegliendo di fornire al cliente un
contratto di assistenza piuttosto che sulla vendita "nuda e cruda" del
pacchetto.
Con la vendita secca hai un introito variabile che sicuramente non potrà 
crescere in eterno, una volta raggiunta la massa critica ci potrà essere 
  un po' di scambio osmotico tra applicativi, ma lì si rimane.
Con un contratto di assistenza, congruo, ti garantisci un'entrata certa, 
fissa.
Se poi riesci a strappare un prezzo buono per l'applicativo e un ottimo 
contratto d'assistenza allora complimenti sei 
un'imprenditore/commerciale di prim'ordine.
ciao
stefano