Tag Archive for software

Creiamo un servizio Windows in VB.NET

Che cos’è un servizio Windows? Sui sistemi operativi Microsoft, un servizio Windows è un eseguibile che compie determinate funzioni e che è progettato per non richiedere intervento da parte dell’utente. Possono essere configurati per essere avviati in fase di boot e per essere eseguiti in background. In alternativa, si possono far partire manualmente, se lo si desidera. Da un punto di vista concettuale, sono analoghi ai demoni Unix.

Fatta questa premessa, rispondiamo ora alla domanda principale: come possiamo creare un nuovo Windows service in ambiente .NET? Per cominciare, creiamo in Visual Studio un nuovo progetto di tipo “Windows Service”, poi modifichiamo le proprietà del servizio dalla finestra delle proprietà: i tre booleani CanPauseAndContinue, CanShutDown, e CanStop determineranno il comportamento del servizio che stiamo sviluppando. Ovviamente la proprietà ServiceName serve ad indicare e impostare il nome. Notate inoltre che esiste anche il campo CanHandlePowerEvent, che serve a stabilire se potremo gestire i cambiamenti di stato dell’alimentazione.

il passo successivo consiste nell’aggiungere il codice di startup: tipicamente dobbiamo inserirlo nella funzione di gestione dell’evento OnStart event. Ecco un esempio elementare:

Protected Overrides Sub OnStart(ByVal args() As String)
    EventLog.WriteEntry( "Scrivi quello che vuoi.")
End Sub

Possiamo implementare il comportamento del nostro applicativo anche in relazione ad altri eventi, quali: OnContinue, OnCustomCommand, OnPause, OnShutdown, OnPowerEvent, e OnStop. Se e come farlo dipende in grandissima parte dagli obiettivi che ci siamo prefissi con la creazione del nostro progetto, ma è piuttosto evidente che di solito è necessario gestire almeno l’avvio, la pausa, la continuazione e la terminazione del servizio.

Può essere davvero importante tenere traccia delle attività della nostra applicazione tramite un log, ma per semplificare le cose ricordiamoci di impostare la proprietà AutoLog (della classe Service) a true, in modo che gli eventi basilari vengano loggati automaticamente. Se faremo ciò dovremo preoccuparci di loggare solo le operazioni o gli avvenimenti di carattere specifico.

Quando avremo finito il nostro sviluppo, dovremo anche preparare un installer (che sarà di tipo ServiceInstaller) che prenda il Windows service di nostra invenzione e lo installi nel sistema. Come si fa? Dobbiamo selezionare il progetto nel box del Solution Explorer e visualizzarne le proprietà: vedremo il link “Add Installer”, che fa al caso nostro. Seguiamo la procedura guidata, in modo da aggiungere l’oggetto installer che dovremo personalizzare.

Nel prossimo articolo di questa serie vedremo dettagliatamente come creare un service installer. ;-)

Come si automatizza la chiusura di un’applicazione console .NET?

Molte volte nei programmi che sviluppiamo abbiamo l’esigenza di predisporre la loro chiusura in base a certe condizioni: tipicamente richiamiamo il metodo Exit() della proprietà Application nella funzione che gestice il click sulla voce di menu “esci” (nel caso il nostro sia un progetto Windows Forms e la form in questione abbia un menu, ovviamente). Nel caso di un’applicativo di tipo console, tuttavia, questo metodo non è accessibile. Come si può dunque automatizzarne la chiusura?

Questa è la norma da seguire: se operiamo in un contesto visuale, usiamo Application.Exit(); se operiamo invece in ambito console, dobbiamo usare Environment.Exit(0). Facendo questo termineremo l’eseguibile ed invieremo al sistema operativo sottostante il codice di uscita specificato, che normalmente è 0.

Il piccolo trucchetto illustrato in questo breve articolo può essere comodo quando vogliamo supportare in modo intelligente la schedulazione del nostro programma: possiamo far sì che possa richiedere la pressione di un tasto qualunque prima di chiudersi (adatto all’uso diretto) e che possa anche chiudersi automaticamente dopo alcuni secondi di attesa (adatto all’uso batch).

Thesis, un tema per Wordpress dal design accattivante!

Un rinomato blog designer, Chris Pearson e Brian Clark, elemento di spicco di Copyblogger, hanno realizzato un bel tema di fascia premium per Wordpress, chiamato Thesis. Cliccando sull’immagine qui sotto potrete vedere uno screenshot di esempio:

Free Image Hosting at www.ImageShack.us

