Il Registro di Sistema di Windows

13-mar-2010Giorgio Borelli

Il Registro di sistema di WindowsIl Registro di Sistema non è altro che un database organizzato con una struttura ad albero, nel quale vengono conservate quasi tutte le impostazioni del Sistema Operativo e della macchina, sia hardware che software, come ad esempio quali driver s'interfacciano con le varie periferiche, dove sono installati i programmi, le impostazioni dell'utente e così via.

 

Storicamente il registro di sistema sostituisce gran parte delle impostazioni che prima erano presenti nei file di configurazione (file .ini) del vecchio Windows 95 e 98. Conoscere il registro di sistema è fondamentale poichè tramite esso è possibile accedere e modificare molte delle funzionalità e personalizzazioni di Windows, allo stesso tempo è bene muoversi con cautela e sapere cosa fare, rimuovere una chiave di registro o assegnarle un valore errato potrebbe compromettere seriamente la stabilità del sistema.

 

Il registro di sistema ci consente pertanto di gestire diversi aspetti del nostro Windows, molte delle personalizzazione che effettuiamo ad es. tramite il pannello di controllo, non sono altro che modifiche apportate al registro di sistema, come potrebbe essere ad esempio la velocità del mouse o l'effetto di trasparenza sulle finestre, è possibile ottenere lo stesso risultato agendo direttamente sul registro di sistema tramite il suo editor, conosciuto col nome di regedit.

 

Prosegue...

Categorie: Windows

Tags:

Come generare numeri casuali in C#

07-mar-2010Giorgio Borelli

Comm generare un numero casuale in C#Nel .net framework non poteva di certo mancare una classe per gestire i numeri random (casuali), questa è la classe System.Random, la quale ci permette di generare numeri casuali interi, double o riempire array di byte. Possiamo specificare anche un valore massimo, o un range di valori nel quale il nostro numero casuale deve ricadere.

 

Tramite la classe Random generare numeri casuali in C# è davvero un gioco da ragazzi, dobbiamo porre però attenzione a questo argomento, poichè nasconde un'insidia, infatti è bene sapere che la classe Random permette di generare numeri pseudo-casuali, i numeri generati non sono completamente casuali, poiché sono generati da un'algoritmo matematico (algoritmo sottrattivo) che per sua natura stessa non può essere casuale.

 

La genereazione di un numero casuale avviene partendo da un valore d'inizializzazione, detto seme, scegliendo sempre lo stesso seme si otterrà sempre la stessa sequenza di numeri pseudo-casuali, proprio perchè generati da un'algoritmo matematico. Per ottenere dei numeri veramente casuali è necessario variare il valore del seme in base ad un qualche fattore, molto utile potrebbe essere il fattore tempo, affidandoci magari al clock di sistema.

 

Andiamo a vedere come usare la classe Random per generare numeri casuali in C#, facendo bene distinzione tra quelli pseudo-casuali e quelli casuali puri.

 

Prosegue...

Categorie: .NET framework | C#

Tags: ,

Come chiudere automaticamente i programmi in esecuzione durante la fase di arresto di Windows

06-mar-2010Giorgio Borelli

Terminare automaticamente i processi ancora in esecuzione durante la fase di arresto di WindowsSono certo che sarà capitato anche a voi che durante la fase di arresto di Windows, qualche programma ancora in esecuzione non vi permette l'arresto del sistema operativo, avvisandovi di chiudere il programma con la classica finestrella "Termina Adesso".

 

Questo meccanismo è tanto fastidioso quanto inutile, seve soltanto a far perdere tempo, se voglio arrestare il sistema operativo è normale che voglia chiudere qualsiasi programma, che lavori in background o meno. Per chi è stufo di questo messaggio, è possibile correggere questo comportamento di Windows con un piccolo hack sul registro di sistema, andiamo a vedere come fare.

 

Prosegue...

Categorie: Hack | Windows

Tags: ,

Come si scrive l'indirizzo eMail tutto minuscolo o tutto maiuscolo?

