Technology Experience
.NET World

Riavviare un’applicazione WPF

Da documentazione trovata su MSDN, nel buon vecchio Windows Forms era possibile riavviare l’applicazione con una sola linea di codice. Era infatti possibile invocare il metodo Restart() della classe System.Windows.Forms.Application ed il gioco era fatto.

Con WPF le cose sono un pochino cambiate, ma solo un pochino.

Dunque: innanzitutto la classe Application per le applicazioni WPF e la classe Application per le applicazioni Windows Forms sono classi differenti. Perciò occhio: se parliamo di WPF, la classe Application sta nel namespace System.Windows.

Questa classe espone una proprietà statica Current, tramite la quale è possibile accedere all’applicazione corrente all’interno dell’AppDomain. A questo punto è possibile invocare il metodo Shutdown(), che chiude l’applicazione. Come è possibile riavviarla? La cosa più semplice che ho trovato è intercettare l’evento Exit dell’applicazione e riavviarla. Quindi, supponiamo di aver messo un Button su una Windows e di voler chiudere e riavviare l’applicazione sul Click di questo bottone. Il codice sarà:

   1:  private void LanguageButton_Click(object sender, System.Windows.RoutedEventArgs e)
   2:  {
   3:      Application.Current.Exit += delegate(object s, ExitEventArgs args)
   4:      {
   5:          System.Diagnostics.Process.Start(Application.ResourceAssembly.Location);
   6:      };
   7:   
   8:      Application.Current.Shutdown();
   9:  }

Molto semplice, direi. L’unica osservazione da fare è quella di sottoscrivere l’evento Exit solo quando necessario. In questo modo, potete chiudere l’applicazione come al solito (ALT+F4, cliccando sulla X in alto a destra) e l’applicazione non riparte: riparte solo quando si va a cliccare su quel Button particolare.

Send to Kindle
Software

Se mi dite che MSE…

…non richiede il riavvio del sistema per un aggiornamento, allora lo prendo in considerazione.

Qualche giorno fa sul mio profilo di Facebook sono stati nominati diversi antivirus, perchè come in tutte le cose c’è chi preferisce questo o quello, con pro & contro. Io è da parecchi anni (più di 4) che utilizzo AVG – versione a pagamento – e devo dire che sono piuttosto soddisfatto. Credo però che valutare la qualità di un antivirus sia piuttosto difficile, perchè è come valutare un airbag: entra in funzione solo quando ormai è troppo tardi. Non è proprio così, perchè un buon antivirus dovrebbe intervenire prima di un’infezione, però non puoi mai sapere se è stato ha segnalato un falso positivo.

Ma se c’è una cosa che non sopporto è quando un aggiornamento richiede il riavvio del sistema operativo. Capisco che sia un componente “delicato”, però mi dà sui nervi. Non succede spesso, ma succede.

Perciò se mi dite che MSE (Microsoft Security Essentials) non richiede il riavvio, allora posso pensarci su!

Send to Kindle
CommunityFlight Simulation

Weekend prossimo al Flight Simulator Show 2010

Il weekend prossimo sarò insieme a tanti altri amici presso la Fiera di Verona, dove si terrà il Model Expo Italy, fiera dedicata al modellismo statico e dinamico (quindi aerei, automobili, navi, trenini elettrici, etc. etc. : per avere un’idea basta guardare le foto che ho scattato all’epoca a Novegro (MI)).

All’interno di questa manifestazione noi di Piloti Virtuali Italiani festeggeremo il nostro 15° anno di attività con il nostro evento Flight Simulator Show 2010 (in breve FSS2010). Un modo come un altro per conoscere il mondo della simulazione del volo, con Flight Simulator X e con X-Plane, per provare hardware particolarmente “evoluto” e magari non adatto a tutte le tasche.

Vi rimando al blog ufficiale dell’evento Flight Simulator Show 2010, raggiungibile a questo indirizzo. Nell’ambito FSS2010, non troverete solo noi di PVI, ma ci saranno anche IVAO (International Virtual Aviation Organization), Saitek (grazie al quale potrete provare joystick, volantini & pedaliere più o meno evolute) ed altre community/società che personalmente non so dirvi in questo momento.

