Posts
163
Comments
179
Trackbacks
5
settembre 2007 Blog Posts
Debug di applicazioni WindowsForms e LoaderLock

Stamattina sviluppando e debuggando una nuova applicazione Windows Forms è cominciato ad apparire uno strano errore nel mio Visual Studio 2005:

Errore LoaderLock

La cosa strana è che da venerdì è cambiato poco o nulla e in generale non mi si è mai presentato questo errore in nessuna delle altre applicazioni.
Affidandomi come sempre a Google, ho fatto una veloce ricerca fino a scoprire questo post che individua il subdolo colpevole: iTunes!!!
Effettivamente stamattina ho collegato il mio iPod Shuffle lasciando aperto il "malefico" programma.

Technorati Tags: ,


posted @ domenica 30 settembre 2007 23:52 | Feedback (6)
Consumare e testare web service con SSL

Spesso e volentieri quando si sviluppano e si distribuiscono web service, si utilizza SSL per incrementare e migliorare la sicurezza.
Se si utilizza un certificato rilasciato da una certification authority (come si dovrebbe sempre fare!) non ci sono particolari problemi. Però in ambiente di test spesso e volentieri si utilizza un certificato self-signed che può essere facilmente creato attraverso il tool Makecert o attraverso gli IIS 6.0 Resource Kit Tools.

In quest'ultimo caso, quando si va a consumare un web service da un'applicazione .NET viene restituita un'eccezione che indica che il certificato utilizzato non è valido. Come fare? Lorenzo ha già indicato la via attraverso un suo tip.

Con il Framework 2.0 il metodo descritto è considerato obsoleto (anche se funziona) e viene consigliato di utilizzare il delegate ServicePointManager.ServerCertificateValidationCallback.
Dal punto di vista pratico cambia molto poco (non è più necessario creare una nuova classe):

' Prima di creare il proxy, assegno il callback per la verifica del certificato ServicePointManager.ServerCertificateValidationCallback = _ new RemoteCertificateValidationCallback(AddressOf ValidateCertificate) ' Creo l'oggetto Dim service As New MyWebService.Service Dim s As String ' Richiamo la funzione del web service s = service.HelloWorld service.Dispose()

La funzione ValidateCertificate ha il compito di effettuare la procedura di validazione: 

Private Function ValidateCertificate(ByVal sender As Object, _ ByVal certificate As X509Certificate, _ ByVal chain As X509Chain, _ ByVal sslPolicyErrors As SslPolicyErrors) As Boolean ' Verifico l'issuer If certificate.Issuer <> "MyIssuer" Then Return False ' Certificato valido Return True

Nell'esempio la funzione di verifica fa ben poco. Controlla solo che l'issuer del certificato sia quello atteso.
Chiaramente è possibile (e vivamente consigliato) implementare logiche di verifica più complesse, prima fra tutte la verifica della scadenza del certificato.

Technorati Tags: , ,


posted @ giovedì 27 settembre 2007 21:55 | Feedback (0)
Internet Information Services (IIS) 7.0 Manager

Forse qualcun'altro l'aveva segnalato, ma evidentemente ho perso l'annuncio. In ogni caso segnalo che è disponibile il download del tool di amministrazione remota di IIS 7.

Scritto interamente in managed code (come sottolinea ScottGu) è disponibile sia per piattaforme x86 sia per piattaforme x64.

Queste le caratteristiche principali:

  • Remotely manage IIS 7.0 RC0 from Windows Vista, Windows XP and Windows Server 2003.
  • Connect directly to a Server or to an individual site or even application.
  • View your remote site/application content directly from within the tool.
  • Installs even when you don’t have IIS 7.0 on the local machine.
  • Allows multiple simultaneous connections to servers, sites and applications.

Technorati Tags:


posted @ giovedì 27 settembre 2007 19:42 | Feedback (0)
Popup MSN-Like e "skinnabile"

Ero alla ricerca di un esempietto che mi aiutasse a visualizzare un popup MSN-LIke. Mi sono imbattuto in questo progetto su CodeProject che fa proprio al caso mio.

Il sorgente è un po' datato (risale al 2002), ma si converte (ed eventualmente estende) senza errori anche su Visual Studio 2005. Rispetto ad altri esempi simili che ho trovato in giro ha la possibilità di "skinnare" il popup da visualizzare con delle semplici bitmap.

Interessante la possibilità di usare sfondi con zone trasparenti (nell'esempio sono incluse tre skin che mostrano come fare).

posted @ giovedì 27 settembre 2007 03:16 | Feedback (0)
Tool per la formattazione di codice Javascript

Segnalo un simpatico tool online per la formattazione di codice javascript: http://elfz.laacz.lv/beautify/


Fonte: http://weblogs.asp.net/dwahlin/archive/2007/09/26/javascript-beautifier-tool.aspx

posted @ mercoledì 26 settembre 2007 19:50 | Feedback (1)
Applicazioni auto-aggiornanti senza ClickOnce

Se avete la necessità di introdurre un meccanismo di auto-aggiornamento in un'applicazione Windows Forms e per uno o più motivi, non volete utilizzare ClickOnce, questo articolo su CodeProject può essere un ottimo punto di partenza.

Sto apportando qualche modifica qua e la, ma per il momento mi sembra che funzioni molto bene.

posted @ mercoledì 26 settembre 2007 02:29 | Feedback (0)
Gios Word .NET, fix per il colore di background delle tabelle

Tempo fa avevo segnalato in un mio post la libreria Gios Word .NET che consente di creare file RTF senza dover installare niente sul server.
Iniziando a fare le prime prove ho notato che quando si imposta il colore di sfondo in una cella di una tabella non si ha nessun risultato.
Sbirciando tra i commenti del progetto è possibile trovare quello con la soluzione.
Come indicato occorre fare due modifiche al codice originale

1) Classe WordCell

internal int backgroundColorIndex; internal Color BackgroundColor { get { return this.bgColor; } set { this.hasBackgroundColor=true; this.bgColor=value; //jl-fix this.backgroundColorIndex=this.WordDocument.AddColorAndGetID(value); } }

2) Classe WordTable funzione RenderToStream:

for (int c=0;c<this.columns;c++) { WordCell rc=Cell(r,c); if (!rc.isColumnSpanned) { Utility.Send("\\celld",ms); Utility.Send(rc.BorderString,ms); if (rc.HasPadding) Utility.Send(rc.PaddingString,ms); Utility.Send(Utility.EncodeCellAlignV(rc.contentAlignment),ms); //jl-fix: if (rc.hasBackgroundColor) Utility.Send("\\clcbpat"+rc.backgroundColorIndex.ToString(),ms); if (rc.isRowSpanner) Utility.Send("\\clvmgf",ms); if (rc.isRowSpanned) Utility.Send("\\clvmrg",ms); Utility.Send("\\cellx"+cw[c+rc.colSpan-1],ms); } }
 
posted @ venerdì 21 settembre 2007 02:58 | Feedback (0)
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS