Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 659, comments - 871, trackbacks - 80

My Links

News

Gian Maria Ricci Mvp Logo CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

.NET

Per tutti gli sviluppatori Embedded

Se siete sviluppatori Embedded, o vi interessa comunque l’argomento sta per arrivare una serie di webcast sull’argomento Windows Embedded Standard7 con delle anteprime sulla nuova versione che sarà basato su Win8. Le sessioni saranno fatte dal caro amico Valter Minute e vi guideranno sul come realizzare applicazioni, ma soprattutto come “ritagliare” il sistema operativo in modo che soddisfi le esigenze della vostra applicazione. Maggiori dettagli li potete trovare nella pagina di iscrizione Windows Embedded for Application Developers, il primo della serie è il 6 giugno, per cui non perdete tempo :). Gian Maria.

posted @ lunedì 28 maggio 2012 10:18 | Feedback (0) | Filed Under [ .NET ]

Perché non uso generatori di codice con Nhibernate

Talvolta mi viene chiesto se conosco qualche generatore di codice per NHibernate, ovvero qualche cosa che possa partire da un database e possa generare classi e mapping in modo da essere operativi con NH in poco tempo. Sinceramente ne conosco qualcuno, ma non li ho mai usati. My Generation: http://www.mygenerationsoftware.com/portal/default.aspx NHGen: http://sourceforge.net/projects/nhgen/ Devart: http://www.devart.com/entitydeveloper/nhibernate-generator.html NHDesigner: http://www.mindscapehq.com/products/NHDesigner/default.aspx La ragione è forse in questo post, se ho già un databse fatto, la cui struttura non verrà modificata troppo spesso, Entity Framework mi permette una più rapida operatività,...

posted @ mercoledì 30 novembre 2011 11:24 | Feedback (1) | Filed Under [ .NET ]

Cosa mi piace di Entity Framework

Leggendo questo post di Ayende concordo sul fatto che EF è sicuramente utile se ho un database legacy che debbo principalmente leggere, o dove non devo modificare troppo i dati. Con due click infatti si può importare tutta la struttura e iniziare subito a lavorarci, con un prodotto che è comunque molto migliore di un Dataset. La cosa che non mi è mai piaciuta di EF Designer, è che se il db è in continua evoluzione è un po “goffo” da gestire, ma se debbo “leggere” da un db esistente mi garantisce l’operatività in un paio di minuti, fattore...

posted @ martedì 29 novembre 2011 11:22 | Feedback (3) | Filed Under [ .NET ]

Windows 8 preview

Penso che oramai tutti lo sappiano, la potete scaricare qui. http://msdn.microsoft.com/en-us/windows/home/ Ci sono in giro anche interessanti articoli su come provarla mettendola su ferro senza il rischio di distruggere la vostra partizione primaria http://www.hanselman.com/blog/GuideToInstallingAndBootingWindows8DeveloperPreviewOffAVHDVirtualHardDisk.aspx Buon Build. Gian Maria

posted @ mercoledì 14 settembre 2011 17:35 | Feedback (0) | Filed Under [ .NET ]

Sql Server Code name “Denali”

E’ finalmente uscita la CTP3 di SQL Server codename “Denali”, per chi fosse interessato potete trovare un witepaper sull’argomento. Le novità in pentola per SQL-Server sembrano molte, anche per noi developer. Con i developer tools codename “juneau” vengono introdotte feature molto interessanti, soprattutto leggiamo dalla pagina di MSDN di juneau (http://msdn.microsoft.com/en-us/data/gg427686) Developers will also appreciate the familiar VS tools we bring to database development, specifically; code navigation, IntelliSense, language support that parallels what is available for C# and VB, platform-specific validation, debugging and declarative editing in the TSQL Editor, as well as a visual Table Designer for both...

posted @ venerdì 15 luglio 2011 10:36 | Feedback (0) | Filed Under [ .NET ]

Async CTP refresh

Debbo dirlo, sono un appassionato dell’Async CTP ed una delle cose che mi piace di più è che appena installato hai subito la possibilità di vedere degli esempi di codice, tra cui il mitico 101 c# async samples. (lo trovate tra i samples, uno degli aspetti più interessanti è che di esempi ce ne sono veramente tanti) La cosa interessante di questo esempio è che mostra come una certa operazione asincrona può essere fatta con l’aiuto di async e come invece la faremmo in C# 4.0, questo fa capire veramente bene come il codice sia veramente molto, ma molto...

posted @ martedì 10 maggio 2011 20:13 | Feedback (0) | Filed Under [ .NET ]

Lab Management

Una delle novità più succose del TFS2010 sono i Lab Management. Per chi ancora non sapesse di cosa si stia parlando qui potete trovare una serie di video (sono brevi di circa 5 min l’uno e si guardano in un attimo) che fanno una overview di cosa sia e come si possa usare Lab Management. Vale la pena darci uno sguardino, anche solo per vedere di cosa si tratta. Per chi poi avesse voglia di provarli “live”, qui trovate una bella macchina virtuale già pronta, ma attenzione, non è di quelle che apri il Virtual PC, la lanci e...

posted @ sabato 20 marzo 2010 10:53 | Feedback (0) | Filed Under [ .NET ]

Una mini ui per vsdbcmd.exe

Per chi lavora con i Database Project di Visual Studio (Developer edition o Team Suite), l’utility vsdbcmd.exe sarà già nota. Il vsdbcmd.exe è infatti quel programma a linea di comando che vi permette di aggiornare il database di deploy all’ultima versione risultante dalla compilazione di un Database Project. Questo programma è redistribuibile e gratuito, ma manca di interfaccia grafica. Per risolvere a questo problema potete consultare questo post di Benjamin Day che contiene il link ad una utility scritta da lui che fornisce un’interfaccia grafica al vsdbcmd.exe e lo rende decisamente più piacevole da usare. alk. Tags:...

posted @ mercoledì 14 ottobre 2009 17:49 | Feedback (0) | Filed Under [ .NET ]

TFS distribuito come macchina virtuale

In questo post, Brian Harry chiede cosa ne pensate sull’avere il tfs distribuito anche come Virtual Appliance. L’opzione è decisamente interessante, visto che alcuni sono un po “spaventati” dall’installazione di TFS, ed in questo modo potrebbero invece avere una macchina virtuale completamente preconfigurata e customizazre solo alcune parti, ma avere con pochi click un tfs funzionante. Fate pure i vostri commenti al post e fate sapere cosa ne pensate. Alk. Tags: TFS

posted @ mercoledì 7 ottobre 2009 10:58 | Feedback (0) | Filed Under [ .NET ]

ALM Day a Roma e Milano

Quest’anno a Roma e Milano, rispettivamente il 5 ed il 6 novembre si terrà l’ALM day. In questa edizione avremo, oltre a speaker internazionali del calibro di Brian Harry e Brian Keller, 4 MVP e tanti partner che parleranno di situazioni reali. Con un po di emozione posso dire che tra quei 4 MVP c’è anche il sottoscritto :), oltre a Giancarlo Sudano, Martin Woodward e Davide Vernole, per cui le giornate si prospettano decisamente interessanti. Tutti i dettagli sull’evento li potete trovare a questo indirizzo. Alk.

posted @ venerdì 2 ottobre 2009 16:24 | Filed Under [ .NET ]

Tanto per parlare di collection

Ho una applicazione che ad un certo punto analizza una serie di blocchi di testo per trovare dei pattern e deve restituire una lista univoca di stringhe che matchano. La prima implementazione è stata di fare una List<String> ed ad ogni match fare un List.Contains ed aggiungere solo quando  la stringa non compare già. Faccio i miei bei unit test ma quando metto in produzione mi accorgo che i dati su cui si lavora sono molto di più di quello che mi attendevo, io mi attendevo nell'ordine delle centinaia di match, mentre invece siamo nell'ordine delle decine di migliaia....su...

posted @ martedì 15 aprile 2008 16:46 | Feedback (15) | Filed Under [ .NET ]

Attenzione al BeginGetRequest dell'oggetto HttpWebRequest

