Un buon giudizio su un prodotto gratuito di Mamma Microsoft.

Da quando Mamma Microsoft ha messo in rete il suo prodotto chiamato Windows Defender, l'ho preso subito come mio firewall preferito: in lingua Italiano, semplice da capire e poi ...visto che è un prodotto Microsoft penso che dia meno problemi di compatibilità tra vari programmi.....
Molte volte mi sono scontrato tra vari giudizi positivi e negativi su questo prodotto...
Da una settimana che un mio cliente mi assilla per un Virus (qualsiasi pagina visita gli esce una pagina con scritto: Warning! Visiting this site may harm your computer! ecc.. ) entratogli nel PC. Il Cliente ha un Antivirus molto noto, ma è stato tanto inteligente da fare OK all'installazione del virus e "Consenti" all'avviso dell'Antivirus.
Dopo varie ricerche, scansioni con vari antivirus..ecc....ho tentato di mettergli Windows Defender..
dopo l'aggiornamento delle definizioni e la prima Analisi puf: WD trova l'intruso e provvedo subito a rimuoverlo...
Funziona alla grande...Problema Risolto..
Grazie Mamma Microsoft...

Scaricare file da internet e visualizzare ProgressBar

leggendo una richiesta di un collega sulla maillist VBT&T ho pensato di risolvere questo mio problema che mi assilla da mesi. Anche io avevo bisogno di visualizzare una progressBar durante lo scaricamento di un file da internet.

Ebbene, sempre usando la classe System.Net.WebClient che fornisce tutti i metodi necessari. Per cominciare, basta creare una nuova variabile globale di tipo System.Net.WebClient:
Public Withevents TCP As New System.Net.WebClient
Abbiamo specificato la parola chiave Withevents per indicare al compilatore che di questa calsse useremo anche i suoi eventi: quindi potremo scrivere direttamente eseguite quando si generano eventi in TCP.
Per iniziare un download useremo il metodo DownloadFileAsync, che non solo ci permette di scaricare il file specificato nella locazione specificata (come vedremo tra breve), ma non blocca il form e consente di svolgere tutti gli eventi anche durante il download. La sintassi è la seguente:

Dim URL As New Uri("http://www.miosito/miofile.exe")

TCP.DownloadFileAsync(URL , "C:\miofile.exe")

La classe Uri (System.Uri) indica univocamente un file sul web.
In questo modo inizierà il download.
Altri importanti metodi e proprietà di questa classe sono il "CancelAsync" che interrompe il download corrente e il "IsBusy" che restituisce vero se è in corso un download, altrimenti falso.

Per la gestine di una ProgressBar durante il Download del file basta gestire questo evento, generato quando c' è un progresso nel download. Ipotizziamo di avere una ProgressBar di nome "MyProgressBar". Ecco la sintassi:


