Passa ai contenuti principali

Post

Visualizzazione dei post con l'etichetta microsoft How do I videos

How Do I: Solve potential deadlock in the Windows Mobile GPS sample?

Il GPS sample c# che realizza un wrapper managed attorno al GPS intermediate driver del windows mobile contiene alcuni seri errori, due in particolare. un crash tipo null-reference quando si chiama la funzione GetSatellitesInView un deadlock in chiusura del GPS generata da un lock(this) nella classe base e l'utilizzo di un Invoke sincrono nell'update dell'interfaccia utente. In questo video il famoso Martin Styrus mostra una sua semplice soluzione ai due problemi. Senza sprecare mezz'ora per vedere questo video abbastanza noioso basta scaricare il codice allegato al video e cercare le modifiche commentate con il nome dell'autore. Il secondo punto, più compesso, è rimediato in maniera sommaria cambiando gli Invoke() che causavano i deadlock, sostituendoli con dei BeginInvoke(). Da microsoft ci sarebbe aspettato almeno una revisione del codice, con questa pezza abbiamo risolto un baco agendo sugli effetti. Bisogna usare BeginInvoke in tutte le notifiche che provengo...

COM wrapper for a Managed library

In rari casi ci si può trovare a dover esporre un assembly .Net verso un programma scritto in linguaggio unmanaged. Una delle possibili soluzioni è dotare l'assembly di un'interfaccia COM da poter utilizzare nell'applicativo unmanaged. Nel video Make Use of Assemblies Written in Any CLS Language della serie How Do I? videos di Microsoft si affronta un semplice esempio di programma WinForm scritto in C# il cui assembly compilato e registrato come oggetto COM viene poi usato da un programma in Visual C++. I passi fondamentali: Lato C# bisogna importare System.Runtime.InteropService. Impostare gli attributi di classe ComVisible(true) e ClassInterface(ClassInterfaceType. AutoDual ). Una volta compilato l'assembly bisogna far girare l'utility .net regasm per creare la type library. regasm / tlb :PhysServer2. tlb PhysServer2.dll . Poi copiare l'assembly nella stessa directory dell'eseguibile unmanaged che userà la libreria.

ASP.net Ajax

Prendo l'occasione di alcuni "how do I? videos" per dare una chance ad ASP.net Ajax . Get Started with ASP.NET AJAX: Con ASP.net 3.5 e VS2008 non è necessario installare nient'altro. Un UpdatePanel è il contenitore che permette agli elementi contenuti di aggiornarsi senza ricaricare tutta la pagina. L'updatePanel ha una sottosezione ContentTemplate , dove vanno a finire tutti i controlli visuali trascinati nell'UpdatePanel. Un pulsante inserito nell'UpdatePanel provoca, al click, l'aggornamento del solo pannello. Per agganciare l'UpdatePanel ad eventi di controlli esterni al pannello si usa un AsyncPostBackTrigger (specificando nome del controllo ed evento da intercettare). Va inserito nella sottosezione Trigger di UpdatePanel. Get Started with the ASP.NET AJAX Control Toolkit Il kit è un'insieme di controlli visuali ajax-enabled, disponibile come sorgente e come binario precompilato su CodePlex. Il video è abbastanza inutile se si sa già come...