28-feb-2010Giorgio Borelli

eMail è case insensitiveMa come si scrive un indirizzo email, tutto minuscolo o tutto maiuscolo? Ne ho sentite di cotte e di crude, maiuscolo, minuscolo, con lo spazio, tutto attaccato, ed altro ancora.

 

E voi a quale scuola di pensiero appartenete? Siete schierati per quelli che scrivono l'email tutta in minuscolo o tra quelli che sono convinti che vada scritta tutto maiuscolo.

 

Ma dove stà la verità? Come deve essere scritto effettivamente un indirizzo emai? E se vi dicessi che io solitamente lo scrivo così: mARioRoSSI@nOMEdoMinIO.iT

 

Sorpresi? Non dovreste, se volete scoprire come effettivamente và scritto un'indirizzo email continuate a leggere questo ironico articolo.

 

Prosegue...

Categorie: e-mail | Internet | Web

Tags:

How to Fix SQLDUMPER library failed initialization

27-feb-2010Giorgio Borelli

Come risolvere il problema del messaggio d'errore legato al servizio di SQL Server WriterIl servizio SQL Server Writer è un servizio di Microsoft SQL Server che permette di ripristinare e fare il backup di SQL Server tramite l'applicazione Copia Shadow del volume (VSS).

 

Il servizio SQL Writer viene installato automaticamente con SQL Server e se avviato permette a Windows di operare sui file di dati di SQL Server mentre è in esecuzione il motore di database, consentendo alle applicazioni di backup di Windows che si appoggiano su SQL Server d'interagire ed operare sui file anche mentre il motore è in esecuzione

 

A tal proposito, può manifestarsi a causa della corruzione di qualche database legato al servizio il seguente messaggio d'errore: "SQLDUMPER library failed initialization. Your installation is either corrupt or has been tampered with. Please uninstall then re-run setup to correct this problem"

 

Tale messaggio d'errore si presenta in una finestra modale ad ogni avvio della macchina, andiamo a vedere come risolvere e rimuovere così l'errore.

 

Prosegue...

Categorie: fix | Sql Server

Tags:

Il pattern Singleton in C#

25-feb-2010Giorgio Borelli

Il design pattern Singleton in C SharpNell'ambito della programmazione OOP i design patterns non sono altro che delle soluzioni efficaci, testate e funzionanti a problemi comuni. Utilizzare un pattern al momento opportuno si rivela sicuramente una soluzione elegante ed efficace, ed evita di ri-scrivere del codice potenzialmente non ottimizzato o contentente dei bug. Tuttavia i patterns non rappresentano delle regole scritte per una buona programmazione, più che altro forniscono delle linee guida da seguire quando uno sviluppatore deve mettere appunto un determinata soluzione.

I design patterns sono diversi, ed è celebra la loro raccolta nel libro “Design Patterns: Elements of Reusable Object-Oriented Software” ad opera del Gof (Gang of four - la banda dei quattro), quattro esperti programmatori di fama, i quali hanno suddiviso i patterns in tre famiglie: strutturali, creazionali e comportamentali.

Oggi vogliamo prendere in considerazione il pattern Singleton, appartenente ai patterns creazionali, specifici per la creazione d'istanze. Lo scopo del pattern Singleton è quello di permettere per una classe la creazione di una ed una sola istanza con un'unico punto d'accesso (entry-point) all'istanza a livello globale.
Andiamo a scoprire come s'implementa un pattern Singleton in C# e quali caratteristiche e vantaggi comporta.


Prosegue...

Categorie: C# | Programmazione

Tags: ,

Gli Eventi in C Sharp

23-feb-2010Giorgio Borelli

Spiegazione degli eventi in C#Sia che parliamo di programmazione per Windows Form o Web Form la gestione degli eventi in C# è un'aspetto fondamentale che ogni buon programmatore deve conoscere.

 

