febbraio 2012 Blog Posts
Dopo lunga attesa, sono contento di poter annunciare che il mio nuovo libro Visual Studio LightSwitch Unleashed sarà finalmente disponibile a partire dal 29 febbraio 2012.
Mi porto avanti con questa comunicazione atteso che il 29 febbraio sarò a Redmond per l'MVP Global Summit e quindi avrò poco tempo per il blog
Il libro sarà disponibile solo in lingua inglese, poichè l'editore non fa anche traduzioni in altre lingue.
Facendo parte della collana Unleashed, non mi sono smentito e anche stavolta ho prodotto un bel tomo di circa 900 pagine. Ho trattato ogni possibile aspetto dello sviluppo LightSwitch, quanto meno dal...
Chiaramente in concomitanza con il rilascio della Consumer Preview di Windows 8, il futuro degli sviluppatori su tecnologie Microsoft comincerà a delinearsi il giorno 29 febbraio, data in cui verrà rilasciata la Beta di Visual Studio 11 e .NET Framework 4.5.
Ieri i maggiori rappresentanti della Dev Div a Redmond hanno scritto dei blog post in cui mostrano una serie di screen shot e descrivono alcune delle più innovative caratteristiche di questo prodotto, sebbene in beta.
Vi segnalo quindi:
il Developer Center di MSDN aggiornato
Blog post di S. Somasegar
Blog post di Jason Zander
...
Come sapete, il VirtualizingStackPanel è uno speciale contenitore che alcuni controlli WPF utilizzano, per default, per presentare liste di dati (es. ListBox, ListView, DataGrid).
Come infatti il nome lascia intendere, questo contenitore è in grado di virtualizzare la collection associata al controllo, di modo che la combinazione tra scorrimento e caricamento in memoria sia il più possibile "responsive" e ottimizzata per collection molto grandi.
In WPF 4.5 il VirtualizingStackPanel subisce due ulteriori miglioramenti:
nell'architettura: by design il controllo è ora più performante di prima
nella gestione: viene introdotta la proprietà ScrollUnit, che accetta due valori:...
Già nelle precedenti versioni di WPF esisteva una classe chiamata BindingOperations, che consente l'interazione con le espressioni di binding poste in essere attraverso istanze di System.Windows.Data.Binding e System.Windows.Data.MultiBinding.
In WPF 4.5 questa classe viene arricchita con alcune API che permettono di conoscere ulteriormente, a runtime, le espressioni di binding. In particolare è possibile recuperare:
l'oggetto destinatario del binding
la proprietà del citato oggetto, destinataria del binding
il tipo che costituisce la sorgente dati
la proprietà della sorgente dati che è collegata in binding
Ad esempio consideriamo il seguente codice, in cui...
WPF 4.5 introduce una significativa novità nella validazione dei dati, costituita dall'interfaccia INotifyDataErrorInfo. Questa proviene da Silverlight e la sua peculiarità è quella di poter validare i dati anche in modalità asincrona (es. nell'ambito di callback).
Tale interfaccia ha tre membri fondamentali da implementare:
la proprietà HasErrors, di tipo booleano, che restituisce vero o falso a seconda che per la proprietà specificata esistano o meno errori di validazione
il metodo GetErrors che restituisce una IEnumerable di errori di validazione che colpiscono la proprietà specificata
l'evento ErrorsChanged, che va scatenato quando la collezione...
Sebbene anche nelle versioni precedenti di WPF fosse possibile integrare elementi grafici Win32 all'interno di elementi WPF, in passato esisteva il problema del cosiddetto air space. Sostanzialmente, secondo la logica dell'air space, ogni elemento ha un suo spazio che non può prevaricare quello degli altri.
Tradotto in altri termini e semplificando al massimo la questione, elementi Win32 che venivano integrati con WPF fino alla v. 4.0 non potevano subire alcune azioni tipiche di WPF stessa, ad esempio gli oggetti Win32 integrati non potevano essere sottoposti all'utilizzo di oggetti Transform o di oggetti Brush.
Per capire come cambiano le cose in WPF 4.5,...
In WPF 4.5 viene aggiunto il supporto per il data-binding anche nei confronti di proprietà statiche (shared in VB) delle nostre classi.
Questa peculiarità è stata richiesta a gran voce da molti e Microsoft ha deciso di accoglierla nella nuova versione di WPF. L'utilizzo è abbastanza semplice e si può scegliere tra due approcci che ora andiamo ad esaminare. Consideriamo la seguente classe, che espone due proprietà statiche di pura fantasia:
Imports System.ComponentModel
Public Class StaticModel
Public Shared Event ValoreCondivisoChanged As EventHandler
Private Shared _valoreCondiviso As String
Public Shared Property ValoreCondiviso As String
Get
Return _valoreCondiviso
End Get
Set(value As String)
If value <> _valoreCondiviso Then
_valoreCondiviso = value
RaiseEvent ValoreCondivisoChanged(Nothing, EventArgs.Empty)
End If
End Set
End Property
Public Shared Event StaticPropertyChanged As EventHandler(Of PropertyChangedEventArgs)
Private Shared _velocità As Double
Public Shared Property Velocità As Double
Get
Return _velocità
End Get
Set(value As Double)
_velocità = value
NotifyStaticPropertyChanged("Velocità")
End Set
End Property
Private Shared Sub NotifyStaticPropertyChanged(propertyName As String)
RaiseEvent StaticPropertyChanged(Nothing, New PropertyChangedEventArgs(propertyName))
End Sub
End Class
Le implementazioni delle due proprietà sono accomunate dal fatto che entrambe devono scatenare un evento che farà sapere all'interfaccia grafica che i dati sono...
Come sapete, giovedì e venerdì u.s. si sono tenuti i Community Days 2012 a Milano, presso la nuova sede di Microsoft Italia a Peschiera Borromeo (MI).
Si tratta dell'evento community più importante dell'anno, poichè le community italiane vengono coinvolte sia a livello di speaker e sessioni, sia a livello di sinergie nel sostenere l'evento stesso.
VB T&T ha partecipato con me e Renato Marzaro come speaker; la mia sessione su WPF 4.5 ha riempito la sala (di questo ne sono chiaramente onorato) ed è stata una delle poche volte in cui, parlando di WPF, ho trovato un pubblico molto preparato in materia.
L'evento...
Uno dei difetti che ha contraddistinto WPF fino alla sua versione 4.0 riguarda il fatto che l'interfaccia grafica non riflette automaticamente azioni di ordinamento, filtro e raggruppamento eseguite nei confronti di una ICollectionView o, più genericamente, di una collezione.
Il problema è definitivamente risolto in WPF 4.5 grazie a una nuova caratteristica nota come Live Shaping.
Ho sempre la stessa classe Contact, più una ObservableCollection chiamata Contacts:
Imports System.ComponentModel
Public Class Contact
Implements System.ComponentModel.INotifyPropertyChanged
Public Property LastName As String
Public Property FirstName As String
Private _age As Integer
Public Property Age As Integer
Get
Return _age
End Get
Set(value As Integer)
_age = value
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Age"))
End Set
End Property
Public Event PropertyChanged(sender As Object, e As ComponentModel.PropertyChangedEventArgs) Implements ComponentModel.INotifyPropertyChanged.PropertyChanged
End Class
Public Class Contacts
Inherits System.Collections.ObjectModel.ObservableCollection(Of Contact)
End Class
A differenza del passato, abbiamo ora a disposizione un tipo chiamato ICollectionViewLiveShaping, che si usa come una ICollectionView ma che supporta anche delle proprietà booleane chiamate IsLiveSorting, IsLiveFiltering, IsLiveGrouping che, se impostate a...
Come da questo post di Lorenzo, MSDN Italia lancia un'iniziativa che permette alla comunità di sviluppatori di contribuire al miglioramento del glossario di Windows 8 in italiano, con particolare riferimento a quella che è la terminologia per sviluppatori.
Il forum è stato aperto il 9 febbraio e lo rimarrà fino al 22 c.m. Se avete avuto modo di dare un'occhiata alla prima developer preview di Windows 8 si tratta indubbiamente di una bella opportunità.
Alessandro
Con questo post vorrei iniziare una mini-serie dedicate alle novità di Windows Presentation Foundation 4.5, ossia quella che sarà la versione disponibile nella ventura release di .NET Framework. Per eseguire il codice chiaramente è necessario avere installato la Developer Preview di Visual Studio 11.
Vi ricordo che venerdì 17 p.v. terrò una sessione completa sulle novità della piattaforma ai Community Days 2012.
In questo post parliamo del Delay Binding, una feature che all'apparenza può avere scarsa utilità ma che in realtà in alcuni scenari può essere utile. Di cosa si tratta? Sostanzialmente, in un data-binding di tipo Two-Way, è possibile ritardare l'aggiornamento...
Di solito non scrivo di queste cose se non quando le notizie provengono da uno dei canali MSDN che di solito seguo, ma siccome c'è una notizia da un blog Microsoft, per me vale come ufficiale (al di là dei tanti rumours).
Nel suo blog su TechNet Italia, Feliciano Intini comunica, in questo post, che Windows 8 Consumer Preview (la Beta, insomma) sarà disponibile a partire dal 29 febbraio in concomitanza con il Mobile World Congress 2012 di Barcellona. Come Feliciano sottolinea, probabilmente questo rilascio fatto a una delle più importanti conferenze per device mobili ha un suo significato importante.
Io a...
E' online da qualche giorno un nuovo corso che ho avuto il piacere di preparare per CampusMVP, una piattaforma di e-learning realizzata da Krasis, una società spagnola gestita da grandi professionisti ed esperti tra cui alcuni amici Microsoft MVP.
Il corso è dedicato a Windows Presentation Foundation che, giusto per fugare un po' di dubbi, rimane la tecnologia principale per creare applicazioni Desktop anche nel futuro (Metro è un'altra cosa).
Lo scopo del corso è quello di preparare all'esame 70-511 per la certificazione chiamata Windows Application Development with Microsoft .NET Framework 4.
Poichè la distribuzione del corso è world-wide, lo stesso è...
E' di ieri la notizia della disponibilità di Kinect SDK per Windows. Il noto dispositivo precedentemente disponibile solo per XBox ora è anche disponibile, con una licenza commerciale (al prezzo suggerito di $ 249), per sviluppare applicazioni che permettano di interagire col sistema operativo del pc attraverso gesti.
Esiste un blog del Team di Kinect per Windows, sul quale potete trovare tutte le ultime novità e le informazioni essenziali per iniziare ad avvicinarsi a questa nuova frontiera di sviluppo, che secondo me avrà delle ottime prospettive soprattutto in ottica futura.
Alessandro
Ci siamo quasi! Tra circa due settimane avrà luogo l'evento community più importante dell'anno, ossia quello dei Community Days 2012! L'hashtag ufficiale su Twitter è #cdays12.
La nostra community avrà quest'anno l'onore di partecipare con 2 sessioni, una mia su WPF 4.5 e una di Renato Marzaro su Kinect. Approfitto quindi per ringraziare tutti gli iscritti, circa 700 , che sono il vero cuore di queste due giornate!
Oltre a noi, chiaramente, c'è una nutrita agenda di sessioni sulle più recenti novità tecnologiche Microsoft, quindi parliamo di Windows 8, Windows Phone, Windows Azure, ASP.NET MVC, ecc. ecc.
Un sincero ringraziamento anche agli...
Nel ricordarvi che il 16 e 17 febbraio vi aspettiamo ai Community Days 2012, approfitto per segnalarvi che ci sono ancora pochissimi posti disponibili per il lab su Windows Azure che verrà tenuto il venerdì.
Trattandosi di una ghiotta occasione per conoscere meglio la Cloud e la piattaforma di servizi che Microsoft ha creato per essa, direi che fareste bene ad iscrivervi
Tutte le info qui. Ricordatevi di installare l'SDK di Windows Azure sul vostro pc.
Alessandro