Passa ai contenuti principali

Post

Visualizzazione dei post da settembre, 2010

VB.NET: Recuperare i tipi argomenti di un oggetto istanza di un generico

In questo breve post vorrei mostrarvi come capire se un oggetto che avete sotto mano è un generico (o, per dirla meglio, è l’istanza di un generico), recuperare il generico di cui è istanza e i tipi degli argomenti tipo. Prendiamo, ad esempio la classe: Tuple ( Of String , Int32 , Boolean , Double ?) Questa è la definizione concreta di una classe generics, la Tuple(Of T1,T2,T3,T4) di cui gli argomenti tipo sono, rispettivamente: String, Int32, Boolean e Double? . Letta così sappiamo facilmente capire tutto ciò, ma come facciamo a fare altrettanto all’interno di un nostro software? Per fare questo ci vengono i aiuto alcuni metodi della classe Type. In particolare possiamo scrivere: Dim obj = New Tuple ( Of String , Int32 , Boolean , Double ?)( "" , 1, True , Nothing )   Dim isGeneric = obj.GetType().IsGenericType Dim genericType = obj.GetType().GetGenericTypeDefinition() Dim genericArgs = obj.GetType().GetGenericArguments   Conso...

Parte il Community Tour dedicato a Windows Phone 7, IE9, Windows Azure e Visual Studio

Vi segnalo il seguente post del blog di MASD Italia in cui sono riportate alcune date del prossimo Community Tour: Parte il Community Tour dedicato a Windows Phone 7, IE9, Windows Azure e Visual Studio Come potrete vedere qui a Roma è previsto il 12 Novembre 2010. Sarà organizzato da VB Tips &Tricks e DomusDotNet . L’agenda della tappa romana non è ancora nota ma rimanete connessi con il portale DomusDotNet perchè quanto prima arriverà. Se volete “acquistarci” a scatola chiusa, ecco il link per iscrivervi: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464064&Culture=it-IT   Technorati Tag: community tour 2010 , domusdotnet

VB.NET: Istanziare oggetti generics tramite Reflection

Istanziare oggetti utilizzando la reflection è quanto mai semplice. Supponiamo di avere una nostra classe Entita: Public Class Entita      Public Sub New ()        End Sub        Public Sub New ( ByVal id As Int32 )          Me .ID = id      End Sub        Public Property ID As Int32   End Class Normalmente un istanza di classe Entita si ottiene semplicemente: Dim miaEntita = New Entita () Se, invece, vogliamo eseguire la stessa operazione utilizzando reflection abbiamo: ' Recupero il tipo della classe da istanziare Dim tipoEntita = Type .GetType( "Entita" ) If tipoEntita IsNot Nothing Then      ' creo l'entità utilizzando il costruttore di default      Dim miaEntita = Activator .CreateInstance(...

Code Contracts – Generazione documentazione VB.NET completamente funzionante

