C#

C#
XmlReader.Create dietro ad un proxy

Mi capita spesso di dover ripetere sto codice… ecco che me lo appunto: SyndicationFeed feed; WebProxy proxy = new System.Net.WebProxy("xx.xx.xx.xx", 8080); proxy.BypassProxyOnLocal = true; proxy.Credentials = new System.Net.NetworkCredential("nome", "pwd", "dominio");   using (WebClient client = new WebClient { Proxy = proxy }) { using (Stream stream = client.OpenRead(rssUrl)) { using (XmlReader xmlreader = XmlReader.Create(stream)) { ...

posted @ venerdì 11 marzo 2011 17:13 | Feedback (0)

Data type mismatch in criteria expression in MS Access

Oggi sono diventato scemo per fare un inserimento di una data in MS Access… non ho capito bene il problema e se è un baco, ma praticamente se non converto la data evitando che ci siano i millisecondi access si incazza come una bestia… mahh!! public override void Save(OleDbConnection conn) {     string sqlcmd = @"INSERT INTO miatabella (UserName, DteRichiesta) Values (?,?)";     using (OleDbCommand cmd = new OleDbCommand(sqlcmd, conn))     { ...

posted @ domenica 31 gennaio 2010 21:39 | Feedback (0)

Zippare cartelle di grandi dimensioni

Quando si producono zip di grandi dimensioni è facile che la memoria aumenti troppo. Con SharpZipLib è facile evitare di saturare la memoria. Ecco un esempio di codice per zippare una cartella: public static void ZipFilesToDisk(string inputFolderPath, string outputFile, string password) {     ArrayList fileNames = GenerateFileList(inputFolderPath); // generate file list     byte[] buffer = new byte[1024 * 8];     using (ZipOutputStream zipOutput = new ZipOutputStream(File.Create(outputFile)))     {         // set compression level         zipOutput.SetLevel(9);         // set password...

posted @ giovedì 28 gennaio 2010 20:45 | Feedback (0)

Fare un unico EXE: una tecnica interessante.

L’avevo intravista tempo fa utilizzata in un eseguibile che guardavo con reflector, oggi l’ho provata: carina! Quando si fanno degli eseguibili semplici che magari utilizzano un componente esterno (una reference di una dll esterna) si puo’ fare in modo di distribuire un unico exe con embeddate dentro le dll referenziate. Di solito per avere un unico exe utilizzavo il comando IlMerge e le sue varie GUI, con questa tecnica si fa a meno. Facciamo un esempio: mettiamo il caso che il mio programmino faccia uso di SharpZipLib per produrre degli zip. Per fare in modo di distribuire...

posted @ mercoledì 27 gennaio 2010 17:24 | Feedback (1)

Esporre eventi 'visibili' da un servizio Windows

Interessante post che spiega come sviluppare servizi Windows che espongono eventi visibili da applicazioni di utente (su Windows7 e Vista il check 'Allow this service to interact with desktop' non serve) Questo il link al post.

posted @ lunedì 25 gennaio 2010 11:32 | Feedback (0)

Generare codice in VSNET 2008

Avevo già provato in passato il T4 e altri strumenti per generare codice, ma ho sempre installato qualcosa. Oggi ho scoperto (mia ignoranza) che il T4 è già incluso nell’installazione di VSNET 2008… ancora più semplice da utilizzare. Un generatore è utile in molti casi, generazione di SP del DB, di enumerator, di entities, ecc… Per creare un template basta creare un file di testo e rinomarlo in .tt. Una volta salvato verrà generato un file contenente il risultato.   Il template: <#@ template language="C#" #> ...

posted @ venerdì 22 gennaio 2010 03:27 | Feedback (3)

Un TabControl senza tab

A volte torna utile l’utilizzo del controllo Tab senza visualizzare l’header del controllo per fare in modo di visualizzare o nascondere dei controlli. Come indicato su questo post, è possibile crearsi il proprio controllo ereditando dal TabControl e facendo l’override del WndProc: public class CustomTabControl : TabControl {     protected override void WndProc(ref Message m)     {         if (m.Msg == 0x1328 && !DesignMode)            ...

posted @ lunedì 7 dicembre 2009 10:30 | Feedback (0)

GetProcess per utente

Una delle mancanze della classe “Process” è quella di non esporre la proprietà “Owner”, per cui risulta difficile ottenere una lista dei processi di un utente. Nel caso di Terminal-Service, o di FastUser-Switch se si chiede una lista dei processi attivi si ottengono anche quelli degli altri utenti collegati. Per risolvere il problema il metodo migliore che ho trovato è quello di ricorrere a WMI (per cui occhio alle prestazioni) Ecco un esempio: public class MyProcess : Process { public static List<Process> GetMyProcessesByName(string procName) { ...

posted @ martedì 1 dicembre 2009 02:44 | Feedback (0)

Eliminare nodi da un file XML con LINQ

Piccolo tip per eliminare velocemente dei nodi da un file XML: private static void AdjustXml(string pathFile) { XDocument doc = XDocument.Load(pathFile); XNamespace ns = "http://mioshema"; var q = from node in doc.Descendants(ns+"NomeNodo") select node; q.ToList().ForEach(x => x.Remove()); doc.Save(pathFile + ".xml"); }

posted @ lunedì 30 novembre 2009 23:10 | Feedback (0)

Spell-Check e sinonimi italiano in C#

Grazie a NHunspell e ai dizionari di OpenOffice è facile dotare le nostre applicazioni di funzionalità di spell-check (controllo esattezza parole) e sinonimi. Dopo aver letto questo articolo e avendo visto che esistono i dizionari in italiano, ho fatto un po di prove rimanendo sorpreso dalla facilità di implementazione. E’ possibile controllare l’esattezza delle parole: … e controllare significato e sinonimi: A questo link potrete trovare i dizionari in italiano, mentre a questo link il mio progetto di esempio:

posted @ sabato 21 novembre 2009 01:22 | Feedback (0)

Full C# Archive