Private Sub PrgChngd(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles TCP.DownloadProgressChanged
MyProgressBar.Value = e.ProgressPercentage 'restituisce la percentuale del download
Eventualmente potete visualizzare altri dati del donwload che ora commento perchè non servono
'e.BytesReceived 'restituisce il numero di bytes ricevuti
'e.TotalBytesToReceive 'restituisce il numero dei byte da ricevere
End Sub
Poi c'è questo evento che si scatena quando un download viene completato ed utile ad esempio per segnalarlo.
Ecco la sintassi dell'evento:
Private Sub PrgComplete(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles TCP.DownloadFileCompleted
If e.Cancelled = True Then
'il download è stato cancellato
Else
'il download è stato completato
End If
End Sub

Spero vi serva per i vostri programmi...

aggiungere Setting nuovi in un'applicazione

Ormai da tempo utilizzo una mia libreria personalizzata con vari funzioni di gestione ed altro.

Tra le tante cose c'è anche un gestore di Setting. Per capire come funziona vi rimando all'articolo della brava Sabrina Cosolo e bravo Diego Cattaruzza http://www.visual-basic.it/articoli/scdcSenzaMani05.htm.

naturalmente le due classi in questione l'ho nominate in modo consono alle mie applicazione:

La classe Setting che è l'elemento per la serializzazione e gestione delle impostazioni singole, si chiama PanatronicSetting.

La classe Settings invece che è la collezione di Setting (collezione PanatronicSetting) si chiama ClsSetting e si trova in ogni applicazione in cui serve la gestione dei Setting; naturalmente con relativo FormSetting.

Il problema che ritrovo ogni volta che devo aggiungere un nuovo parametro di setting, è ricordarmi i vari passaggi: semplici ma dato che vengono fatti una volta al mese (al massimo) si fa presto a dimenticare qualcosa.

Per questo riporto qui l'aggiunta di un parametro. Ecco i vari passaggi per l'aggiunta di un setting contenente la stringa di connessione di un DB Access:

  1. Definisco la costante col nome del setting:
     public const STT_CnnAccess = "CnnAccess" as string
  2. Definisco la costante con la descrizione del setting:
    public const SDD_CnnAccess as string = "Connessione DB Access"
  3. Nel metodo LoadSEtting scrivo il controllo dell'eseistenza del Setting e in caso contrario lo creo:
    If Not AppSettings.ExistSetting(STT_CnnAccess) Then
    stt = New PanatronicSetting()
    stt.ID = STT_CnnAccess
    stt.Description = SDD_CnnAccess
    stt.Value = "connessione temporanea"
    stt.Automatic = False
    AppSettings.Add(stt)
    End If
  4. Per ultimo creo una property per il recupero dell'eventuale setting esistente:
    Public Shared Property CnnAccess() As String
    Get Return AppSettings(STT_CnnAccess).Value
    End Get
    Set AppSettings(STT_CnnAccess).Value = value
    End Set
    End Property
  5. Se invece che nei setting di Applicazione volevo metterlo nei setting dell'utente, basta fare la stessa cosa e la posto di AppSetting va messo UsrSettings.

Tutto qui...Spero che possa servire a qualcuno..

By By e a Sabry mandi mandi....

Evento Pistoia - Il mio giudizio -

In questi giorni, molti Colleghi/Amici m'hanno chiesto informazioni riguardo all'evento di Pistoia di DotNetWork.

 

Che dire: per me è stato il primo evento con questa community e dicendola in pochissime parole: non vedo l'ora di rifarlo...

 

A partire dall'ospitalità delle persone in particolar modo da Alberto (giocava in casa) andando poi al fantastico modo di presentare i temi trattati dei relatori (o meglio come gli chiamo io "Vocalist"). Sabrina è stata fantastica sulla presentazione e spiegazione sulle classi in particolar modo sulla creazione di una propria Libreria personale con varie Dll da usare e riusara collegate o meno alla GAC....per me questa parte delle librerie è stato un ripasso, dato che i suoi articoli sono molto buoni e spiegano bene il tutto....

Alberto con la sua bella spiegazione sul tema della OOP e dintorni. Questa sessione m'ha chiarito molte cose sulla OOP. Anche la sessione sui WebServices è stata molto istruttiva e piacevole...con molti esempi pratici....da non dimenticare la sessione sui report della Perpetuum....woooow.

Per non sottovalutare la professionalità e chiarezza delle sessioni di Federico con la spiegazione della bellissima Idea dei fondatori di DNW; molto bella, complessa ma ascoltando Federico & C. sono convinto che riusciranno a trovare soluzioni per rendere questa idea realizzabile e piena di soddisfazioni in tutti i campi......

Cosa dire di Andrea Boschin: molto interessante la sua sessione su  Entity Framework. Devo dire che è una persona molto preparata e sa ben spiegare le cose. Su Entity Framework ne avevo già sentito parlare ad eventi Microsoft ma come l'ha illustrato Andrea, devo dire che è stato più chiaro. Certo, ci sono state domande che l'hanno messo veramente alla prova, ma la sua preparazione l'ha fatto risultare veramente un gran professionista MVP...Veramente molto bravo.

 

Oltra alla professionalità dei Relatori, non bisogna trascurare la bella esperienza di scambio opinioni e conoscenza dei partecipanti al WS. Ho veramente conosciuto persone squisite e molto cordiali specialmente molto disponibili a confrontarsi fra tutti:

la cosa più piacevole che ho notato, è la semplicità di mettersi in gioco con tutti. Oltra allo studio di .Net o idee di collaborazione, la cosa più bella che ho notato, è la semplicità delle persone: tutti sapevano qualcosa di qualcosa e nonostante ci fossero persone molto preparate, nessuno faceva la gara di chi sà di più. Anzi, ogniuno presentava le proprie lacune che molte volte venivano colmate dal sapere di altri....costruendo in questo modo, collaborazione tra di loro/noi...

A dire il vero, avevo un pò paura ad andare a questo evento: ero preoccupato per la mia ignoranza sulla materia e la paura di "far brutta figura" davanti a persone professionalmente più avanti di me.

Devo dire che ho avuto a che fare con persone veramente professionalmente migliori di me, ma nello stesso tempo, contenti di dialogare e farmi cresere professionalmente....In un certo modo, mi sono sentito GRANDE. Stare in mezzo a loro e vedere che ero parte di loro, m'ha dato forza per rimanere in questo bel gruppo...e continuare sperando di ricambiare quanto prima tutto.

Ora però devo parlare della cena...: molto bella, buona e piacevole....Non quella cena che fai tra amici e parli solo di donne e calcio e motori.

è stata una cena tra scherzi, battute (ridendo sulle piramidi di Federico) e programmazione......

Per la prima volta non ho sentito la frase "sempre di lavoro parlate?". Eravamo, anzi sono stato, tra veri programmatori, scherzando e ridendo....

Lavorando in discoteca, molte volte capita che arriva un ospite particolare e quelle poche persone che riescono a fare la foto o semplicemente stringere la mano all'ospite, sono contentissime....Be: io sono stato molto più contento di loro, per il semplice fatto di essere stato tra queste persone squisite e meravigliose...

Volete sapere qualcosa di negativo?

Non sanno cosa significa "Espressino".......

 

Spero che la cosa si ripeta moltissime volte ancora, magari aggiungendo persone di altre Community; sarebbe anche questa una cosa meravigliosa....anche se su alcuni argomenti non ci si trova d'accordo, penso che davanti un argomento chiamato "CENA" ci si trova tutti d'accordo. Si vedrà.

 

Che dire altro: spero che un giorno faremo un bel WS o una bella cena nella cornice Salentina. Sono convinto che non ve ne pentirete....Si, la strada è lunga, ma ne vale la pena... 

 

Evento Pistoia

Dopo la bella esperienza avuta a Pistoia con persone fantastiche come Sabrina, Alberto, Federico, Andrea e tutti i presenti (non me ne vogliano se non li cito tutti), ho fatto questa bella composizione con le foto dell'evento....

 

Spero si ripeta presto con bellissime idee come quelle di Pistoia....possibilmente nella cornice Salentina....

 

a voi la mia composizione: http://www.panatronic.it/dnwpistoia

 

 

Quando fare a meno del PC

Rieccomi con un post contro il nostro compagno di lavoro.

 

Quest'Anno ho avuto a che fare con una nuova discoteca qui nel salento http://www.livinggarden.it.

In questa discoteca abbiamo trovato un impiato d'amplificazione esistente e ci siamo messi a capire il funzionamento per apportare le giuste modifiche se ce ne fossero bisogno.

 

Abbiamo trovato la bellezza di 5 Amplificatori completamente privi di interruttori e cursori ad eccezzione dell'interruttore ON/OFF e un bel display colorato di blu..

Il tutto si gestisce via Software. Bello, esclamo io. Il mio collega invece torce il naso, dato che è abituato ancora in modo manuale con i bei pulsanti che fanno il mitico TACK e i cursori....

Notiamo che tramite software si poteva gestire non solo il volume, ma tutto il processo del suono, compreso i limitatori che tanto servono per i DJ fuori di testa....

Non contento del modo Software, il mio collega (colui che ha costruito gli impiati delle migliori discoteche del Salento) decide di disattivare il processore e far andare gli amplificatori per il solo lavoro di amplificare il suono che gli viene dato in ingresso.

Montiamo un processore per tutto l'impianto (come abbiamo fatto in questi ultimi 20 Anni circa) e attiviamo tutto; proviamo l'impiato per un'oretta circa e poi contenti che va bene, chiudiamo tutto e via.

 

Durante la prima serata il patatrack. Gli amplificatori che sul display hanno la scritta "DPS Disable" cominciano a dare i primi segni d'instabilità: Limit, DPS Disable, DPS Jazz, ecc....

La serata s'è riuscita a conludere ma gli amplificatori andavano in tilt sempre.

La nota azienda produttrice (COMAR) ha detto semplicemente questa frase: aggiornate il Firmware e tutto si sistema.

Aggiorniamo il Firmware e tutto peggiora. Risponde l'azienda: mandateci uno che proviamo.

Ma è possibile che dobbiamo bloccare una stagione di un locale per delle prove?

Come possiamo affidarci ancora al PC in queste situazioni: stiamo parlando di locali con 5000 persone paganti dove un blocco della serata pregiudica il nome del locale stesso.

Altro problema è che non c'erano nemmeno i tasti CTRL-ALT-Canc .

alla fine hanno dato colpa al caldo anche se con climatizzatori (un climatizzatore da 12000BTU in una stanza 3m X 3m) non s'è risolto nulla.

Alla fine abbiamo messo amplificatori con quei bei tasti e manopole e da metà giugno facciamo belle serate con musica forte senza interruzioni.

Venite per credere.

Prime presentazioni

Mi chiamo Pranzo Stefano e vivo a sud di Lecce. Ho 34 Anni, moglie e 2 Figli. Oltre a programmare, mi diverto con la fotografia, la radio (Radioamatore IZ7ECX) e la bici.

Sto nel mondo del .Net da Gennaio con VB2008Express ed ora con VS2008Pro. Programmo in VB6 da poco più di 11 Anni.

Mi piace stare con le persone e scambiare opinioni di vario tipo, l'importante che siano discussioni di cresita sociale, culturale, hobbistica, divertimenti, ecc... Principalmente delle discussioni che volte capita che ci si litiga, esigo categoricamente che la discussione finisca con un bel caffè o una bella pizza per ritornare in pace.

Ho un'attività in proprio di software e assistenza Reti e hardware e principalmente lavoro con Enti e aziende anche se non riesco a non lavorare col privato.

 

Dato le mie competenze con l'elettronica, lavoro anche con le più belle discoteche del Salento come tecnico luci e suono. Se venite da queste parti fatemi sapere che tutte le sere.......

Ringrazio Sabrina Cosolo della possibilità datami di questo Blog e della fiducia che ha in me. Cercherò di ricompensarla con Articoli e tanti post sulla programmazione, anche se ho un pò di paura a scrivere qualcosa: quel che so io sul .Net, Voi lo sapete già, dato che io sto agli inizi. Vediamo cosa riesco a fare.

 

Spero che col tempo scriverò cose che Vi appassioneranno o almeno stuzzicheranno il Vostro interesse per farVi scrivere un commento qui nel mio Blog.

Sto preparando un Post un poco contro il nostro amico di lavoro e hobby: il PC. Non preoccupatevi, scriverò anche belle cose su di lui del suo interno software.