La nuova versione dei Code Contracts (1.4.30903.0 rilasciata il 9 Settembre scorso risolve il problema segnalato nel mio precedente post . La versione precedente (1.4.30707.2) aveva lo spiacevole bug di non essere in grado di copiare correttamente il file xml di documentazione (generato nella cartella obj) all’interno della cartella di bin. Per questo motivo era necessario ricorrere ad uno script di post build per eseguire l’operazione. La nuova versione risolve il problema e, finalmente, anche gli sviluppatori VB.NET possono avere automaticamente la loro documentazione per i contratti definiti nelle loro classi. Riferimenti Microsoft Research - Code Contracts : http://research.microsoft.com/en-us/projects/contracts/ DevLabs - Code Contracts : http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx Code Contracts Forum : http://social.msdn.microsoft.com/Forums/en-US/codecontracts/threads Video su Channel9 : http://channel9.msdn.com/Search/?Term=code contracts ...

Windows Phone 7 & VB.NET

Oggi, durante l’evento dedicato allo sviluppo per Windows Phone 7 e al Marketplace per le applicazioni (a cui sono stato onorato di essere presente), è stato annunciata la disponibilità degli strumenti di sviluppo per Windows Phone dedicati a VB-isti. I tools sono scaricabili dal link http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a808a69d-6119-47b7-b858-262be5c49915&displaylang=en Sono in versione CTP, quindi hanno delle limitazioni e, in particolare: Non possono essere utilizzati per produrre applicazioni da mettere nel marketplace; Non c’è il supporto per Blend; Necessitano di una versione professional (almeno) di Visual Studio per poter essere utilizzati (il pacchetto di installazione non installa la express come per i cugini c-sharpisti); Non esiste la possibilità di sviluppare con XNA ma solo con Silverlight. Le limitazioni spariranno non appena verrà rilasciata la versione beta. Il fatto, però, che MS abbia rilasciato una CTP così rapidam...

IE9 – Pinned Site – Aggiungere un sito al menù Start

Un’altra funzionalità messa a disposiziojne da IE9 è qualle che ci da la possibilità di aggiungere un sito web all’interno del menù Start di Windows 7. Per fare questo è sufficiente utilizzare l’opzione di menù presente sotto Strumenti->File->Aggiungi al Menù Start: IE9 chiede conferma dell’operazione:   e, in caso, di risposta positiva inserisce il sito tra i programmi del menù start: E’ possibile eseguire questa operazione anche da codice Javascript utilizzando il metodo window.external.msAddSiteMode()   Ad esempio il seguente codice mette a disposizione un bottone per l’aggiunta del sito al menù start: < script type ="text/javascript">      function addWebApp() {          try {             window.external.msAddSiteMode();         }      ...

ALM Reloaded: il giorno dopo!!

Eccomi qui a tirare le somme del primo evento DomusDotNet : ALM Reloaded. A mio modo di vedere un evento riuscito e la conferma mi è arrivata quando tanti dei presenti si sono complimentati prima di lasciare la sede Microsoft di Roma. Qualcuno obbietterà che è facile fare risultato quando si schiera una squadra con tre pezzi da novanta come Lorenzo , Gian Maria e Matteo , e, io non solo rispondo che mi piace vincere facile, ma che una squadra forte va pure assemblata e messa in campo, quindi anche se gli speaker sono di assoluto livello l’idea di metterli assieme è stata decisamente buona. Dopo dieci anni di tentativi e un paio di community tragicamente naufragate, finalmente un evento (non ufficiale Microsoft) con un drop rate “normale”: 55 iscritti e 45 presenti rappresenta, a mio avviso, un risultato inaspettato!! Un grazie va , quindi, a chi è venuto all’evento, a Lorenzo che, nonostante fosse reduce da due lab su Windows Phone 7, non è voluto mancare (e ha tirato fuori da...

IE9 – Pinned Site

Una funzionalità sfiziosa (forse inutile ma sfiziosa) presente su IE9 è la possibilità di “pinnare” i nostri siti preferiti all’interno della Application Bar di Windows 7. Per fare questo è sufficiente draggare la scheda di IE9 in cui c’è il sito da pinnare al di sopra dell’application bar (tra le applicazioni “standard”): A questo punto il sito è raggiungibile direttamente cliccando sull’icona presente nell’application bar. La finestra di IE9 di un sito pinnato mostra la favicon dello stesso in alto a sinistra. che ci permette, in qualunque momento, di ritornare alla pagina “pinnata”.   Technorati Tag: IE9 , pinned web site

Terza puntata dello speciale Code Contracts su DomusDotNet

Oggi è stata pubblicata, sul portale DomusDotNet , la terza puntata dello speciale sui Code Contracts. Technorati Tag: code contracts , design by contract , domusdotnet

Laboratorio su Windows Phone 7 a Roma

Il giorno 16 Settembre ci sarà un laboratorio per lo sviluppo di applicazioni su Windows Phone 7 nella sede romana della Microsoft in Via Avignone 10 (zona EUR). L’agenda della giornata sarà: 10.30 – 12.30 sessioni e discussioni tecniche su gestione delle applicazioni, tombstoning, uso dei launcher e dei chooser, sensori, etc... 13.30 – 18.00 laboratori con a disposizione i prototipi di Windows Phone 7 e PC opportunamente configurati (Zune, Visual Studio, etc...) da usare per le prove Per maggiori info o per partecipare andate qui . A seguire ci sarà una cena tra amici per parlare del più e del meno e di Windows Phone 7!!! Technorati Tag: Windows Phone 7 , Lab

Pubblicata la seconda puntata di “Introduzione ai Code Contracts”

E’ stata pubblicata oggi la seconda di cinque puntate di uno speciale sui Code Contracts. In questa puntata cominciamo a vedere come implementare i contracct grazie alla classe Contracts e come gestirli all’interno di interfacce e classi astratte.   Technorati Tag: code contracts , design by contract , rise , domusdotnet

Introduzione ai Code Contracts (parte 1) su DomusDotNet

E’ stata pubblicata oggi la prima di cinque puntate di uno speciale sui Code Contracts. La prima puntata propone una breve introduzione al design by contract e ai tools disponibili per il mondo .NET.   Technorati Tag: code contracts , design by contract , rise , domusdotnet

ALMReloaded: finalmente agenda ed iscrizioni

Concluso il sondaggio per decidere le sessioni dell’evento, ecco che viene pubblicata l’agenda : 14:30 - 15:00 Registrazione 15:00 - 15:15 Keynote introduttiva: Lorenzo Barbieri (MSFT) 15:15 - 16:00 A lap around Development Methodologies: Scrum, SDL, MSF. Panoramica introduttiva sulle metodologie di sviluppo, e sui Process Template Microsoft attualmente rilasciati per Team Foundation Server. 16:00 - 16:45 Deep dive on Source Code Management. Branching Strategy questa sconosciuta. In questa sessione vedremo come gestire il codice sorgente con Team Foundation Server mediante diversi approcci di Source Code, Configuration e Release Management. 16:45 - 17:00 Pausa 17:00 - 17:45 Procedure di testing nell'ALM. Cosa è veramente il test e soprattuto, quale metodologie di test vanno adottate in relazione al processo scelto? Lo scopo di questa sessione è andare oltre il concetto di Unit Test e soprattutto comprendere quali metodologie di test a...

Applicazioni Windows Phone 7 e novità del Marketplace

Vi segnalo l’evento virtuale sullo sviluppo per Windows Phone 7 che si terrà il giorno 23 settembre dalle 14:30 alle 18:00. Applicazioni Windows Phone 7 e novità del Marketplace A parte l’indubbio interesse per questo nuova piattaforma, seguendo l’evento c’è la possibilità di vincere 4 Windows Phone 7!!! Io no me lo perderei.   Technorati Tag: windows phone 7 , evento virtuale