Vi ricordo che Piloti Virtuali Italiani è anche su Twitter.

Se siete in zona e se avete voglia di passare qualche ora diversa dal solito, venite a trovarci!

Send to Kindle
.NET World

CodeProject : Designer realizzato con (e per) WPF

Il progetto su cui lavoro attivamente per la società per la quale lavoro, Brain-Sys (site under construction), comprende anche un designer realizzato con Windows Forms e WPF. Ci ho lavorato un pochino nelle ultime settimane, aggiungendo un po’ di funzionalità che ad un designer non dovrebbero mancare.

La cosa che mi è piaciuta di più è aggiungere la multiselezione degli oggetti. Immaginatevi l’editor di Windows Forms di Visual Studio: tenendo premuto CTRL e cliccando sui controlli, posso selezionarne più di uno contemporaneamente. Una volta che è attiva la multiselezione, posso spostare/ridimensionare in blocco i controlli, posso fare copia/incolla di oggetti multipli, etc. etc. Chiaramente, il designer su cui lavoro io non edita controlli nativi WPF, ma controlli che ereditano dalle classi di System.Windows.Controls, ma il ragionamento è lo stesso. Le pagine create con il mio designer vengono ovviamente salvate in Xaml, e così via. Non intendo scendere nel dettaglio, perchè non è lo scopo di questo post.

Quello che voglio dirvi è che per realizzare queste cose, ho preso spunto da questa serie di articoli su CodeProject, che voglio riportare anche a voi nel caso in cui doveste aver bisogno delle stesse cose:

WPF Diagram Designer – Part 1

WPF Diagram Designer – Part 2

WPF Diagram Designer – Part 3

WPF Diagram Designer – Part 4

Buona lettura!

Send to Kindle
Community

Confine di responsabilità

In realtà, il mio OT del Venerdì di ieri doveva intitolarsi proprio così – Confine di responsabilità – perchè è questo il vero nocciolo della questione, tant’è che alla fine la cosa è saltata fuori comunque dai commenti che ho ricevuto.

Il vero problema sta proprio qui, insomma: capire fin dove arriva il mio compito, e dove comincia quello di qualcun’altro. Sicuramente io sono l’ultima persona al mondo che è esperta di diritto sulla Rete, ma da buon navigatore o comunque dal punto di vista di una persona che lavora con Internet, un mio parere ce l’ho, e l’ho espresso ieri. Google non può c’entrare niente. Punto.

Piccola domanda: lo sapete quante pagine dal contenuto illegale ci sono in questo preciso momento su Internet? Io il numero preciso non lo conosco, ma credo di non sbagliarmi più di tanto se dico che è un numero Molto Grande, un numero con 6 zeri. Perchè non si fa niente? Perchè non si condanna anche in questo momento Google, dal momento che posso cercare termini come “pedopornografia”, “vendita di droghe pesanti” o “come evitare gli autovelox per le strade” ? Perchè, perchè non si fa nulla? Oppure il reato esiste solo quando qualcuno se ne accorge?

Ma personalmente voglio ridimensionare il tutto: è un problema solo italiano. Sono i nostri adolescenti che hanno questa mentalità idiota, perchè vogliono diventare personaggi sulla Rete, fra i loro amici, mettendosi in mostra facendo questa o quella stupidaggine, invece di rimboccarsi le maniche e fare qualcosa di più utile per la società. Per cui è evidente che prima eliminiamo questo atteggiamento idiota, e meglio sarà per tutti. Cosa cavolo c’entra Google? E soprattutto, se il video era su YouTube, perchè Google condannato e YouTube no?

Consiglio veloce veloce: il sabato mattina, su Rai 3, c’è una delle poche trasmissioni che ancora si fanno guardare: TV Talk. E’ un talk-show gradevole, senza litigi, senza discussioni, dove si parla di televisione da parte delle persone che la televisione la fanno. Età media molto bassa: neo laureati soprattutto, tutti nell’ambito comunicazione-televisione-nuovi media. Sabato mattina prossimo si parlerà proprio di questo argomento. Io non me lo perderò!

Send to Kindle
OT del Venerdì (Reborn)

