Tips & tricks

Javascript code block formatting

For those who develop applications using C# or Javascript, but I think Java too, (I’m not a Java developer and then I don’t know if what I’m going to say is true for them as well) ,  there are two kind of writing styles for indentation and code’s blocks formatting . These styles, known as K&R (Kernighan & Ritchie) style and Allman style, concern the way the opening curly brace is opened, when defining a block of code. The former places the brace in the same line as the preceding line of code, as you can see in...

posted @ Monday, April 29, 2013 9:23 PM | Feedback (1)

How to debug Log4Net

If you use Log4Net as log engine for your applications (in my opinion is the best choice), this simple row in application configuration file can save you by a waste of time and probably by a headache too. <add key="log4net.Internal.Debug" value="true"/> When Log4Net doesn’t log anything due to a configuration error it never throw an exception, and this is the expected (and correct) behavior of a log system which should never block an application due to its internal error. Unfortunately when something went wrong it is quite difficult discover the reason if...

posted @ Saturday, May 19, 2012 11:49 AM | Feedback (0)

ASP .Net e i thread secondari

Interessantissimo post di Stefano Pronti del nuovo blog MSDN di Supporto Tecnico agli Sviluppatori, che spiega le disastrose conseguenze di non richiamare il metodo Dispose su risorse unmanaged, utilizzate all'interno di una web application. Per farla breve, le risorse unmanaged utilizzavano un thread secondario rispetto a quello che prende in carico la web request, ed in questo thread secondario veniva sollevata una eccezione non gestita durante la fase di finalizzazione del garbage collector, che, come è noto, viene eseguito in un thread diverso. In questo caso il comportamento di ASP .NET a partire dalla versione 2.0 è quello di interrompere...

posted @ Monday, September 28, 2009 8:24 AM | Feedback (0)

Come ottenere il nome del metodo chiamante dallo stack usando reflection

Cosi: 1: using System.Diagnostics; 2: void Log(string eventMessage) 3: { 4: Console.WriteLine("Event logged by " + (new StackTrace()).GetFrame(1).GetMethod().Name); 5: Console.WriteLine("Event: " + eventMessage); 6: } 7:    Fonte: Tips & Tricks for ASP.NET, IIS, and Visual Web Developer 

posted @ Friday, August 14, 2009 7:41 AM | Feedback (0)

Impostare il calendarextender ad una cultura specifica

L'extender CalendarExtender presente nell'Ajax Toolkit presenta un bug se si cerca di globalizzarlo, ovvero adattarlo ad una specifica cultura. Infatti, la label presente in basso con l'indicazione della data odierna non viene globalizzata ma rimane impostata fissa alla cultura inglese, per cui apparirà sempre la scritta "Today". Affinchè i controlli dell'Ajax Toolkit possano essere personalizzati sulla base delle varie culture non basta impostare la specifica cultura nel file di configurazione dell'applicazione web (tag globalization), oppure impostarla tramite browser, ma occorre anche abilitare il rendering dello script al supporto di culture specifiche, tramite la proprietà EnableScriptGlobalization dello ScriptManager, che deve essere...

posted @ Friday, March 06, 2009 7:11 AM | Feedback (0)

Invocazione di store procedure oracle in .NET

Il Data Access Application Block, contenuto all'interno della Enterprise Library 4.1 consente di richiamare store procedures passando esclusivamente il valore dei singoli parametri richiesti (mediante l'utilizzo del metodo GetStorepProcCommand dell'oggetto DatabaseFactory), nello stesso ordine con cui questi sono espressi nella firma della procedura. Poichè ADO .NET richiede comunque che ogni informazione in merito ai parametri della store sia obbligatoria (quindi tipo di dato, dimensione, precisione, scala, ecc), il metodo effettua internamente una chiamata al metodo DeriveParameters di ADO .NET che, attraverso un round-trip al database server, consente di recuperare tutte le informazioni necessarie sui parametri. Poichè come detto, questa chiamata...

posted @ Monday, February 16, 2009 8:50 AM | Feedback (0)

Visual studio ide crash #2

Avevo già parlato qui (post immediatamente sotto :-)) di uno strano crash di Visual Studio 2008 SP1, a seguito dell'esecuzione comando "Choose items" della toolbox. Il problema sembrava essere dovuto alla presenza dei PowerCommands e di una loro presunta incompatibilità con il Service Pack 1. Infatti per poter tornare alla "normalità" era necessario un'azione estrema, ovvero rimuovere i PowerCommands, ed a quel punto il problema spariva. Oggi scopro che attraverso un assemply redirection nel file di configurazione di Visual Studio (devenv.exe.config) il problema si risolve definitivamente, e che il crash si verificava anche nell'editor XAML. Maggiori info qui. Quindi la...

posted @ Tuesday, December 09, 2008 7:44 AM | Feedback (1)

Impostare la scheda LAN con file batch

Non sono un sistemista, nè lo saro mai, ma anche occupandosi solo di sviluppo è utile avere sottomano tools e/o tips prettamente sistemistici che possono essere sicuramente utili. Eccone uno: 1) netsh interface ip set address "Connessione alla rete locale (LAN)" static 10.xxx.xxx.xxx 255.255.255.0 10.xxx.xxx.xxx 02) netsh interface ip set dns "Connessione alla rete locale (LAN) " static 10.xxx.xxx.xxx primary3) netsh interface ip add dns "Connessione alla rete locale (LAN)" 10.xxx.xxx.xxx4) netsh interface ip show config "Connessione alla rete locale (LAN) " I comandi sopraelencati, messi opportunamente in un file .bat, permettono di settare al volo la configurazione di una...

posted @ Thursday, February 14, 2008 1:49 PM | Feedback (1)

Righello nell' editor di Visual Studio

Una caratteristica che ogni buon software dovrebbe, a mio avviso, avere riguarda la leggibilità del codice sorgente, intesa nel senso letterale del termine. Leggibilità significa che, quando si legge codice scritto da altri, non si dovrebbe faticare più di tanto a leggerlo "a colpo d'occhio".Molto spesso però si finisce per fare una gran fatica per comprendere codice magari anche non troppo complesso dal punto di vista della tecnica di programmazione, ma scritto decisamente senza alcuna linea guida.Tra le linee guida minori che, secondo il mio parere, riveste comunque una certa importanza, è da menzionare la lunghezza delle varie linee di codice....

posted @ Monday, February 13, 2006 7:51 PM | Feedback (0)