C#
			
				
				
				
Segnalo quest'illuminante post del grande Balena:
Usare il string intern pool per scrivere codice 
più 
efficiente
IMHO tecnica assolutamente da adottare quando si manipolano grandi 
quantità di stringhe in memoria.
    powered by IMHO
				
						
					posted @ giovedì 29 settembre 2005 16:14 | 
				
			 
	
			
				
				
				
Segnalo questo controllo con licenza LGPL che consente di 
embeddare internet explorer senza doversi portare in giro la "pesante" 
mshtml.dll. Tra l'altro credo sia anche utilizzato nel progetto RSS Bandit         
          
powered by IMHO 1.2 with Emoticon Formatter
				
						
					posted @ giovedì 31 marzo 2005 14:46 | 
				
			 
	
			
				
				
				
Questa non la sapevo ed è stata una scoperta 
interessante e molto utile.
Internet Explorer supporta diversi protocolli, tra cui il protocollo res (Qui un articolo interessante del lontano gennaio 1999 
di Dino 
Esposito). Il protocollo res consente di estrarre 
una risorsa Win32 da una dll o da un eseguibile. Quindi, se per esempio abbiamo 
un'applicazione che ospita Internet Explorer (ad es. IMHO               
            
), possiamo dare in pasto al browser qualsiasi tipo di file senza 
renderlo facilmente fruibile...
				
						
					posted @ giovedì 31 marzo 2005 09:41 | 
				
			 
	
			
				
				
				
Problema: il nostro codice utilizza un assembly che non risiede nè nella directory dell'eseguibile nè in una sua sottodirectory (Infatti se di sottodirectory si trattasse sarebbe sufficiente utilizzare il metodo System.AppDomain.CurrentDomain.AppendPrivatePath). 
Soluzione: utilizzare un file di configurazione.Aggiungiamo un file di configurazione al nostro progetto. Per automatizzare la build aggiungiamo la seguente direttiva post-build alle proprietà di progetto: 
copy app.config "$(TargetPath).config"
(Chissà perchè vs non lo fa da se)Nel file config aggiungiamo quindi la sezione necessaria per linkare gli assembly: 
<?xml version="1.0" encoding="utf-8" ?><configuration>  <runtime>    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">      <dependentAssembly>        <assemblyIdentity name="AssemblyName"                           culture="neutral"                           publicKeyToken="ab9f21381c07889c" />        <codeBase version="1.0.0.0"                   href="FILE://c:/Programmi/myAssembly/AssemblyName.dll" />      </dependentAssembly>            </assemblyBinding>  </runtime>        </configuration>
Come si vede è necessario indicare anche la publicKeyToken. Per estrarla possiamo fare uso dell'utility sn con il parametro -T. Ok... questo è tutto nel caso in cui l'assembly...
				
						
					posted @ lunedì 21 marzo 2005 09:13 | 
				
			 
	
			
				
				
				
  Ieri mi sono scontrato con il problema di 
generare un file di trace di un'applicazione.
Il mio pensiero è subito volato verso le Enterprise Library, finalmente l'occasione di 
utilizzare questo gioiello della scienza e della tecnica. Durante il workshop 
del 2 dicembre (Architecture & Management) ero rimasto affascinato 
dagli Application Blocks, tanto (giustamente) decantati dal nostro Lorenzo. Dopo l'uscita della versione 1.0 delle EL non vedevo l'ora di avere 
l'occasione per buttarmici sopra. Ma con il senno di poi mi rendo conto che 
l'occasione non era questa.
Infatti, man mano che approfondivo 
l'argomento mi rendevo sempre più conto che le EL sono eccezionali, ma nel 
mio...
				
						
					posted @ venerdì 25 febbraio 2005 10:30 | 
				
			 
	
			
				
				
				
In caso di necessità di generare lo schema partendo da 
un'xml dato:
DataSet ds = new DataSet();ds.ReadXml(@"c:\XmlOrigine.xml");ds.WriteXmlSchema(@"c:\Schema.xsd");
Molto banale. Ovviamente utilizzando i soliti memory 
stream è possibile fare il tutto in memoria senza passare per il file system. 
powered by IMHO 1.2 with Emoticon Formatter
				
						
					posted @ venerdì 11 febbraio 2005 12:46 | 
				
			 
	
			
				
				
				
Per chi è abituato ad utilizzare le Api segnalo un interessante articolo che mappa le funzioni offerte dalle 
api alle corrispondenti classi/metodi presenti nel framework (Se 
esistono).
Fonte:Win32 
API
powered by IMHO 1.2 with Emoticon Formatter
				
						
					posted @ martedì 8 febbraio 2005 14:48 | 
				
			 
	
			
				
				
				
Come stampare una pagina html senza far apparire la finestra di selezione della stampante?
La soluzione che ho adottato comporta l'inclusione dell'activeX di Internet Explorer nel codice (Componente COM Microsoft Web Browser). Altre soluzioni fanno sempre apparire quella dannata printer dialog. 
Siccome l'html viene generato dinamicamente navigo sull'about:blank:
Object n = System.Reflection.Missing.Value;axWebBrowser1.Navigate("about:blank", ref n, ref n, ref n, ref n);
Sull'evento NavigateComplete2 vado ad iniettare l'html dentro l'oggetto:
private void axWebBrowser1_NavigateComplete2(object sender                    , AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e){    object[] psa = {this.Html}; // Variabile Stringa che contiene l'html    mshtml.IHTMLDocument2 hDoc2 = (mshtml.IHTMLDocument2)axWebBrowser1.Document;        hDoc2.clear(); // Pulisco la pagina    hDoc2.write(psa); // Scrivo il contenuto    hDoc2.close(); // Chiudo la pagina}
A questo punto chiamo il seguente metodo per stampare la pagina senza richiesta di selezione da parte dell'utente (stampante di default). Il terzo parametro della ExecWB serve per far si che il thread resti in attesa fino a completamento della stampa, in questo modo siamo certi che...
				
						
					posted @ giovedì 3 febbraio 2005 10:38 | 
				
			 
	
			
				
				
				
Una dura giornata di lavoro basato su ricerca (grande 
Google) e test a manetta ha portato i suoi frutti. 
La soluzione (come sempre) non era poi così difficile come sembrava. Mi ha 
portato sulla buona strada il post 
di un blog (Modificando l'esempio 
riportato si riesce ad ottenere un server com singleton che non sia un 
servizio). Probabilmente non sarà l'unica soluzione, e forse nemmeno la 
migliore... ma intanto una soluzione esiste!! 
Prossimamente seguirà un articolo sul tema (nonostante l'interesse per 
l'argomento non appaia particolarmente sentito... 40 Web Views e 4 commenti 
off-topic  alla 
mia precedente disperata richiesta di 
aiuto)
powered by IMHO...
				
						
					posted @ giovedì 20 gennaio 2005 20:14 | 
				
			 
	
			
				
				
				
Ok, cedo. 
Ho capito come creare un buon server com in C#, eventi compresi. Ma come faccio a fare in modo che il server com sia singleton?
Ogni minimo spiraglio di luce è gradito!! 
powered by IMHO 1.1 with Emoticon Formatter 
				
						
					posted @ mercoledì 19 gennaio 2005 19:48 | 
				
			 
	
	Full C# Archive