In merito ad esso si stanno già vedendo molte reazioni positive nella blogosfera (puoi leggere alcune testimonianze qui), a causa delle sue funzionalità. Eccone alcune:

  • SEO - Wordpress è già ben predisposto ma Thesis migliora la nostra visibilità e indicizzabilità su Google.
  • Accessibilità - funziona adeguatamente su tutti i browser e perfino sui dispositivi mobili!
  • Personalizzabile - Ovviamente, per quanto il tema possa essere eccellente, è necessario differenziarlo a seconda dei nostri gusti e dell’immagine che stiamo costruendo del nostro blog. Thesis permette di avere sfondi diversi, un foglio di stile personalizzato, immagini a rotazione (o anche banner a rotazione) e altro ancora. Per farti un’idea più chiara di come è possibile “piegarlo” alle nostre esigenze, daì un’occhiata alla sezione showcase del sito ufficiale.
  • Pieno di funzioni aggiuntive - integra Google Analytics, Mint, gestisce i feed RSS, separa i commenti e i trackback, ecc…
  • Intuitivo - Tutti coloro che giungono su un blog dotato di questo tema non rimarrano spaesati, ma sapranno dove andare, indipendentemente dal loro livello di dimestichezza con il computer.
  • Supporto - Il forum di supporto tecnico è in inglese, è vero, tuttavia risponde alla stragrande maggioranza delle domande che potreste porvi nel corso dell’utilizzo quotidiano del prodotto di Chris e Brian.
  • Aggiornamenti gratuiti a vita - direi che questo punto non va spiegato, è abbastanza chiaro di per sé.

Parliamo ora della nota dolente, per così dire: Thesis non è gratuito, ma ci sono due licenze possibili. La licenza personale, valida per un sito, costa 87 dollari e quella per sviluppatori 164. La differenza sostanziale è che con quest’ultima possiamo usare il tema su tutti i siti che vogliamo.

Ho scrutato più volte Thesis e sto seriamente pensando di acquistarlo e di adottarlo qui, sull’Inforum blog. Decisamente ciò di cui vi ho parlato è un prodotto che può dare un tocco di professionalità in più di cui c’è sempre bisogno: è un acquisto consigliato!

Wrapper in C# per le API PostRank

Stai per caso lavorando su un’applicazione C# e stai cercando di integrare le API PostRank? Ebbene, grazie a William Spaetzel potrai raggiungere quest’obiettivo molto più facilmente. Ha pubblicato una libreria, scaricabile proprio dal suo sito, la quale opera da wrapper per tutte le chiamate alle API PostRank.

È semplice da usare e questa è la cosa fondamentale quando stiamo sviluppando un’applicazione complessa e dobbiamo includere componenti simili, non vi pare? Il pacchetto scaricabile comprende anche un piccolo programma d’esempio, che illustra l’uso basilare di tutti i metodi forniti. Il codice è rilasciato sotto la licenza Creative Commons Attribution 3.0: chiunque può riutilizzare e modificare i sorgenti, purché si continui a citare Spaetzel come l’autore originale. Direi che come minimo è da provare… ;-)

Sette buoni consigli per Openoffice

Logo di Openoffice.org

Ecco sette tra le meno note - ovvero poco o per niente documentate - combinazioni di tasti scorciatoia che possono migliorare la nostra produttività e farci risparmiare tempo mentre scriviamo documenti con Openoffice:

  1. Spostamento paragrafi: posizione il cursore sul paragrafo, quindi premi su CTRL + ALT + su o giù, rispettivamente per spostarlo in su o in giù di un paragrafo.
  2. Allineamento paragrafi: CTRL + L allinea a sinistra, CTRL + R a destra e CTRL + E per centrare il testo. E per giustificare? È semplice, si preme CTRL + J.
  3. Interruzione di pagina: è sufficiente usare la combinazione CTRL + Invio per iniziare un nuovo paragrafo su una nuova pagina.
  4. Navigazione sul documento: il tasto INIZIO porta all’inizio della riga corrente, mentre il tasto Fine porta alla sua fine; CTRL + Inizio porta all’inizio del documento e invece CTRL + Fine conduce alla sua fine. Ovviamente CTRL + freccia sinistra o destra fa muovere il cursore di una parola alla volta nella rispettiva direzione.
  5. Selezione testo: SHIFT (ovvero il tasto delle maiuscole) + Inizio seleziona dal carattere corrente all’inizio riga, mentre SHIFT + Fine parte dal carattere corrente e arriva fino al termine della riga stessa. Quando una riga è selezionata, SHIFT + Su o Giù ci permette di aggiungere o rimuovere le righe dalla selezione. CTRL + SHIFT + Inizio seleziona dal cursore all’inizio del documento e invece CTRL + SHIFT + Fine fa il contrario.
  6. Formattazione e stili: CTRL + 1 setta lo stile “Heading 1″, CTRL + 2 “Heading 2″, CTRL + 3 “Heading 3″ e con CTRL + 0 possiamo ripristinare lo stile predefinito. Se digitiamo CTRL + 5 imposteremo la spaziatura di linea a 1,5.
  7. Muovere oggetti e immagini: tramite ALT + le frecce direzionali è possibile spostare qualunque oggetto sulla pagina.