Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

martedì 24 luglio 2007

Using C# in C++ project with Visual Studio 2005

Io ho sempre fatto il contrario, ovvero ho sempre richiamato da C# le funzioni di una libreria scritta in C++ (tipicamente utilizzando il Platform Invoke), ma questo post spiega come è possibile realizzare il processo inverso.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0) | Filed Under [ C# ]

Le limitazioni del .NET Compact Framework

Devo ammettere che è frustrante scoprire ogni giorno nuove limitazioni del .NET Compact Framework. Capisco bene che il .NET Compact Framework può comprendere solo una minima parte delle classi e delle feature della versione Full, per una lunga serie di motivi che tutti conosciamo bene. Ma nonostante questo, quando riesco a fare una cosa con il .NET Framework e, cercando di applicarla alla versione Compact, mi accorgo che non è supportata, per un istante rimango interdetto... Di solito la mia esclamazione è la seguente: "Eh no, non è supportato neanche questo" Tongue out.

In ordine di tempo, l'ultima mia scoperta riguarda l'Asynchronous Programming Model. L'ho sempre usato senza problemi con il .NET Framework; stamattina mi serviva applicare lo stesso pattern ad un progetto per Compact Framework, ma con mio dispiacere quando ho provato ad eseguire il codice ho ottenuto una bella NotSupportedException in corrispondenza del metodo BeginInvoke. Una rapida ricerca su Google e ho trovato questa spiegazione: AsyncDelegates are supported only in the few scenarios in the current version of CF: Sockets and Async. calls to WebServices. Infatti, fino ad oggi avevo utilizzato l'APM solo per i Web Service, quindi non avevo mai notato questa limitazione!

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0) | Filed Under [ .NET Compact Framework ]

Dietro le quinte di Microsoft Surface

A partire da questo indirizzo sono disponibili due video e un esauriente articolo che mostrano cosa c'è "sotto la superficie" di Microsoft Surface. Che dire, personalmente questa tecnologia mi sembra molto promettente...

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0) | Filed Under [ Tutto & Oltre :-) ]

Windows Vista e la ricerca in linguaggio naturale

Questa mi era sfuggita... Sto parlando della funzione di ricerca in linguaggio naturale inclusa in Windows Vista. L'ho scoperta per caso leggendo questo post. Incuriosito, l'ho voluta provare subito: non si devono aspettare risultati miracolosi, comunque spesso si riescono ad ottenere le informazioni desiderate.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0) | Filed Under [ Windows Related ]

Il LoaderLock di Visual Studio 2005

Tra le tante feature di Visual Studio 2005 dedicate al debug, ce n'è una che prende il nome di LoaderLock managed debugging assistant (MDA):

The LoaderLock managed debugging assistant (MDA) detects attempts to execute managed code on a thread that holds the Microsoft Windows operating system loader lock. Any such execution is illegal because it can lead to deadlocks and to use of DLLs before they have been initialized by the operating system's loader.

Se il LoaderLock individua una situazione come quella descritta, interrompe il programma lanciando un'eccezione con questo messaggio:

Attempting managed execution inside OS Loader lock. Do not attempt to run managed code inside a DllMain or image initialization function since doing so can cause the application to hang.

In alcuni casi, tuttavia, esso si rivela troppo "smart" e segnala il problema anche quando, in realtà, non dovrebbe. Ho letto di questo inconveniente su diversi forum e io stesso ne sono stato vittima, tentando di creare con Visual C++ una DLL, che a sua volta richiamava una libreria di terze parti, e utilizzando poi il Platform Invoke per accedere alle sue funzionalità da un programma C#.

In una situazione del genere, si può provare a disabilitare il controllo effettuato dal LoaderLock: selezionare il comando Exceptions dal menu Debug, quindi espandere il ramo Managed Debug Assistants e disabilitare il segno di spunta nella colonna Throw in corrispondenza della voce LoaderLock. Così facendo, se effettivamente il LoaderLock aveva segnalato un problema reale, tentando di richiamare la funzione si otterrà il blocco dell'applicazione; in caso contrario (come è capitato a me), il vostro progetto tornerà a funzionare correttamente.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0) | Filed Under [ C# VB .NET ]

Feedback sul Class Designer di Visual Studio

The Class Designer team is now looking for feedback on the product. This is your chance to help us identify key areas we should consider in future versions of the Class Designer.

Con queste parole il team di Visual C++ chiede agli utenti di ripondere alle domande di una breve indagine sul Class Designer di Visual Studio, allo scopo di migliorarne le versioni future. Per accedere al questionario, fate clic qui.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Powered by:
Powered By Subtext Powered By ASP.NET