C#
C#
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))
{
...
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)) { ...
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...
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...
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.
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#" #> ...
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) ...
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)
{
...
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");
}
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:
Full C# Archive