[OT] del Venerdì (22)

Mi chiedo perchè in Italia dobbiamo sempre fare la figura degli stupidi e degli ignoranti. Qualche mese fa Schifani si è svegliato la mattina, convinto di andare a dirgliene quattro al dirigente europeo di Facebook per bloccare i gruppi “pericolosi”, quelli che ad esempio hanno inneggiato positivamente al tizio che ha colpito Berlusconi in Piazza Duomo qua a Milano. Ma anche a tanti altri. Quel giorno è arrivato, Schifani è andato a scuola di informatica: ha capito dov’è il tasto Enter sulla tastiera, ha capito (spero!) che differenza c’è tra una comunicazione in real-time (chat) e la comunicazione asincrona (mail, messaggi su Facebook, etc. etc.), e ha capito (spero!) cos’è Facebook e perchè è virtualmente impossibile bloccare il nascere di gruppi dallo scopo idiota. Come l’ultimo di qualche giorno fa, che invitava a prendere in giro le persone affette da sindrome di Down: non-so-quante-migliaia-di-idioti a cui darei volentieri un pugno in faccia. Vabbè.

Comunque, quel giorno Schifani ha parlato con il tizio di Facebook e – non so se ci avete fatto caso – da quel giorno adesso il social network viene utilizzato durante il TG1 in ogni momento, visualizzando filmati e screenshots. Spesso VIOLANDO COSTANTEMENTE LA PRIVACY DI TANTISSIME PERSONE OGNI GIORNO. TUTTE LE VOLTE CHE FACEBOOK COMPARE IN TELEVISIONE VENGONO MOSTRATI IN CHIARO NOMI & COGNOMI DI PERSONE APPARTENENTI AL GRUPPO DI CUI SI STA PARLANDO.

Non mi si è bloccato il CapsLock: ho volutamente urlato. Quindi, prima di dire che Google viola la privacy – che per definizione è una cosa assurda – per favore: prima informatevi e poi ragionate. Mi chiedo come sia possibile che politici & giudici possano essere così ignoranti e condannare e prendere provvedimenti su argomenti che NON CONOSCONO. Queste cose mi mandano in bestia, e lo fanno ogni giorno di più. Di fronte a certe notizie rimango scioccato, perchè è evidente la stupidità e la leggerezza con cui vengono prese.

Voglio che un concetto passi chiaro e limpido: se Google deve diventare responsabile dei contenuti che possono essere trovati grazie al suo motore di ricerca, allora la diretta conseguenza è questa: tra il mio PC e Google ci sono di mezzo altre entità che dovrebbero essere punite (nel caso del video di cui si sta parlando in questi giorni, ovviamente parliamo di YouTube, ma – allargando un po’ il ragionamento – i vari provider di servizi che fisicamente hostano il contenuto incriminato, ma anche banalmente tutto ciò che mi permette di navigare: dai cavi di rete all’abbonamento Alice, dal monitor che visualizza il video a tutto il resto). Assurdo, roba da dementi che solo noi in Italia potevamo inventare.

Qualche domanda.

Se io qua un giorno mettessi un video pedo-pornografico, verrebbe condannato anche Google perchè rende fruibile il contenuto? Voglio far notare che OGNI VOLTA CHE SCRIVO SUL MIO BLOG – sconosciuto al mondo – Google lo indicizza nel giro di poche ore.

E se scrivessi una ricetta e al posto della parola “sale” mettessi la parola “arsenico” – e qualcuno di voi finisse all’ospedale, chi verrebbe condannato? C’entrerebbe anche Google?

Se io grazie a Google riuscissi a trovare informazioni per diventare un nuovo Unabomber (quindi…costruire un piccolo ordigno esplosivo), e qualcuno rimanesse ferito, sarebbe colpa anche del motore di ricerca?

Secondo me in tutti questi casi Google non è in alcun modo responsabile, e non deve esserlo. Se passa il concetto che Google deve controllare i contenuti che indicizza, voglio che sia chiaro che la Internet a cui siamo abituati sparirebbe immediatamente, perchè la velocità con cui vengono pubblicate nuove informazioni è di gran lunga maggiore rispetto alla velocità con cui sia possibile controllarle. E soprattutto: chi controlla i controllori? Chi decide cosa deve essere lecito oppure no?