dovevo fare un componentino che dato un insieme di url le scarica tutte a blocchi, ho usato HttpWebRequest e chiaramente ho usato il BeginGetRequest per fare richieste asincrone. Il programma va bene ma ogni tanto si blocca inaspettatamente, ho scoperto quindi con il fiddler che se una url si incanta e non risponde bene non esiste timeout, ho aspettato 30 minuti e la callback non è mai stata chiamata. Questo comportamento è conosciuto e basta guardare in msdn per vedere che effettivamente nei loro esempi di codice si fa un abort manuale allo scadere di un timeout. Alk. Technorati Tags:...

posted @ martedì 4 marzo 2008 17:47 | Feedback (0) | Filed Under [ .NET ]

Expression Tree

Se qualcuno fosse rimasto incuriosito dal comportamento di linq to sql mostrato in un precedente post, sto piano piano facendo qualche post nel mio blog inglese in cui spiego come si lavora con gli Expression Tree Alk.

posted @ sabato 16 febbraio 2008 13:53 | Feedback (0) | Filed Under [ .NET ]

Attenti agli encoding

Talvolta è necessario scaricare pagine internet, per questo scopo il .NET mette a disposizione varie classi, una delle quali è il WebClient, ecco un esempio Dim wc As New System.Net.WebClient()   wc.Headers.Add("Accept", "image/gif, image…)")   wc.Headers.Add("Accept-Language", "en,it;q=0.5")   wc.Headers.Add("UA-CPU", "x86")   wc.Headers.Add("Accept-Encoding", "deflate, gzip")   wc.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; …)")  ponete attenzione alla quarta riga, dove si mette l'Accept-Encoding, perchè quell'header dice al sito la lista di codifiche di trasmissione che voi capite, mettere "deflate" o "gzip" come nell'esempio è buona cosa, perché limitate il traffico del sito, ma attenzione perché poi dovete verificare se il server vi ha risposto in un formato compresso o meno. L'errore classico è quindi quello di leggere tutti i dati dallo stream di risposta e poi trovarsi con tanti bei...

posted @ giovedì 31 gennaio 2008 19:01 | Feedback (0) | Filed Under [ .NET ]

Ankh nuova versione

Questo me lo ero perso, è uscita una nuova versione di Ankh che potete trovare qui. Per chi non lo sapesse Ankh è un plugin Freeware per Visual Studio per gestire un repository subversion direttamente dal VS. Le vecchie versioni avevano qualche problemino, in particolare tendeva a rallentare molto in progetti con molti file e ad esempio non ti permetteva di rinominare un file appena creato se non era stato precedentemente committato nel repository. In generale per chi lavora con subversion è interessante installarlo e magari tenerlo attivo solamente per le solution più piccoline. Ora proverò a riattivarlo per qualche solution...

posted @ mercoledì 30 gennaio 2008 10:32 | Feedback (3) | Filed Under [ .NET ]

DirectoryEntry – non solo per active directory

Se si legge la documentazione dell'oggetto DirectoryEntry si suppone che tale oggetto sia utile solamente per active directory, invece ruminando per la rete si può vedere che è utilissimo anche per accedere al pc locale, ecco ad esempio come cambiare la password ad un utente del mio portatile, ltricci è il nome della macchina, mentre invece guardian è il nome utente, il mio portatile non è stato mai agganciato a nessuna active directory. DirectoryEntry entry = new DirectoryEntry(   "WinNT://ltricci/guardian", "gianmaria.ricci", "lami@passw0rd");Console.Writeline("Retrieved username:" + entry.Name + "\n"); entry.Invoke("SetPassword", new object[] { "nu0v@pa$sword" }); ed inoltre tramite questa classe potete enumerare e gestire i gruppi o anche i servizi, decisamente utile. Attenzione che la stringa di connessione sia "WinNT://nome macchina" con le...

posted @ domenica 25 novembre 2007 01:12 | Feedback (1) | Filed Under [ .NET ]

Fare le cose per bene paga

Ho una form che deve fare questo (visione semplificata ma la sostanza è questa) ascoltare su una socket per ricevere una serie di stringhe, fare un lookup in database per ogni stringa e mostrare dei dati all'utente. Il programma ha una MDI, l'utente apre la form X e quando arrivano i codici sulla socket vengono visualizzati, se la form X non è aperta non viene visualizzato nulla. Il cliente dopo avere visto il tutto funzionare fa la seguente richiesta di modifica: fare si che il programma MDI ascolti sempre nella socket, alla prima stringa che arriva se la form non...

