marzo 2008 Blog Posts

Binding to a View using Linq To SQL

Un post nel newsgroup di C# citava l'impossibilità di aggiornare dei dati recuperati da una vista mediante LinqToSQL. L'affermazione è corretta in quanto il designer by default crea delle classi alle quali manca l'informazione relativa alla primary key, infatti basta aggiungerla è avere una view aggiornabile. L'unica accortezza è quella di definire la primary-key in una classe parziale separata e cancellare dal designer la colonna che funge da PK altrimenti al primo "tocco" di designer tutto lo sforzo verrà vanificato. Technorati Tags: LINQ To SQL,Updatable View

posted @ domenica 30 marzo 2008 13:28 | Feedback (0)

PresentationTraceSources.TraceLevel e Databinding

Capire perchè un binding non funziona come dovrebbe in WPF non è molto semplice, immaginiamo questa semplice situazione: XAML <Window x:Class="WPF_Databind.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <Grid> <TextBox Text="{Binding Path=CustomerName}" Height="23" Margin="87,65,71,0" Name="textBox1" VerticalAlignment="Top" /> </Grid> </Window> Codice namespace WPF_Databind { public partial class Window1 : Window ...

posted @ venerdì 28 marzo 2008 12:28 | Feedback (0)

Altro che Obfuscator...

