.NET

C++ Express: compatibilità, terminazioni di linea e codifica Unicode

Nelle ultime settimane mi sono imbattuto in tre features di Visual C++ Express. Sono caratteristiche poco "appariscenti", sulle quali sarebbe sprecato fare marketing, ma che si sono rivelate particolarmente utili. 1. E' possibile aprire vecchi progetti per Visual C++ 6. La procedura di conversione è pressochè indolore. Naturalmente, a causa degli allineamenti agli standard C++, è possibile che il nuovo compilatore generi messaggi di avviso, indicando che vengono usati costrutti sintattici deprecati. 2. Durante l'apertura di un file, l'editor rileva automaticamente se la convenzione di terminazione linea è consistente e, in caso contrario, propone un allineamento con lo standard per Windows, Unix o Macintosh. 3. Per impostazione definita i file...

posted @ giovedì 24 novembre 2005 16:33 | Feedback (0)

NUnit 2.2.3

E' stato rilasciato NUnit 2.2.3, una nuova "iteration release", che include significative correzioni di bugs e nuove asserzioni. E' possibile leggere le release notes e scaricarlo a questo indirizzo. Sebbene sia stato compilato con Visual Studio 2003, funziona sul runtime di .NET 2.0. In realtà, anche con le versioni precedenti di NUnit, previa modifica del file di configurazione, non ho riscontrato problemi. La buona notizia è che, passando una semplice opzione a linea di comando, è ora possibile eseguire NUnit su una qualunque versione del framework disponibile sulla macchina. Altrimenti, per testare assembly creati con Visual Studio 2005, è sufficiente decommentare la sezione "startup" del file di configurazione "nunit-gui.exe.config". Happy testing! :)

posted @ sabato 19 novembre 2005 16:57 | Feedback (0)

Cleanup deterministico e finalizers in C++/CLI