posted @ martedì 20 novembre 2007 21:24 | Feedback (2) | Filed Under [ .NET ]

Quanto costa l’inversione di controllo

Tempo fa si discuteva sul blog di Ayende, sul discorso tecniche di inversione di controllo etc etc, in sostanza ci si chiedeva se questi concetti sono alla portata dello sviluppatore medio, oppure se sia possibile "far digerire" ai project manager l'idea di usare librerie Open Source (Spring.Net o Castle) in progetti reali. Questo ultimo punto è particolarmente sensibile, perché talvolta la reticenza è alta, la diffidenza verso l'Open Source è ancora radicata in certi casi. Questo però non vuole dire rinunciare in partenza a scrivere codice basandosi sui sani principi della IoC dato che alla fine con tre righe di...

posted @ lunedì 19 novembre 2007 14:16 | Feedback (3) | Filed Under [ .NET ]

Strano errore con le socket

Ho un software che è sempre andato bene, ultimamente mi sono accorto che venivano loggati alcuni errori mentre si cercava di stabilire una comunicazione con le soket, andando a vedere i log ho visto che l'errore era il 10035 o WSAEWOULDBLOCK . Questo errore si verifica per socket non bloccanti, ma nel mio caso il valore della proprietà Blocking era pari a true. Dopo 10 min di ricerca mi imbatto in questo post. Leggendo vedo un moderatore che consiglia di fare questo workaround As a temporary workaround you may want to explicitly set the Blocking property to true right before you...

posted @ giovedì 25 ottobre 2007 09:00 | Feedback (0) | Filed Under [ .NET ]

Mannaggia alle IList e List

Una cosa che mi manca tanto dal C++ è la STL. In C++ la libreria STL è ben organizzata, soprattutto i contenitori; in .NET invece c'è un po' di confusione e di entropia. Prendiamo ad esempio la IList<T> e la List<T>. La seconda non è solamente una implementazione concreta di IList<T> perché ha veramente tanti metodi in più, questo fa si che lavorare con una IList<T> o con la sua diretta implementazione concreta fornita da microsoft sia differente. Personalmente avrei fatto si che la List<T> implementasse solamente i metodi di IList<T> lasciando ad un'altra classe i metodi aggiuntivi, oppure ancora...

posted @ giovedì 18 ottobre 2007 08:50 | Feedback (3) | Filed Under [ .NET ]

Ancora sull’equals

In un precedente post si parla di eguaglianza, volevo fare una piccola precisazione perché in un commento ho detto una cosa un po' sbagliata e confusa rispondendo a Diego di getto, ho per questo cancellato il commento riprendendo in maniera più estesa e spero più chiara il discorso. Prendete il seguente snippet: Object TO3 = "test";Object TO4 = new StringBuilder().Append("test").ToString();Console.WriteLine("TO3 == TO4 is {0}", TO3 == TO4);Console.WriteLine("Object.Equals(TO3,TO4) is {0}", Object.Equals(TO3, TO4));Console.WriteLine("Object.ReferenceEquals(TO3, TO4) is {0}", Object.ReferenceEquals(TO3, TO4)); Stampa false, true, false; di questi, il terzo false è chiaro dato che il ReferenceEquals() compara per riferimento e le due stringhe sono chiaramente istanze differenti, ma per l'operatore == e per Object.Equals() avere un risultato differente può generalmente causare apprensione :D. Per capire il perché di questo comportamento...

posted @ martedì 16 ottobre 2007 15:32 | Feedback (6) | Filed Under [ .NET ]

Operatore == e eguaglianza, piccolo quesito

