Site: http://blogs.ugidotnet.org/corrado/Default.aspx Link: http://feeds.feedburner.com/corrado
by Corrado Cavalli via Corrado's BLogs on 1/31/2012 6:20:32 PM
I can hardly imagine any serious web development without JQuery so I did a quick test to check if it can be used inside a WinJS project and answer is: yes! even if not in its total completeness. You can’t use any CDN to get JQuery library, it must be included in your project (quite obvious since application must load even without any network connection) so I’ve grabbed latest version and added it to my WinJS project I then later created a very naïve HTML page: <!DOCTYPE html>&l ...
[ read more ]
by Corrado Cavalli via Corrado's BLogs on 11/24/2011 9:26:08 AM
Adding a secondary tile that ‘deep links’ into your application is a trivial task and can be done in just a few lines of code… private void button1_Click(object sender, RoutedEventArgs e){ ShellTile tile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString() == "/Page2.xaml"); if (tile == null) { StandardTileData secondaryTile = new StandardTileData { Title = "My app", BackgroundImage = new Uri("/ApplicationIcon.png", UriKind.Relati ...
by Corrado Cavalli via Corrado's BLogs on 10/25/2011 7:16:28 AM
In WinRT any method that takes more than 50 ms is exposed as an asyncronous operation and thanks to C# await keyword (or Javascript’s Promises) what could be a programmer’s headache becomes a straightforward task, but what if you have your own asyncronous code? Let’s say you have a basic downloader class that simulates downloading a string from the internet, in practice something like: public class MyDownloader{ public event EventHandler Completed; public string Result { g ...
by Corrado Cavalli via Corrado's BLogs on 10/16/2011 10:28:00 PM
As most developers, my first test with a new technology begins with the good old “Hello World” sample and the same happened when I started digging into Metro/WinRT SDK, and you can imagine my face when I discovered that MessageBox class is no longer there. After a few second of panic :-) I placed a search on SDK and (relief) found that its indeed alive and kicking (even in a different form) inside Windows.UI.Popups namespace with a brand new name: MessageDialog So I started writing my first ...
by Corrado Cavalli via Corrado's BLogs on 6/5/2011 4:34:17 PM
If you’re a Windows Phone 7 developer you’ll probably know that with ‘Mango’ it is now possible to persist data using a local database based on SQL Server CE whose data files are stored inside isolated storage, this is a quick overview of how to save and load data on a Windows Phone 7.1 application. First of all, if you, like me, gave Linq2Sql a change when it came out you’ll probably happy to know that your investment has gone totally lost from Entity Framework advent since all database in ...
by Corrado Cavalli via Corrado's BLogs on 6/4/2011 7:45:10 AM
Jaime Rodriguez in this post describes some new features of the SystemTray class in upcoming WP7 Mango release, I won’t repeat them since Jaime’s post is quite explanatory, I’ve instead investigated more the “Progress” feature mentioned on that post. Here’s how I’ve configured my SystemTray on MainPage.xaml: <phone:PhoneApplicationPage x:Class="SystemTrayBackground.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ...
by Corrado Cavalli via Corrado's BLogs on 5/6/2011 6:56:20 AM
I’m a longtime supporter of Laurent Bugnion’s MVVM Light Toolkit and I love using it together with my favorite IOC Container NInject, one of the most “boring” area is creating the class that exposes ViewModel instances in a design time way: the famous ViewModelLocator class. Now that Silverlight5 has custom markup extensions I thought: what about using it to simplify View vs ViewModel lookup? Here’s my attempt, let’s start with a simple ViewModel (nothing really new here, just to give you a ...
by Corrado Cavalli via Corrado's BLogs on 4/29/2011 10:34:59 AM
If your out-of-browser application runs fine on 96 DPI machines while it scales out when installed on higher DPI ones you can easily fix it by using following line at startup: Application.Current.Host.Settings.EnableAutoZoom = false; This will disable scaling and you app will look fine on any zoom setting. Technorati Tags: Silverlight,EnableAutoZoom ...
by Corrado Cavalli via Corrado's BLogs on 4/25/2011 8:55:32 PM
Ho appena terminato slides e demo della mia sessione al prossimo WorkShop Community Tour New wave di martedi prossimo, analizzando le novità in dettaglio devo dire che di cose interessanti in Silverlight 5 ce ne sono parecchie. Se siete interessati ad una visione della nuova versione meno scenografica rispetto a MIX11 e più “sul pezzo” allora ci vediamo Martedì 3 Maggio per vedere cosa ci riserva questa nuova release , se poi non siete interessati a Silverlight l’agenda è comunque ricca d ...
by Corrado Cavalli via Corrado's BLogs on 4/11/2011 8:58:52 PM
I never got troubles debugging Silverlight applications using IE8 but after upgrade to Internet Explorer 9 I started getting debugging issues. After a short investigation I realized that problem was caused by IE9 loading the xap from browser cache instead of web server and this causes source code being out-of-sync with what is loaded in memory. Cleaning the cache was not a solution for me but finally found a working solution. Go to IE9 –> Tools –> Internet Options –> General Tab ...
by Corrado Cavalli via Corrado's BLogs on 2/3/2011 6:57:10 PM
Let’s suppose you have a working Silverlight app, how do I publish it to Windows Azure? well’ is indeed very easy (and this is good ) Once you have Azure 1.3 SDK installed, you can add a new Azure project to your solution: Press Ok and you’ll be asked what template you want to add since we already have a project and all we need is to host our Silverlight app inside an Azure WebRole, we just press Ok. Right click the Role folder inside Azure project and select: Add-> Web Role Project ...
by Corrado Cavalli via Corrado's BLogs on 2/3/2011 5:29:10 PM
Let’s suppose you have a working Silverlight app, how to I publish it to Windows Azure? well’ is indeed very easy (and this is good ) Once you have Azure 1.3 SDK installed Once you have a Silverlight app publishing it to Windows Azure is really easylet’s start configuring our Azure account (yes you need one ) adding a new WebRole (we don’t need any WorkerRole for this demo) ...
by Corrado Cavalli via Corrado's BLogs on 1/31/2011 6:47:51 AM
If you do serious WCF RIA Services development you’ll probably end up with something like this: using System.Linq;using System.ServiceModel.DomainServices.Hosting;using System.ServiceModel.DomainServices.Server;[EnableClientAccess()]public class NorthwindService : DomainService{ private readonly NorthwindEntities datacontext = new NorthwindEntities(); [Query] public IQueryable<Customers> GetCustomers() { return this.datacontext.Customers; }} where code th ...
by Corrado Cavalli via Corrado's BLogs on 1/28/2011 8:01:43 AM
Paging and sorting are, de-facto, standard required implementations in any line of business (LOB) application and we, as Silverlight developers, all know how “boring” (I won’t categorize the feature as ‘complicated’) is the implementation, in special case if we’re dealing with a WCF Service and request its introduced after service design is completed. Wouldn’t it be good to finally forget about paging and sorting and use a common reusable implementation? well’ you’ll be happy to know that than ...
by Corrado Cavalli via Corrado's BLogs on 1/9/2011 10:02:18 AM
Sometimes you need to inspect what’s inside an Azure package content (.cspkg file) before it gets published to the cloud because you need to be sure that some required assemblies are in maybe simply because you need to figure why your app doesn’t work when running from the cloud. A common case is when you use WCF RIA Services and you forget to include both System.ServiceModel.DomainServices.Hosting and System.ServiceModel.DomainServices.Server inside development package by marking both with Co ...
by Corrado Cavalli via Corrado's BLogs on 12/31/2010 2:51:22 PM
I’m working on an Silverlight 4.0 application that spans several technologies and this time I’m in charge of the “server side”, in specific I’m developing the WCF RIA Service that will be consumed by the main application and in these weeks I have to admit that, while RIA Services are a real boost in productivity and allows you to forget all low level WCF stuff, you can sometime waste a lot of time figuring why basic things don’t work as expected, so the truth is: If you need to develop a product ...
by Corrado Cavalli via Corrado's BLogs on 10/15/2010 6:41:08 AM
Today I lost some time trying to figure out why my Windows Phone 7 application settings got lost as soon as the application was restarted. After several tests have concluded that the offending code was following one, which, at startup, deletes some “*.cache” files used by the application to store some temporary information. private void ClearCache(){ string[] cacheFiles = this.store.GetFileNames("*.cache"); foreach (string cacheFile in cacheFiles) { this.Delete(cacheFile); }} Eve ...
by Corrado Cavalli via Corrado's BLogs on 10/3/2010 5:05:04 PM
Sometimes you might need to play multiple sounds at once (games are just one example) and as stated into documentation here: http://msdn.microsoft.com/en-us/library/ff426928(VS.96).aspx you can have only one MediaElement on a page, so: how do I play multiple sounds at the same time? If you can afford to use plain 16 bit mono wav files you can use XNA’s SoundEffect class in just a few steps: Add a project reference to Microsoft.Xna.Framework assembly. Add the wav files to your project using ...
by Corrado Cavalli via Corrado's BLogs on 9/27/2010 7:12:27 PM
The Panorama control is certainly one of the most interesting controls available on Windows Phone 7 toolset, unfortunately it has a defect that is evident during Tombstoning or when you navigate to a page containing a Panorama and try to set its initial view to an item other than the first one. To better understand what the problem is, let’s start with this page: that has following code associated in order to properly handle its tombstoning: protected override void OnNavigatedFrom(Syst ...
by Corrado Cavalli via Corrado's BLogs on 9/21/2010 2:24:31 PM
Non tutti i launcher e/o Choosers causano il tombstoning dell’applicazione, ad esempio lanciano un EmailComposerTask l’applicazione non viene disattivata. I Launcher e Chooser che causano sempre il tombstoning dell’applicazione sono: WebBrowserTask MarketplaceDetailTask MarketplaceHubTask MarketplaceReviewTask MarketplaceSearchTask SaveEmailAddressTask SavePhoneNumberTask SearchTask SmsComposeTask Quelli che “potrebbero” sono: PhotoChooserTask CameraCaptu ...
by Corrado Cavalli via Corrado's BLogs on 9/19/2010 7:10:28 AM
Una delle domande più ricorrenti relative a Windows Phone 7 è: Esiste la possibilità di identificare in maniera univoca un device? (attenzione: ho scritto device, non utente…) la risposta è si, attraverso la classe DeviceExtendedProperties la quale espone una lunga serie di informazioni interessanti come Memoria totale, Memoria occupata, Versione firmare e hardware etc… Personalmente per comodità mi sono wrappato tutto in una classe DeviceInformation e ho convertito i 20 bytes che identific ...
by Corrado Cavalli via Corrado's BLogs on 8/23/2010 7:03:42 PM
Anche se sviluppare un applicazione su Windows Phone 7 è, direi al 80%, del tutto simile allo sviluppo di un applicazione Silverlight 3.0, non dobbiamo dimenticarci di quel 20% che è sicuramente quello destinato a farci penare prima del rilascio, in quel 20% oltre al Tombstoning aggungerei sicuramente l’aspetto performances perchè, non dimentichiamolo, abbiamo comunque a che fare con un dispositivo e non con un personal computer. Un esempio dove un dettaglio può far la differenza è la modalità ...
by Corrado Cavalli via Corrado's BLogs on 7/29/2010 5:19:16 PM
Pur non essendo un caso frequente, può capitare di dover ospitare un applicazione Silverlight proveniente da un dominio diverso dalla pagina host. Un esempio può essere: Pagina html ospitata nel domino foo.com la quale ha al suo interno qualcosa del genere: <div id="silverlightControlHost"> <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="http://www.anothersite.com/myap ...
by Corrado Cavalli via Corrado's BLogs on 7/29/2010 8:44:51 AM
In Windows Phone 7 ogni singola PhoneApplicationPage è automaticamente ospitata all’interno di un PhoneApplicationFrame che viene impostato come RootVisual allo startup dell’applicazione all’interno del metodo CompleteInitializePhoneApplication presente in App.xaml.cs (l’evento RootFrame.Navigated scatta dopo che lo SplashScreen è stato sostituito con la pagina iniziale dell’applicazione) Visto che PhoneApplicationFrame estende la classe Frame introdotta in Silverlight 3.0 la navigazione da u ...
by Corrado Cavalli via Corrado's BLogs on 7/28/2010 5:35:04 AM
Se è vero che sviluppare un applicazione per Windows Phone 7, conoscendo già Silverlight, non è poi così difficile in realtà ci sono una lunga serie di dettagli da conoscere perchè, non dimentichiamoci, l’applicazione non sta girando su un PC (quindi l’utilizzo corretto delle risorse diventa ancora più importante) ed è in esecuzione su un sistema operativo con caratteristiche proprie. Una di queste è il fatto che, almeno in questa versione, Windows Phone 7 non è un sistema operativo multi-ta ...
by Corrado Cavalli via Corrado's BLogs on 7/7/2010 7:56:48 PM
Se è vero che la prima impressione è quella che conta, perchè questo non vale per le applicazioni Silverlight? Alla data di oggi l’adozione mondiale di Silverlight è attorno al 60%, questo significa che il 40% degli utenti che finiscono sulla nostra pagina quello che si ritrovano è un desolante: oppure che per un utente non esperto potrebbe significare tutto e niente. Non sarebbe meglio fornire un esperienza più “amichevole” e magari riuscire anche a capire, tra gli utenti che non hanno ...
by Corrado Cavalli via Corrado's BLogs on 5/9/2010 1:42:24 PM
Una delle prime regole quando si lavora con WPF/SL/WP7 è organizzare le risorse in modo tale che sia immediato capire dove si trovano gli stili,templates e brushes. Forti di questa convizione, con Blend la cosa è spaventosamente semplice supponiamo di voler definire il colore di sfondo di un Border: Trasciniamo il Border nell’artboard e, col border selezionato, usiamo il menu Object->Edit Style->Create Empty Rispettando l’esigenza di organizzazione delle risorse, indichiamo a Blend di ...
by Corrado Cavalli via Corrado's BLogs on 4/15/2010 2:50:18 PM
Oggi ho avuto la necessità di consumare dei servizi da un applicazione Silverlight, questi non stanno sullo stesso sito di origine dell’applicazione e sono protetti da un file ClientAccessPolicy.xml che da accesso ai soli siti autorizzati. Per una lunga serie di motivi, disabilitare temporaneamente il filtro in clientaccesspolicy.xml non è possibile, e quindi, come debuggo il codice se ogni chiamata ritorna una SecurityException? La risposta sta in Fiddler che, tra la miriade di funzionalit ...
by Corrado Cavalli via Corrado's BLogs on 3/15/2010 6:13:17 PM
Sono da sempre un sostenitore di Blend e continuo a ritenerlo uno strumento indispensabile per chi sviluppa applicazioni WPF/Silverlight (ora dovrei forse anche aggiungere Windows Phone 7…) ovviamente ci sono delle funzionalità che dal basso della mia esperienza ho sempre ritenuto degli ottimi “tentativi” ma nulla di più: il caso più evidente sono i Design time data, ovvero la possibilità di definire dei dati disponibili a design time per facilitare il disegno della user Interface Il motivo ...
by Corrado Cavalli via Corrado's BLogs on 3/8/2010 9:42:59 PM
Un applicazione WPF/Silverlight basata su Model-View-ViewModel è il risultato di un insieme di dettagli che fanno la differenza, ad esempio una delle cose che sto iniziando ad apprezzare e grazie al quale è possibile fare delle cose veramente carine con poco sforzo è il VisualStateManager (che in WPF 4.0 diventa parte integrante della piattaforma) Prendiamo un caso molto semplice: Cambiare il colore di un rettangolo (ma la cosa potrebbe essere complessa a piacere) alla pressione di un tasto. ...
by Corrado Cavalli via Corrado's BLogs on 3/7/2010 7:01:22 AM
Sto lavorando su un applicazione Silverlight che, tra le varie funzionalità, deve eseguire il play di streams in formato .wma e per questo requisito la scelta cade automaticamente sulla classe MediaElement. Convinto della banalità della cosa ho scritto qualcosa tipo: MediaElement me = new MediaElement(); me.Source = new Uri("http://thesite.com/stream.wma", UriKind.Absolute); me.Play(); per scoprire che non funziona, ho quindi rimediato usando: WebClient wc = new ...
by Corrado Cavalli via Corrado's BLogs on 2/4/2010 10:30:34 PM
Quando si usa la funzionalità Edit Template->Edit a Copy di Blend Blend in realtà crea uno style che applica il template appena estratto. Personalmente mi piace organizzare le risorse all’interno di resource dictionaries (styles.xaml, templates.xaml…) e, sebbene Blend permetta di specificare dove posizionare lo style il risultato è che style e template sono tutt’uno e spesso finisco per spostare il template nel relativo resource dictionary e linkarlo nello style via {StaticResource} man ...
by Corrado Cavalli via Corrado's BLogs on 1/12/2010 6:16:54 AM
Se sviluppate un applicazione WPF 4.0 e utilizzate Blend preview for .NET 4.0 per disegnare la UI fate attenzione che se utilizzate Font Embedding (vedi immagine) la vostra applicazione diventa dipendente dall’ SDK di Blend a causa di questa righe inserita nel file di progetto <Import Project="$(MSBuildExtensionsPath)\Microsoft\Expression\Blend\3.0\WPF\Microsoft.Expression.Blend.WPF.targets" /> e di conseguenza il progetto non verrà caricato in assenza dell’installazione di Blend. P ...
by Corrado Cavalli via Corrado's BLogs on 1/9/2010 3:25:31 PM
Gestire situazioni in cui si hanno problemi di concorrenza tra utenti con i WCF RIA Services è veramente molto semplice, supponiamo di voler sapere se durante un operazione di update qualcuno ha modificato prima di noi gli stessi records. Il codice da scrivere è il seguente: private void OnUpdate(object sender, RoutedEventArgs e) { this.customersContext.SubmitChanges(lop => { if(lop.HasError) { MessageBox.Show(lop.En ...
by Corrado Cavalli via Corrado's BLogs on 12/31/2009 8:20:23 AM
Un altra interessante novità di Silverlight 4.0 è il fatto che il default template di ListBox/ComboBoxItem include tre nuovi stati: BeforeLoaded,Loaded e Unloaded. Agendo su questi stati è possibile modificare lo stato dell’item quando questo viene aggiunto e/o rimosso dalla lista, con Blend4 gestire questi stati è semplicissimo: Aggiungiamo una listbox (o combobox) ad una pagina ed editiamone il relativo ItemContainerStyle: A questo punto andiamo ad agire sugli stati indicati in precede ...
by Corrado Cavalli via Corrado's BLogs on 12/30/2009 10:42:55 AM
Ho parlato di MEF (Managed Extensibility Framework) parecchio tempo fa, ora che il framework è ben definito è evidente che se dovete sviluppare un applicazione ‘dinamica’ (o a plug-in se preferite) MEF è sicuramente la tecnologia da utilizzare. Ovviamente se l’applicazione è WPF o Silverlight l’accoppiare MEF e Model-View-ViewModel è d’obbligo, ecco quindi un semplice esempio di M-V-VM basato sul principio di composizione di MEF. Data Provider public interface IProvider { ...
by Corrado Cavalli via Corrado's BLogs on 12/30/2009 8:00:44 AM
Silverlight 3.0 ha introdotto l’oggetto Frame grazie al quale è possibile navigare le pagine che compongono l’intera applicazione, l’utilizzo di Frame è abbastanza semplice, supponendo infatti di avere la pagina principale della nostra applicazione (MainPage.xaml) definita in questo modo: <Grid x:Name="LayoutRoot"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="2*" /> </ ...
by Corrado Cavalli via Corrado's BLogs on 12/21/2009 8:59:57 PM
Scopo: Muovere un elemento X dalla posizione “A” alla “B” usando l’oggetto VisualStateManager di WPF e Silverlight. In tutti e tre i casi (WPF 3.5, WPF 4.0 e Silverlight X) lo XAML generato da Blend è esattamente lo stesso: 1: <Grid x:Name="LayoutRoot"> 2: <VisualStateManager.VisualStateGroups> 3: <VisualStateGroup x:Name="States"> 4: <VisualState x:Name="Normal"/> 5: <VisualState x:Name="Moved"< ...
by Corrado Cavalli via Corrado's BLogs on 12/13/2009 1:55:44 PM
Fino alla versione 3.0 l’unica tipologia di transport supportata da Silveright nei servizi WCF era l’HttpTransport nelle due varianti: BasicHttpBinding o la versione dove TextMessageEncoding viene sostituito da BinaryMessageEncoding migliorando leggermente le prestazioni. In Silverlight 4.0 è stato aggiunto il supporto a TcpTransport ovvero la possibilità di interagire con endpoints che utilizzando NetTcpBinding migliorando,non poco, sopratutto in contesti Intranet la velocità di comunicazione ...
by Corrado Cavalli via Corrado's BLogs on 11/7/2009 8:46:31 PM
Col SP1 del framework 3.5 è stato introdotto il namespace System.ComponentModel.DataAnnotations il quale ha al suo interno degli interessanti attributi di validazione (dettagli qui) Ad esempio, volendo validare una proprietà del nostro ViewModel, quello che dobbiamo fare è semplicemente scrivere del codice come quello che segue dopo aver aggiunto un riferimento a System.ComponentModel.DataAnnotations: 1: public class MyViewModel:INotifyPropertyChanged 2: { ...
by Corrado Cavalli via Corrado's BLogs on 11/7/2009 10:28:24 AM
Usare delle combinazioni di tasti oppure il mouse come shortcut per alcune funzionalità tipo Apri, Stampa, Salva etc è un requisito abbastanza comune, peccato che gestire questo aspetto utilizzando il pattern Model-View-ViewModel non sia proprio banale a causa di una piccola limitazione: la proprietà Command dell’oggetto KeyBinding non è una dependency property. Il workaround ovviamente esiste, è però un peccato che si debba reinventare la ruota per realizzare banalità del genere. Con WPF ...
by Corrado Cavalli via Corrado's BLogs on 10/19/2009 7:54:02 PM
Come se non ci fosse già abbastanza roba da installare, ecco il Silverlight3 Toolkit October 2009 installation: http://silverlight.codeplex.com/ Tra le principali novità: Il supporto a VS2010 (che include finalmente il designer per Silverlight ) Supporto da parte di alcuni controlli della MouseWheel La gestione integrata (ovviamente nel browser) del drag and drop, per quest’ultima feature consiglio questo post: http://themechanicalbride.blogspot.com/2009/08/new-with-silverlight-tool ...
by Corrado Cavalli via Corrado's BLogs on 9/20/2009 5:21:39 PM
Questo post nasce da un effettiva richiesta in un newsgroup e, visto che può servire ad altri ecco un piccolo how-to su come personalizzare il controllo Calendar di Silverlight, in particolare la richiesta era quella di cambiare il colore dell’header e delle domeniche, in pratica passare dalla situazione A a quella B (vedi sotto) Una volta capito che il controllo non espone una proprietà che permette di cambiare il colore dell’header e sopratutto appurato che non esiste un contenitore che ...
by Corrado Cavalli via Corrado's BLogs on 9/17/2009 11:00:13 AM
Trovo l’utilizzo di Unity (Dependency injection container) in coppia con Model-View-ViewModel semplicemente eccezionale: la pulizia e il risparmio di codice per iniettare le varie dipendenze “non ha prezzo” (cit.) Un ulteriore esempio di come usare M-V-VM ‘paghi’ l’ho avuta oggi: Alcune pagine dell’applicazione Silverlight sulla quale sto lavorando devono essere ‘cachate’ ovvero devono mantenere lo stato quando l’utente navigando nell’applicazione ritorna in quella pagina, requisito inizialme ...
by Corrado Cavalli via Corrado's BLogs on 9/2/2009 7:14:44 PM
Nella lista dei WPF Disciples si è discusso di come determinare in maniera corretta la modalità Design Mode, ovvero quando il codice sta girando nel contesto di un desginer. Le risposte sono: WPF 1: public static class Designer 2: { 3: private static readonly bool isDesignMode; 4: 5: public static bool IsDesignMode {get { return isDesignMode; }}
... [ read more ]
by Corrado Cavalli via Corrado's BLogs on 9/1/2009 7:16:53 PM
Se, come me, vi piace avere sempre “l’ulima versione” installata segnalo che è disponibile la GDR2 di Silverlight 3 che rispetta la direttiva cinese GB18030. “All products currently sold or to be sold in China must plan the code page migration to support GB18030 without exception. GB18030 is a "mandatory standard" and the Chinese government regulates the certification process to reinforce GB18030 deployment.” source: http://gb18030.org” Per aggiornare bisogna rimuovere il Silverlight 3 SDK e s ...
by Corrado Cavalli via Corrado's BLogs on 9/1/2009 4:33:37 AM
Lavorando su progetti Silverlight mi sto rendendo conto sempre di più come il pattern Model-View-Viewmodel sia in grado di risolvere situazioni che a prima vista possono sembrare irrisolvibili o perlomeno non così immediate come lo sono in WPF. l’ultimo caso in cui mi sono imbattuto è a prima vista banale: Customizzare una listbox affinchè visualizzi delle informazioni evidenziando l’elemento selezionato con un colore diverso, in pratica quello che vedete qui sotto: In WPF grazie ai Tr ...
by Corrado Cavalli via Corrado's BLogs on 8/18/2009 4:51:49 AM
Tempo fa avevo descritto come è possibile propagare le eccezioni da un servizio WCF verso un applicazione Silverlight3. Del procedimento, la parte più noiosa era sicuramente quella necessaria al cambio di HTTP Status Code da 500 a 200, la buona notizia è che grazie alla nuovo Client HTTP Stack presente in Silverlight3 tale cambio non è più necessario, basta infatti aggiungere questa riga allo startup dell’applicazione Silverlight: 1: bool registerResult = WebRequest.RegisterPrefix ...
by Corrado Cavalli via Corrado's BLogs on 8/7/2009 3:10:33 PM
L’altro giorno stavo chattando con Larent Bugnion riguardo nuove features da aggiungere nel suo progetto M-V-VM light toolkit ed entrambi eravamo concordi nella necessità di aggiungere un behavior che mappasse un generico evento verso un comando esposto dal ViewModel. Questa necessità è ancor più sentita in Silverlight dove il meccanismo di commanding, ICommand a parte, non è presente. Un esempio di possibile attached behavior è quello che segue: 1: public static class EventCo ...
by Corrado Cavalli via Corrado's BLogs on 8/6/2009 6:58:26 AM
In un architettura basata su Model-View-ViewModel (MVVM) spesso è necessario ‘iniettare’ nel ViewModel delle entities di supporto al ViewModel stesso, ad esempio, in un ottica ViewModel-First è consuetudine passare nel costruttore una generica IView in modo che il ViewModel possa poi comunicare facilmente con la view stessa. L’utilizzo di un interfaccia fa si che questo approccio non comprometta la testabilità del ViewModel in quanto l’interfaccia è facilmente ‘mockabile’ ma Il fatto di aver ...
by Corrado Cavalli via Corrado's BLogs on 8/4/2009 4:37:12 AM
Ho letto parecchi blog/post che chiedevano come gestire nel migliore dei modi la navigazione in Silverlight3 usando Model-View-ViewModel. Inizialmente sono rimasto un po’ disorientato in quanto abituato ad usare il metodo Navigate esposto da NavigationService e questo in qualche modo implicava la conoscenza di quest’ultimo nel Viewmodel oppure il comunicare via EventAggregator/Mediator/ServiceLocator la richiesta di navigazione verso la View. In realtà ho verificato che la soluzione, alme ...
by Corrado Cavalli via Corrado's BLogs on 7/31/2009 4:49:07 AM
A pochi giorni dal rilascio ufficiale ecco il primo, a dire il vero inaspettato, aggiornamento di Silverlight3 la cui versione passa quindi da 3.0.40624.0 a 3.0.40723.0 L’update è già disponibile via Windows Update oppure qui: http://www.microsoft.com/silverlight/get-started/install/ Non sono previsti aggiornamenti per i vari Tools/SDK etc, l’aggiornamento sembra riguardi: “Excessive media buffering in encoded media which had a lot of script commands in the headers” Technorati Tags: Silve ...
The content of the postings is owned by the respective author. Silverlight Feeds is not responsible for the contents of the postings. This site is automatically generated and cannot be reviewed for abusive content. If you find abusive content on Silverlight Feeds, please contact us. Designated trademarks and brands are the property of their respective owners. All rights reserved.