Vediamo il seguente codice. Viene definito un reference type (typeid = Person), con un metodo publico, ReadMessage. Al suo interno viene utilizzato in tre modi diversi un oggetto di tipo System::IO::StreamReader, classe che implementa System::IDisposable. public ref class Person{public:    Person (String^ name, String^ surname)    {    }    void ReadMessage (String^ path)    {        Stream^ stream = (Person::typeid)->Assembly->GetManifestResourceStream (path);#ifdef MANUAL_DETERMINISTIC_CLEANUP        // I manually call the distructor.        StreamReader^ reader = gcnew StreamReader (stream);        Console::WriteLine (reader->ReadLine ());        delete reader;#endif#ifdef AUTOMATIC_CLEANUP        // Garabace collector will call the dispose methods before finalizing the reader.        StreamReader^ reader = gcnew StreamReader (stream);        Console::WriteLine (reader->ReadLine ());#endif#ifdef AUTOMATIC_DETERMINISTIC_CLEANUP        // The compiler automatic inserts a method call to dispose.        // The reference type instance has value semantic in this context.        StreamReader reader (stream);        Console::WriteLine (reader.ReadLine ());#endif    }}; Decompiliamo con Reflector e vediamo come apparirebbe, nei diversi casi, il metodo ReadMessage se fosse scritto in C#. Nel primo caso reader è stato dichiarato come un handle, al quale abbiamo è stato assegnato un oggetto allocato sul managed heap tramite l'operatore gcnew . Dopo essere stato utilizzato, l'oggetto viene "distrutto" con l'operatore delete. Tale operatore viene sostanzialmente ...

posted @ venerdì 6 maggio 2005 02:05 | Feedback (0)

Membership Provider for Firebird

Ispirato e istruito dalla sessione di Andrea, spero di poter iniziare questa settimana questo piccolo progetto. Si tratta innanzitutto di creare uno script per la creazione del database e poi codare il membership provider. Appena lo comincio apro un nuovo workspace su GotDotNet!

posted @ lunedì 2 maggio 2005 12:33 | Feedback (0)

Enterprise Library for Firebird: moved

Ho deciso di spostare il progetto su GotDotNet. Pubblicherò lì news (con feeds RSS!), nuove releases, etc.. Ci sono anche un forum e un bug tracker, che naturalmente potete utilizzare. Ho già pubblicato le due "vecchie" releases (0.6 e 0.7.0) e i sorgenti sfruttando il sistema di source control (integrato tramite plugin in Visual Studio!). Ora vorrei creare un installer (in bundle con l'Enterprise Library e il provider ADO.NET per Firebird). Devo soltanto trovare il tempo di leggere le licenze e realizzarlo. Putroppo non sono ancora riuscito a fare una pagina di redirect sul vecchio sito perchè ho dimenticato la password... troverò un sistema per farlo (spero!). Nome...

posted @ lunedì 2 maggio 2005 12:30 | Feedback (4)

n-mila versioni di Visual Studio

Condividendo le opinioni di Andrea in merito all'inclusione nei soli prodotti Team System degli strumenti per lo unit testing, volevo ora portare il ragionamento un po' oltre. Per quale motivo tutte queste versioni di Visual Studio? Probabilmente ci avrete già pensato: perchè non rilasciare una piattaforma, che potremmo chiamare "Visual Studio Foundation", e poi tutti i plugin del caso, acquistabili separatamente e in ogni momento? Insomma un modello àla Eclipse o Netbeans... Immaginate di avvicinarvi alla programmazione in ambiente Windows. Ad oggi, probabilmente su consiglio di qualche amico, compreresti uno dei prodotti express, diciamo C# Express. Se non avete mai fatto unit...

posted @ mercoledì 27 aprile 2005 10:31 | Feedback (4)

Visual C++ 2005 and *.vcproj

Se state usando Visual C++ 2005, vi sarete probabilmente accorti che l'ambiente non è ancora del tutto completo. Esistono alcune limitazioni nella gestione del progetto (file di risorsa, file di soluzione, etc.). Non so se queste rimarranno limitazioni del prodotto Express definitivo, ad ogni modo potete ovviare a questi problemi scrivendo manualmente il file di progetto e vcbuild.exe per compilarlo. Qui potete trovate lo schema XML: http://msdn2.microsoft.com/library/y4sy8216(en-us,vs.80).aspx Il designer è decisamente migliorato, tuttavia, a mio parere, genera un pessimo codice. Sarebbe stato importante, per lo meno, che separasse le implementazioni dei metodi (in particolare, del costruttore e dei delegati che gestiscono gli eventi) dalla...

posted @ mercoledì 20 aprile 2005 12:37 | Feedback (3)

"What is Indigo?"

Un'ottima introduzione (e dimostrazione) da parte di uno dei software architect che lo hanno ideato: http://channel9.msdn.com/ShowPost.aspx?PostID=56397 42 minuti circa

posted @ lunedì 11 aprile 2005 16:25 | Feedback (0)

NUnit... MBUnit o CSUnit?

Uso NUnit con discreta soddisfazione, ma mi chiedevo se qualcuno di voi abbia provato i due progetti open-source "concorrenti". Non ho molto tempo attualmente per provarli, qualcuno che li ha già usati sa darmi un parere?

posted @ domenica 10 aprile 2005 00:10 | Feedback (3)

Enterprise Library for Firebird 0.7.0

Ho effettuato qualche piccola modifica al pacchetto. Grazie ad Alessandro Petrelli per le sue correzioni sullo script sql per la creazione del database Northwind. Dal changelog: 5th April 2005 - version 0.7.0 released  * License changed into LGPL  * Cleaned up "bin" and "obj" directories  from some files which were used during the initial development process  * Minor changes to "NorthwindForFirebird.sql" (thanks to Alessandro Petrelli)  * Minor changes to "Readme.txt"  * Added "Changelog.txt"  * Version changed ...

posted @ martedì 5 aprile 2005 22:49 | Feedback (0)

Full .NET Archive