Girovagando per i forum di C# ho visto uno snippet sbagliato di un tizio che in sostanza voleva fare una generica routine per comparare due entity. Da qui faccio nascere una riflessione con due piccole domande: cosa stampa lo snippet seguente? String TS1 = "test";String TS2 = "test";Object TO1 = TS1;Object TO2 = TS2;Console.WriteLine("TS1 == TS2 is {0}", TS1 == TS2);Console.WriteLine("TO1 == TO2 is {0}", TO1 == TO2); Siamo sicuri al 100% oppure abbiamo bisogno di altre informazioni per affermare con certezza l'output? E il seguente cosa stampa? String TS3 = "test";String TS4 = new StringBuilder().Append("test").ToString();Object TO3 = TS3;Object TO4 = TS4;Console.WriteLine("TS3 == TS4 is {0}", TS3 == TS4);Console.WriteLine("TO3 == TO4 is {0}", TO3 == TO4); Alk.

posted @ lunedì 15 ottobre 2007 13:09 | Feedback (5) | Filed Under [ .NET ]

Rendere sicure le proprie querystring

Avete mai pensato a quanto insicuri possono essere i parametri passati in una querystring? Il chiamante può infatti modificarli a piacimento per cercare di trovare ad esempio una falla di sicurezza nel vostro applicativo. In questo piccolo articolo mostro una possibile soluzione, criptare la querystring in modo che sia impossibile per un attaccante modificarla. (Clicca per leggere l'intero post)

posted @ lunedì 8 ottobre 2007 09:26 | Feedback (5) | Filed Under [ .NET ]

Rendere sicure le proprie querystring

Avete mai pensato a quanto insicuri possono essere i parametri passati in una querystring? Il chiamante può infatti modificarli a piacimento per cercare di trovare ad esempio una falla di sicurezza nel vostro applicativo. In questo piccolo articolo mostro una possibile soluzione, criptare la querystring in modo che sia impossibile per un attaccante modificarla. (Clicca per leggere l'intero post)

posted @ lunedì 8 ottobre 2007 09:26 | Feedback (5) | Filed Under [ .NET ]

Accedere a risorse in maniera più sicura da asp.net

Dopo il post di Raf ho voluto scrivere un breve post in cui spiego brevemente come accedere a risorse del file system da asp.net in maniera un po più sicura del passare il nome del file nella querystring. Alk.

posted @ venerdì 5 ottobre 2007 14:49 | Feedback (1) | Filed Under [ .NET ]

Scusate ecco il titolo :S

In seguito al meraviglioso post di Raf vorrei segnalare un libricino. Il libro in questione si chiama Developing More-Secure Microsoft ASP.NET 2.0 Applications, lo ho quasi finito di leggere e non è assolutamente male, è molto pratico, non da troppa teoria di base, si legge in non troppo tempo, non sarà approfondito ma sicuramente evita di fare gli errori grossolani fatti nel sito di Veltroni. Penso che sia una lettura obbligatoria per chiunque sviluppi asp.net, perché se è vero che non possiamo tutti essere esperti di sicurezza è anche vero che una conoscenza minima è doverosa. Alkk.

posted @ giovedì 4 ottobre 2007 20:17 | Feedback (3) | Filed Under [ .NET ]

Quiz

Rovistando nell'hd mi è venuta fuori una vecchia discussione che avevo lanciato su GotDotNet riguardo un piccolo quizzetto, la ripropongo quì (Click per leggere)

posted @ mercoledì 26 settembre 2007 11:36 | Feedback (8) | Filed Under [ .NET ]

Metadata API

Se qualcuno magari si è chiesto come fare a investigare il contenuto di un assembly da puro codice unmanaged C++ le MetadataApi possono venire in aiuto. (Cliccare per leggere il post completo)

posted @ mercoledì 26 settembre 2007 10:33 | Feedback (0) | Filed Under [ .NET ]

VB e C# cugini ma non fratelli :D

Per chi venendo dal VB talvolta si trova interdetto per qualche comportamento del C# che può risultare non intuitivo ecco un piccolo esempio.

posted @ sabato 22 settembre 2007 10:12 | Feedback (8) | Filed Under [ .NET ]

Caricamento dinamico e serializzazione

Se lavorate con il caricamento dinamico degli assembly con LoadFrom, potreste trovare problemi nel gestire la serializzazione di oggetti contenuti negli assembly caricati dinamicamente. In questo post si spiega come risolvere il problema.

posted @ venerdì 7 settembre 2007 20:19 | Feedback (0) | Filed Under [ .NET ]

Considerazioni sulla fluent interface

Alcune considerazioni su come realizzare una semplice funzione di ricerca nel Dao che faccia uso di una fluent interface.

posted @ mercoledì 5 settembre 2007 08:29 | Feedback (0) | Filed Under [ .NET ]

Castle o Spring?

Una delle domande principale che mi faccio talvolta parlando di IoC e di AOP è se utilizzare castle o spring...Spring è una libreria in giro da più tempo e più matura, la documentazione inoltre è migliore di quella di Castle effettivamente, ma se dovessi scegliere sceglierei Castle, per una serie di motivi. Il primo motivo è le API pubbliche che si utilizzano, Castle.Windsor è fortemente tipizzato, ad esempio per recuperare un istanza si usa questo codice MyInterface instance = _container.Resolve<MyInterface>(); dove naturalmente _container è un istanza di WindsorContainer che possiamo ottenere da un file xml di configurazione o da una...

posted @ mercoledì 1 agosto 2007 17:42 | Feedback (2) | Filed Under [ .NET ]

Considerazioni.....

Una personale considerazione su un vecchio post di Janky che per mancanza di tempo avevo saltato.

posted @ venerdì 13 luglio 2007 10:42 | Feedback (0) | Filed Under [ .NET ]

Un comparatore generico

Un post su come creare un IComparer generico che lavora tramite reflection, la soluzione proposta cerca di massimizzare le prestazioni minimizzando l'uso delle funzioni di reflection.

posted @ lunedì 2 luglio 2007 16:57 | Feedback (2) | Filed Under [ .NET ]

Creare controlli dinamicamente in asp.net 2.0

La memoria gioca talvolta brutti scherzi, mi è spesso capitato di strutturare pagine asp.net con creazione dinamica di controlli e mi sono sempre attenuto ad una linea guida che è quella di creare i controlli nel metodo init, o in generale prima del momento in cui viene ripristinato il viewstate. Ricordo anche di avere letto questa linea guida da qualche fonte autorevole, e chiedendo ad un mio amico e collega, anche lui mi ha risposto "I controlli vanno creati nel page_init, prima che il viewstate venga ripristinato." Oggi mi trovo invece con il dilemma dell'uovo e della gallina, debbo creare dei...

posted @ mercoledì 16 maggio 2007 16:38 | Feedback (2) | Filed Under [ .NET ]

Effettuare caching dell'utente corrente in asp.net

Ieri stavo controllando una pagina scritta in asp.net, lo scopo era aggiungere la localizzazione di un dato. Visto che la pagina conteneva vari user control ed aveva troppa logica nel code behind, ho aperto il profiler di sql server per sniffare subito le stored che venivano chiamate, senza nemmeno dovere andare a cercare nel codice (e' si lo so....sono veramente lazy :D). Con mia sorpresa ho visto, oltre la stored cercata, anche 34 select nella tabella utenti di asp.net. Purtroppo l'autore della pagina aveva inserito una logica strana in una gridview gestendo l'evento RowDataBound e chiamando in esso la Membership.GetUser(),...

posted @ mercoledì 16 maggio 2007 10:10 | Feedback (0) | Filed Under [ .NET ]

Che bello Nhibernate

Lavorare con un orm come nhibernate semplifica di molto la vita :P

posted @ martedì 3 aprile 2007 19:15 | Feedback (2) | Filed Under [ .NET ]

Creare i propri snippet

In questo piccolo esempio si mostra come creare i propri snippet di codice per visual studio 2005

posted @ lunedì 2 aprile 2007 20:16 | Feedback (0) | Filed Under [ .NET ]

Rhino mocks ed InternalsVisibleTo

Sto da poco iniziando ad utilizazre Rhino, che trovo molto ben fatta come libreria di mock. Il primo problema che ho affrontato è il seguente. Durante il test mi piace utilizzare l'attributo InternalsVisibleTo per garantire al mio progetto di unit test di poter utilizzare tranquillamente i metodi marcati come internal della mia libreria sotto test. Il problema accade quando vado a generare mock con Rhino e voglio dei mock tipizzati su un tipo che è interno, infatti viene generata questa eccezione. failed: System.TypeLoadException : Type 'ProxyInterfaceSystemSystemObject_UserListImporter_InterfacesIMyInternalInterface_Rhino_Mocks_InterfacesIMockedObject_System_Runtime_SerializationISerializable' from assembly 'DynamicAssemblyProxyGen, Version=0.0.0.0, Culture=neutral, PublicKeyToken=f362209d9bee91d8' is attempting to implement an inaccessible interface. Il significato è chiaro,...

posted @ mercoledì 7 febbraio 2007 14:58 | Feedback (0) | Filed Under [ .NET ]

Spring.net windows services, prima impressione

Volete provare le funzionalità Windows.Services di spring.net ma non trovate il file Spring.Services.WindowsServices.Installer.exe citato sulla documentazione? Se vi interessa ecco cosa ho dovuto fare io per generarlo, spero che vi sia di aiuto.

posted @ mercoledì 31 gennaio 2007 09:27 | Feedback (2) | Filed Under [ .NET ]

Sessioni asp.NET che cadono

In un server abbiamo un po di problemi perchè talvolta sembra che la sessione utente si "perda". Questo genere di problemi accade spesso con antivirus o programmi che monitorano l'Hard Disk e quindi fanno credere a ASP.NET che i file sono cambiati richiedendo una nuova compilazione. Per limitare questo problema bisogna escludere dal check di tutti gli antivirus la cartella del sito, la cartella di cache di ASP.NET, ma girovagando in rete ho trovato che alla fine la soluzione migliore è creare un Web Deployment Project che permette di creare un nuovo tipo di progetti in grado di compilare tutto il codice...

posted @ giovedì 4 gennaio 2007 11:39 | Feedback (0) | Filed Under [ .NET ]

Migliorare le performance dei progetti web in VS2005

Sicuramente la maggior parte di voi lo conoscerà, ma in questo link ci sono suggerimenti preziosi su come migliorare i tempi di compilazione per i vostri progetti web. Penso che valga la pena riportarlo all'attenzione di tutti. Alk. powered by IMHO 1.3

posted @ giovedì 4 gennaio 2007 11:25 | Feedback (0) | Filed Under [ .NET ]

Utilizzare i trace e le asserzioni standard in NUNIT

Le buone pratiche di programmazione consigliano di inserire delle asserzioni nelle proprie classi, ma cosa succede quando poi testiamo il nostro codice con NUNIT? Il problema è che al fallimento di una asserzione standard di .NET la GUI del NUNIT mostra la classica messagebox di avvertimento e purtroppo l'esecuzione si ferma fino a che l'utente non interviene premendo un bottone. La soluzione a questo problema è disabilitare i trace listener standard nel web.config del progetto NUNIT.     <system.diagnostics>         <trace autoflush="false" indentsize="4">             <listeners>                 <clear/>             </listeners>         </trace>     </system.diagnostics> In questo modo al fallimento di una asserzione i vostri test non si interromperanno. Se volete comunque vedere le asserzioni fallite, è possibile utilizzare l'oggetto ConsoleTraceListener in...

posted @ lunedì 4 dicembre 2006 20:22 | Feedback (0) | Filed Under [ .NET ]

Connection leak e riempimento del pool di connessioni

In un sito che stavamo sviluppando improvvisamente in produzione inizia ad apparire questo errore Timeout expired. The timeout period elapsed prior to obtaining a connection from the poolQuesto errore viene generato quando ci si dimentica di chiudere le sessioni o di effettuare il dispose su un oggetto session o su uno degli oggetti ADO.NET che supporta l'interfaccia IDisposable. Questo problema si chiama connection leak perchè la connessione non viene mai tornata al pool di connessioni che piano piano si esaurisce.Come individuarloIl modo più rapido è utilizzare il perfmon.exe che ha al suo interno appositi contatori dedicati al monitoraggio, li trovate...

posted @ giovedì 16 novembre 2006 16:50 | Feedback (0) | Filed Under [ .NET ]

Powered by:
Powered By Subtext Powered By ASP.NET