Jan
30
Implicit e explicit operators
Filed Under Articoli, C# | Leave a Comment
Gli operatori implicit ed explicit sono stati introdotti con .NET 2.0.
Questi operatori servono per dichiarare un operatore di conversione di tipi.
Ecco subito un semplice esempio.
Abbiamo una struttura (di nome Struttura) che contiene un campo di tipo intero:
struct Struttura
{ public int Value; }
Struttura stru;
Se si volesse inizializzare la struttura (e quindi il suo unico campo Value) si deve scrivere così
stru.Value = 100;
Jan
26
Tipi nullable
Filed Under .NET Framework, Articoli, C# | 1 Comment
I tipi nullable sono stati introdotti nella versione 2.0 di .Net.
Questi tipi valori sono istanze della struttura Syste.Nullable<>, e rappresentano un tipo con tutti i valori di quello base, più un valore aggiuntivo null. Mi spiego meglio: prendiamo in considerazione, come esempio, il tipo bool:
System.Nullable<bool> var;
La variabile var, al contrario di una normale variabile bool che può assumere due valori (true o false), può assumere tre valori: true, false o null.
Jan
26
Monitorare lo stato delle connessioni
Filed Under .NET Framework, Articoli, C#, Networking | Leave a Comment
In alcuni casi potrebbe essere utile ottenere informazioni generiche, ma anche dettagliate, riguardo i vari stati di tutte le connessioni presenti sul nostro sistema in riferimento a più protocolli di rete.
Esistono diversi modi per raggiungere questo scopo ed uno dei più rapidi ci viene offerto dalla versione 2.0 del .NET Framework con la classe IPGlobalProperties (namespace System.Net.NetworkInformation), in particolare sfruttando il metodo statico GetIPGlobalProperties().
Jan
23
ApplicationContext e MainForm
Filed Under .NET Framework, Articoli, C#, Windows Forms | 4 Comments
Nei progetti VC# il thread principale del programma è legato alla Form principale per questo quando si chiude, la MainForm termina anche l’esecuzione del programma.
Questo comportamento è dovuto da questa riga di codice contenuta nel metodo Main:
Application.Run(new Form1());
Jan
21
Worker Thread
Filed Under .NET Framework, Articoli, C# | 3 Comments
Anche se in rete è possibile trovare diverse definizioni di oggetti che incapsulano il tipo nativo Thread di .NET, queste risultano spesso incomplete. Ecco perché ho deciso di svilupparne una custom per soddisfare le mie esigenze applicative.
Jan
21
Inserire Dll in cartella diversa da quella del .exe
Filed Under .NET Framework, C# | Leave a Comment
In Visual Studio per impostazione predefinita le DLL, o qualsiasi assembly, vengono create nella stessa cartella del .exe. Avvolte questo non è molto utile perché magari ci sono molte DLL e vogliamo “gestirle” meglio, mettendole in cartelle diverse da quella dell’eseguibile. Questo non è un problema quando la cartella che contiene l’assembly si chiama nello stesso modo dell’assembly da caricare. Per esempio abbiamo una dll di nome Dll contenuta in una cartella di nome Dll:
App\Dll\Dll.dll
App\App.exe
In questo caso non viene sollevata nessuna eccezione, perché il Common Language Runtime trova l’assembly. Quando la cartella non porta lo stesso nome dell’assembly, si deve creare un file di configurazione per indicare a CLR dove cercare. Ecco un esempio di file config:
Jan
20
Applicazione con singola istanza
Filed Under .NET Framework, Articoli, C# | Leave a Comment
Spesso può essere utile sviluppare applicazioni funzionanti su singola istanza. Questa è una funzionalità richiesta soprattutto dai programmatori VB che per ragioni di lavoro sono passati a C#. Infatti in VB.NET basta spuntare l’opzione “Make single istance application” nelle opzioni del progetto. Nei progetti in C# questa opzione non esiste, ma ciò non vuol dire che non si possa implementare via codice.In prima analisi si potrebbe pensare di eseguire, all’interno del Main, un controllo sui processi in esecuzione. La cosa sarebbe fattibilissima, basta utilizzare il metodo GetProcessByName della classe Process per ottenere i processi che portano il nome della nostra applicazione. I metodi GetProcess (GetProcessByName, GetProcessById) però, usano i performance counters. Pertanto non sono da usare così alla leggera perché possono avere un paio di problemi:
- I Performance Counter possono essere disabilitati e la classe Process, senza di questi, non funziona;
- I Performance Counter sono disponibili solo agli utenti admin della macchina.
Un’alternativa è quella di usare i Mutex. I Mutex sono una primitiva di sincronizzazione e sono molto facili da usare. Ecco quindi come diventa la classe program:
Jan
19
Anche se la notizia non è proprio fresca (risale a qualche giorno fa), merita davvero di essere segnalata.
Come promesso circa un mesetto fa, Microsoft ha reso disponibili i sorgenti del .Net Framework sotto licenza Microsoft Reference License (MS-RL). Questi sorgenti saranno visibili durante la fase di Debug dell’applicazione mentre si fa Debug Step-by-Step. Per tutti i dettagli su come configurare Visua Studio 2008 (purtroppo la versione Express non è supportata) vi rimando al blog di Shawn Burke.
Per ora i sorgenti disponibili sono quelli degli assembly:
- Mscorlib.DLL
- .NET Base Class Libraries
- ADO.NET
- ASP.NET
- XML
- System.Security
- Windows Forms
- WPF (Windows Presentation Foundation)
- Microsoft.VisualBasic.DLL
In futuro saranno disponibili anche quelli di LINQ e WCF.
Jan
16
Si riparte!
Filed Under Annunci | Leave a Comment
Alcuni giorni fa abbiamo riavviato il forum di Visual C#.it a grande richiesta dei suoi partecipanti (nuovi e storici). Il forum ha iniziato a popolarsi in fretta e conta attualmente 75 iscritti, in soli due giorni dalla sua apertura. Come potete immaginare siamo tutti molto soddisfatti della sua grande ripresa. Noterete anche che il software utilizzato e il nuovo server garantiscono una maggiore velocità nel caricamento delle pagine e di conseguenza una più piacevole utilizzazione del forum stesso.
Alcuni di voi hanno richiesto l’inserimento dei vecchi post all’interno del forum. Esistono purtroppo delle difficoltà tecniche dovute al metodo di organizzazione dei dati nel database da parte dei due forum. Ogni tentativo produrrebbe risultati meno che soddisfacenti. Se consideriamo poi tutte le novità introdotte recentemente da Microsoft è facile comprendere che molte delle informazioni archiviate nel vecchio forum sono comunque oramai obsolete. Certo perdiamo un bel po’ di iscritti e di dati, ma possiamo cogliere l’occasione del nuovo forum e del nuovo anno per partire da capo. Non escludiamo di poter mettere una copia statica del vecchio forum online per chi arriva al sito tramite un motore di ricerca, ma nessuna promessa.
A distanza di soli due giorni rieccoci qui con un nuovo annuncio. Nel sito precedente avevamo una serie di blog disponibili per i partecipanti. Gli autori che decidevano di scrivere non ricevano però il giusto grado di attenzione, perché si trattava alla fin fine di un blog individuale tra le miriadi di blog creati automaticamente. Con il riavvio del sito abbiamo pensato di creare un blog di gruppo che accetterà solamente notizie, articoli e guide di qualità. Ci sarà quindi un filtro e una certa linea editoriale pur mantenendo moltissima libertà circa i temi da trattare e il tono utilizzato. In questo modo ogni messaggio pubblicato da un autore avrà la dovuta attenzione da parte dei lettori. La qualità dei contenuti sarà variabile ovviamente, ma cercheremo di mantenere un certo standard qualitativo anche quando trattiamo argomenti del tutto introduttivi. Chi volesse partecipare al blog di gruppo su Visual C#.it pubblicando notizie e articoli, può contattarmi all’indirizzo antonio at visualcsharp punto it per discutere la propria partecipazione volontaria. In questi giorni cercheremo di aggiungere i migliori post e articoli tratti dai blog che erano precedentemente online. Per non perderne nessuno, potete abbonarvi al nostro feed sin da subito.
Si riparte. Stavolta sul serio.

Feed degli articoli
Feed dei commenti
Forum