Il meccanismo degli eventi consente di notificare dei messaggi tra gli oggetti della mia applicazione al verificarsi di determinate condizioni. Allo scatenarsi di un evento è possibile gestirlo opportunamente per effettuare operazioni ed intraprendere azioni per variare il comportamento dell'applicazione come reazione al cambiamento del suo stato.

 

Un oggetto che genera un'evento, lo notifica ad un'altro che lo prende in carico e lo gestisce (handler dell'evento), tale meccanismo viene implementato per mezzo dei delegates, gli eventi in C# non sono altro che particolari tipi di delegate multicast.

 

Prosegue...

Categorie: C#

Tags: ,

I Delegate in C Sharp

21-feb-2010Giorgio Borelli

Cosa sono e come funzionano i delegate in C#Un delegate in C# viene spesso descritto come un puntatore a funzione (in analogia con il C++), un ulteriore paragone e quello con le interfacce, un delegate (come le interfacce per le classi) specifica la signature (firma) del metodo che successivamente sarà invocato dai metodi degli oggetti che ne rispettano la firma.

 

Senza nulla togliere alle analogie che sussistono realmente tra i delegate ed i puntatori a funzioni e le interfacce, penso che per chi è alle prime, una tale definizione può generare un pò di confusione, allora come spiegare cos'è un delegate in C#?

 

 

Prosegue...

Categorie: C#

Tags: ,

La gestione delle eccezioni in C Sharp

16-feb-2010Giorgio Borelli

Come gestire l'eccezioni nel codice C#, con le istruzioni try, catch, finally e throwLa gestione delle eccezioni indipendentemente dal linguaggio usato è un'aspetto fondamentale di ogni buon programma, sia questo un'applicazione web che un programma stand alone.

Per quanto ben progettato, nessun programma è esente da bug, sia il contesto sia gli errori imprevisti possono comportarne un malfunzionamento o peggio un crash, e quest'ultima è proprio l'effetto che vogliamo evitare assolutamente.

 

Tramite la gestione delle eccezioni è possibile intercettare e gestire in modo opportuno tutti quegli errori, eventi imprevisti e situazioni anomali, consentendo al programma di ripristinarsi ad uno stato normale ed all'utente di riprenderne il normale uso. Un uso accorto della gestione delle eccezioni permette pertanto di scrivere programmi più robusti ed efficaci.

 

Tratteremo in questo articolo l'uso dei blocchi, delle parole chiavi, del lancio e della personalizzazione delle eccezioni in C#.

 

Prosegue...

Categorie: C#

Tags:

Hashtable e Dictionary in C Sharp

13-feb-2010Giorgio Borelli

Guida all'uso delle classi contenitrici di dati, le Hashtable e le Dictionary delle collections del framework.NETLe Collections del .NET framework sono "oggetti" fondamentali per svolgere il ruolo di contenitori di dati, tutte le classi che implementano le Collections sono incluse nel namespasce System.Collections, e tramite esse e possibile definire strutture dati come array, liste, hashtable che ben si prestano a contenitori di dati ed alla gestione semplificata dei dati stessi, come inserimento, cancellazione, ordinamento e così via.

 

Tutte le Collections del .NET framework implementano due interfacce, ICollection e IEnumerable, che definiscono una serie di metodi e proprietà comuni che rendono le Collections utilissime per la gestione dei dati a livello di codice, troviamo infatti proprietà e metodi come Count, CopyTo, GetEnumerator che semplificano enormemente la vita allo sviluppatore.

 

Le classi facenti parte del namespace System.Collections sono: Array, ArrayList, BitArray, Dictionary, Hashtable, Queue (code), List, SortedList, Stack (pile). Ognuna di esse implementa ulteriori interfacce che ne specializzano l'uso.

 

In particolare, due di queste classi, si addicono perfettamente alla gestione dei dati in maniera indicizzata, come una rubrica od un dizionario, tramite una coppia di elementi detti chiave-valore, stiamo parlando delle Hashtable e dei Dictionary.

 

Prosegue...

Categorie: C#

Tags: