"Done is better than perfect."


ImageResizer

Finite le vacanze, tutti a metter le proprie foto online. Ecco una piccola utility (frutto di refactoring e copia/incolla)  per ridimensionare ed alleggerire le immagini in un formato adatto al web: Program.cs 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: using System.IO; 6: 7: namespace ImageResizer 8: { 9: class […]




Update da una select

1: UPDATE Table1 SET Field1 = NULL FROM (SELECT TOP 10 FROM Table1 ORDER BY Created DESC) Table1




FTP Activity

Ho pubblicato un articolo,  codice annesso, sulla creazione ed utilizzo una custom Activity per operazioni su cartelle FTP.  Al di la’ delle funzionalita’ fornite dall’activity, l’articolo fornisce i primi passi utili ad implementare il supporto a design-time ai propri custom controls. Lo potete trovare su codeproject, a questo indirizzo : link.




Anonymous methods e functional programming

La programmazione funzionale trova poco spazio nello sviluppo tradizionale a cui un programmatore .net, a meno che utizzi F#,  e’ abituato. Nonostante cio’, la storia vuole che con gli ultimi rilasci del framework, in particolar modo con l’introduzione delle lambda expressions, e’ possibile scrivere tonnellate di codice affascinante (ed illegibile) da invogliare il vostro compagno […]




Logging base con Enterprise Library 4.0

Semplice logging su file : 1: LogEntry logEntry = new LogEntry(); 2: logEntry.Message = “Test logging message”; 3: logEntry.Severity = System.Diagnostics.TraceEventType.Error; 4: logEntry.ExtendedProperties.Add(“Class”, “Program”); 5: logEntry.ExtendedProperties.Add(“Method”, “Main”); 6: Logger.Write(logEntry); App.config (contenente link a file di config esterno): 1: <?xml version=”1.0″ encoding=”utf-8″ ?> 2: <configuration> 3: <configSections> 4: <section name=”enterpriseLibrary.ConfigurationSource” type=”Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ /> […]




Workflow/Webservice async operations

Tra le tante novita’ delle ultime versioni del framework una delle mie favorite e’ sicuramente Workflow Foundation. Il poter modellare il flusso della propria applicazione, spostarne le parti (se ben disegnato) senza rimettere mano al codice, raggruppare activities in blocchi come la SequenceActivity e gestirne tutte le eccezioni con un FaultHandler all’altezza dell’activity che le […]




Abilitare DelayActivity in Workflow/Web Service

Web.config: <add type=”System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ UseActiveTimers=”True” />




XElement e liste

Ottenere un documento XML dove un elemento/nodo puo’ essere ripetuto piu’ di una volta (ad esempio il risultato di una query sql) utizzando liste generiche: 1: public class Persona 2: { 3: public Persona(string nome, string cognome) { this.nome = nome; this.cognome = cognome; } 4: public string nome, cognome; 5: } 1: List<Persona> listPersone […]




InvokeWebServiceActivity tips

Per poter modificare il puntamento ad un web service a runtime e modificarne il timeout: 1: private void callWsOperation_Invoking(object sender, InvokeWebServiceEventArgs e) 2: { 3: ((MathWS.Operations)e.WebServiceProxy).Url = ((NameValueCollection)ConfigurationManager.GetSection(“MyCalculator/OperationsWf”))[“OperationsWS”]; 4: ((MathWS.Operations)e.WebServiceProxy).Timeout = 900000; 5: } Dove MathWS.Operations e’ il nome del Web Service. Gestendo l’evento Invoking e’cosi’ possibile cambiare il Ws a cui punta l’activity cosi’ […]




Iphone video converter

Come possessore di Iphone mi capita di dover convertire e trasferire filmati sul bel gioellino di casa Apple: essendo la maggioranza dei convertitori video a pagamento ed i pochi free(vedi Videora) farciti di banner ecco un tool poco invasivo in grado di convertire la maggior parte dei formati video in files video per Iphone/Ipod. L’applicazione […]