Insomma, si aprono scenari inquietanti e pericolosi, che ci fanno fare una figura assurda agli occhi degli altri paesi del mondo. Ma poi – scusate – perchè sono stati condannati solo quei tre dirigenti di Google e non la società in sè? Mi son perso qualcosa?

Insomma, sono appena tornato da Barcellona per lavoro, ma per sentire queste sciocchezze avrei preferito di gran lunga rimanere là.

Send to Kindle
OT del Venerdì (Reborn)

[OT] del Venerdì (21)

Oggi sono felice di regalarvi la prima edizione del “rumore fastidioso”. Devo ammetterlo: questa splendida idea è presa pari-pari dallo Zoo di 105, che l’altro giorno mi ha fatto morire dal ridere.

Preciso che lo splendido suono non è stato scaricato da Internet, ma è l’unico vero originale che arriva da casa mia, che ho deciso di registrare come premio-produzione dopo essere riuscito ad ottenere una multi-selezione di oggetti contenuti dentro un Canvas bla bla bla (questo non dovevo dirlo, altrimenti vado in-topic).

Buon ascolto!

Link : Rumore fastidioso (680KBytes, 30 sec)

Send to Kindle
Software

Configurare al meglio ftp su Windows Web 2008

Sarò anche ignorante, ma stamattina ho appreso che per rendere disponibile il protocollo ftp al 100% al di fuori di un firewall non basta aprire la porta 21.

Da linea di comando, è possibile programmare il firewall prima con questo comando:
netsh advfirewall firewall add rule name="FTP (non-SSL)" action=allow protocol=TCP dir=in localport=21

Poi è necessario aprire altre porte dinamicamente per il trasferimento dati:
netsh advfirewall set global StatefulFtp enable

Il primo comando netsh è paragonabile a farlo da interfaccia utente: in pratica, aggiungere un’eccezione per la porta 21 TCP. Ma facendo solo questo avevo i seguenti problemi:

  1. il comando LIST da FileZilla falliva (mentre banalmente un comando ls dal comando ftp da DOS riusciva perfettamente)
  2. qualsiasi trasferimento di file tramite ftp aveva prestazioni assolutamente inaccettabili (per un file da pochi Kb mi veniva pronosticati un tempo di trasferimento di qualche ora)
  3. varie ed eventuali

Una volta eseguito il secondo comando, tutto è tornato alla normalità.

Il link qui sotto riporta un gran numero di informazioni su come configurare al meglio un server ftp sotto Windows Server 2008 (sia ftp 7.0 che ftp 7.5).

Fonte : http://learn.iis.net/page.aspx/309/configuring-ftp-firewall-settings/

Send to Kindle
Software

Performance di copia di files tra host e guest di una vm

Se, indipendentemente dalla piattaforma software che usate per virtualizzare, avete dei grossi problemi a sfogliare la vostra LAN dentro le vostre vm, o notate pesantissimi rallentamenti nella copia di files tra host/guest, seguite questi semplici passi per risolvere il problema:

  1. aprite regedit
  2. editate la chiave HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTcpipParameters
  3. aggiungete la chiave DisableTaskOffload, tipo REG_DWORD, ed assegnate il valore 1
  4. riavviate la macchina host (cioè…il vostro PC fisico)

Provate e vedrete che le cose saranno migliorate.

Fonte : tutti i links trovati su Google 🙂

Send to Kindle
My personal life

Imparare un nuovo software può deformare il cuore????

L’ho sentito ieri al TG1.

Uno studio condotto non-so-bene-dove ha determinato che emozioni forti possono davvero provocare deformazioni al muscolo cardiaco (da qui il detto…mi hai spezzato il cuore). E come esempio la giornalista ha detto che per “emozioni forti” si intendono matrimoni falliti, scampare a pericoli come un incendio, la perdita di un caro familiare e…tenetevi forte…anche imparare un nuovo software!!!!

Oh mio Dio, pensavo di averle sentite tutte, ma questa davvero le supera!!!

Send to Kindle