La cosa più divertente è che questo codice compila... (Dall' International Obfuscated C Code Contest) #include <X11/Xlib.h> #include <unistd.h> typedef long O; typedef struct { O b,f,u,s,c,a,t,e,d; } C; Display *d; Window w; GC g; XEvent e; char Q[] = "Level %d Score %d", m[222]; #define N(r) (random()%(r)) #define U I[n++]=L[n]=l; n%=222 #define K c=-l.u; l=I[i]; l.t=0; c+=l.u #define E l.e--&&!--L[l.e].d&&(L[l.e].t=3) #define M(a,e,i,o) a[0]=e,(a[1]=i)&&XFillPolygon(d,w,g,(void*)a,o,1,1) #define F return #define R while( #define Y if(l.t ...

posted @ giovedì 27 marzo 2008 22:45 | Feedback (4)

Silverlight style browser

Attraverso Josh Smith vi segnalo questa piccola, ma utilissima utility, che consente di sfogliare gli stili dei controlli presenti in Silverlight 2.0. Vista l'architettura degli stili in Silverlight 2.0  (diversa rispetto a WPF) e la mancanza della feature "Create a Style Copy" in Blend 2.5 credo sia un ottimo tool per capire meglio come funzionano le cose "under the hood" Technorati Tags: Silverlight 2.0,Style browser

posted @ mercoledì 26 marzo 2008 00:00 | Feedback (0)

Silverlight 2.0: Get control's code

Spettacolare! A questo indirizzo è disponibile tutto il codice sorgente dei controlli Silverlight 2.0 e relativi Unit tests, questo post di Shawn Burke descrive nel dettaglio quanto disponibile. Più "open" di cosi... Technorati Tags: Silverlight 2.0

posted @ martedì 18 marzo 2008 22:58 | Feedback (0)

Silverlight: Occupare tutta la client-area del browser

Quando si crea un nuovo progetto Silverlight 2.0 in Visual Studio 2008 viene creato uno Usercontrol con la dimensione 400 x 300. <UserControl x:Class="TestSL.Page" xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> col risultato che il contenuto SilverLight non occupa tutta la client area del browser. Le possibili soluzioni sono: Eliminare la definizione di Width e Height col risultato che il designer di Visual Studio 2008 va in crisi. Sostituire Width e Height con MinWidth e MinHeight col problema evidente quando la dimensione...

posted @ martedì 18 marzo 2008 00:15 | Feedback (0)

Application.GetResourceStream in Silverlight 2.0

Partendo da questo post di Jeff Prosise ho perso un pò di tempo per capire perchè non funzionasse e alla fine l'unica soluzione che ho trovato è iniettare una nuova immagine nel visualtree (ma non escludo problemi alla mia macchina). Mentre facevo qualche test ho notato un piccolo bug nella Beta1 relativo a Application.GetManifestStream(); Questo codice funziona correttamente in un applicazione WPF Uri uri = new Uri("giulia3.jpg", UriKind.Relative); StreamResourceInfo sri= Application.GetResourceStream(uri); mentre in un applicazione Silverlight 2.0 il metodo GetResourceStream ritorna null, al momento l'unica soluzione è quella di usare il...

posted @ domenica 16 marzo 2008 12:45 | Feedback (0)

WPF FluidKit

Su Codeplex è presente una libreria FluidKit per WPF che offre un interessante suite di controlli: ImageButton DragDropManager GlassWindow BalloonDecorator ItemSkimmingPanel + SkimmingContextAdorner PennerDoubleAnimation ElementFlow ( New ) Tra questi quello più spettacolare è sicuramente ElementFlow che permette di visualizzare il contenuto di un ItemsControl in diverse modalità Carousel Like.   La libreria è distribuita come codice sorgente e dovete compilarla sulla vostra...

posted @ domenica 16 marzo 2008 11:05 | Feedback (0)

Microsoft.VisualStudio.Zip

Dal blog di Bill McCarty apprendo l'esistenza di questa dll che permette di zippare/unzippare files in modo elementare. Affinchè si possa referenziare da VisualStudio è necessario disabilitare il viewer delle assembly presenti nella GAC aggiungendo questa voce nel registry: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Fusion] "DisableCacheViewer"=dword:00000001 Fatto questo referenziate la dll presente in C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Zip ( Zip.9.0 se avete VS2008) e usate le classi ZipFileCompressor/ZipFileDecompressor. Esempio: string[] files = Directory.GetFiles(@"c:\foo").Where(f=>f.EndsWith("jpg")).Select(f => new DirectoryInfo(f).Name).ToArray(); ...

posted @ venerdì 14 marzo 2008 09:05 | Feedback (6)

WPF vs Silverlight 2.0: Attenzione ai routed events...

Spulciando la documentazione di Silverlight 2.0 ho notato una diversa gestione dei routed events rispetto a WPF che in alcuni casi può modificare il comportamento finale di un applicazione. Partiamo da questo XAML scritto per WPF: <Window x:Class="WPF_RoutedEvents.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="WPF routed events" Height="288" Width="473"> <Grid MouseLeftButtonDown="Grid_MouseDown"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" MouseLeftButtonDown="StackPanel_MouseDown"> <Image HorizontalAlignment="Center" Source="BMP.png" Height="75" /> <Image HorizontalAlignment="Center" Source="JPG.png" Height="75"...

posted @ lunedì 10 marzo 2008 20:39 | Feedback (0)

Silverlight 2.0 on Webhost4Life

Per quelli di voi che hanno Webhost4Life come servizio di hosting e vogliono pubblicare la propria applicazione Silverlight 2.0, le operazioni per configurare il server sono: Attivare, ovviamente, il supporto a .NET per la directory che ospita il progetto (Io ho impostato il supporto a 3.0/3.5) Aggiungere al proprio sito il supporto all'estensione MIME xap nel pannello di controllo usando: MIME Type: application/x-silverlight-app Estensione: .xap Enjoy Silverlight 2.0 programming! Technorati Tags: Silverlight 2.0,Webhost4Life

posted @ lunedì 10 marzo 2008 08:53 | Feedback (1)

WPF Adorners

Domenica mattina, giornata uggiosa..., quasi quasi mi faccio un Adorner. L'idea è quella di realizzare una demo che mostri come aggiungere delle informazioni di selezione (tipo designer) attorno al controllo che ha il focus e l'utilizzare un Adorner è sicuramente la soluzione migliore in quanto è un elemento associato a un UIElement che può renderizzare del contenuto in un layer che sta "sopra" lo UIElement associato, di fatto arricchendolo. Step 1: Create l'adorner ereditando dalla classe Adorner class MyAdorner:Adorner { /// <summary> ...

posted @ domenica 9 marzo 2008 12:13 | Feedback (0)

Expression Blend 2.5

Eccolo qui. A questo punto mi chiedo: Com'è possibile avere una versione 2.5 se la versione 2.0 non è ancora ufficialmente uscita e, sopratutto, chi comprerà la 2.0 sapendo che non supporta Silverlight 2.0 ed è già disponibile una versione "+0.5"? Technorati Tags: Expression Blend 2.5

posted @ mercoledì 5 marzo 2008 22:46 | Feedback (4)