Tips & tricks
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...
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
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...
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...
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...
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...
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....