free hit counter
Pietro Brambati Blog - Site Home - MSDN Blogs

Pietro Brambati Blog

Developer's stories

  • Pietro Brambati Blog

    Silverlight 2 Toolkit – Parte 1

    • 2 Comments

    Cos’è ?

    Contine una serie di controlli per Silverlight 2 in più rispetto a quelli presenti nella RTW di Silverlight 2. Questi controlli sono ospitati su codeplex a questo link, dove trovate anche i codici sorgenti, i casi di test e molti esempi, il tutto con licenza OSI Ms-Pl. Se volete semplicemente dare un’occhiata è disponibile una pagina on-line, dove li potete provare. Il sito su codeplex ospita un vero e proprio sito community in cui si può partecipare in diversi modi al progetto, i controlli sono suddivisi in Quality Bands  che ne identificano il grado di maturità rispetto alle funzionalità e all’implementazione delle API.

    Da dove partire ?

    Per prima cosa vi consiglio di scaricare l’ultima release, in questo momento sto usando quella di dicembre.

    I controlli sono ospitati in 4 assemblies che trovate nella directory binaries, dopo che avete scaricato il file .zip dal sito:

    image

    A questi si mappano i controlli che vedete nella pagina on-line di test, come vedete dal pannello in cui l’esempio li mostra con una suddivisione similare:

    image

    Esempio #1

    Supponiamo di voler usare il controllo AutoCompleteBox, che implementa una textbox che tramite una serire di proprietà vi permette di avere dei suggerimenti per l’autocompletamento.

    Create un progetto vuoto in Silverlight 2 da Visual Studio 2008 e aggiungete come prima cosa l’assembly Microsoft.Windows.Controls.dll e il relativo namespace e prefisso come vedete nelle figure seguenti:

    image

     

    Nel file Page.xaml quindi notate la dichiarazione del namespace e relativo prefisso (sl2Tcontrols, potete usare quello che volete) e dichiarazione del controllo:

    image

    Ora quello che rimane da fare è aggiungere delle parole da suggerire, che ho aggiunto intercettando l’evento di Loaded dello UserControl, con il codice seguente (autoc è il nome del controllo AutoCompleteBox dichiarato nello XAML ):

    image

    Il comportamento di default del controllo, che può essere modificato tramite opportune proprietà, prevedeve che venga mostrato il suggerimento anche dopo il matching di un carattere, come mostrato in figura:

    image

    Esempio #2

    In quest’esempio vedremo come usare i controlli per visualizzare grafici, ne esistono già di diverse tipologie, ma la logica con cui usarli è la stessa.

    Partiamo sempre da un progetto Silverlight 2 vuoto e per prima cosa aggiungiamo l’assembly: Microsoft.Windows.Controls.DataVisualization

    image

    Ora come per l’uso con AutoCompleteBox aggiungiamo un namespace e definiamo un prefisso, quindi dichiariamo come nel codice XAML il nostro controllo:

    image

    Ci sono due cose da notare nel codice precedente :

    • LineSeries definisce il tipo di grafico che vogliamo rappresentare: se ad esempio un istogramma, un grafico a torta, o una serie di punti collegati tra loro, come nel nostro esempio
    • Le due proprietà IndependentValueBinding e DependentValueBinding sono in binding con le proprietà Value e Key definite nel seguito

    Ora dobbiamo fornire al nostro grafico i dati necessari, lo facciamo via code-behind nel modo seguente:

    image

    Nell’esempio ch1 è il nome dato al controllo Chart e KeyValuePair è una classe chiave-valore usata per dere i valori in pasto al nostro grafico, secondo le proprietà di binding definite in XAML.

    Ed ecco infine il risultato:

    image

    Non male vero ?

  • Pietro Brambati Blog

    Silverlight 2 Controls Demo

    • 1 Comments

    Vi segnalo due link interessanti, dove potete trovare esempi dei controlli della RTW di Silverlight 2 e dei controlli del Silverlight Toolkit ospitato su codeplex.

    Controlli RTW di Silverlight 2

    Trovate una pagina web di demo con l’elenco completo dei controlli Silverligh2 rilasciati con la RTW – per chi di voi ha seguito i miei webcast sulla beta 2 di Silverlight, questo link va a sostituire il link presente.  Nella pagina demo trovare non solo l’elenco dei controlli, ma anche il codice XAML dell’esempio in questione per un più rapido utilizzo.

    image

    Silverlight 2 Toolkit

    Questo toolkit contiene una serie di nuovi controlli che vanno ad aggiungersi a quelli rilasciati con la RTW; sono gestiti a livello community su codeplex, dove potete trovare non solo i binari, ma anche i codici sorgenti, gli unit test e la documentazione. Anche per questi controlli è presente una pagina online di test in cui potete vederne la lista completa

    image

    Dall’immagine sono molto interessanti i controlli di visualizzazione di grafici e anche in questo caso trovate il codice XAML che serve per rappresentarli.

    Trovate anche una guida in tre parti : Part 1 - Controls, Part 2 - Charting e Part 3 – Theming. La guida riprende le 3 macro aree su cui si snodano i controlli inclusi nel toolkit.

    Il sito community di questi controlli è il modo più rapido anche per contribuire: riportando eventuali bug, ma anche suggerendo nuove funzionalità da implementare. Attualmente è disponibile la build di dicembre. I controlli sono raggruppati seguendo delle quality bands, sono quattro (Experimental, Preview, Stable, Mature ) che ne definiscono il grado di evoluzione dal punto di vista delle funzionalità che il controllo vuole implementare o la stabilità dal punto di vista delle API;  ad esempio per un controllo che si trova nella Quality Band  “Stable” ha le API sono pressochè consolidate.

    Conclusione

    Spero che queste due pagine demo vi siano utili per esplorare in poco tempo i controlli della RTW e quelli su CodePlex di Silverlight 2. In ultimo un grazie a chi mi ha ricordato che il link che usavo nei webcast sulla beta 2 non è più valido.

  • Pietro Brambati Blog

    “Oxite”: open source blog engine ….

    • 1 Comments

    image

    Qualche giorno fa è stata rilasciata la versione alpha del blog engine usato per il sito MIX Online.

    Una definizione più accurata è

    Oxite is an open source, standards compliant, and highly extensible content management platform that can run anything from blogs to big web sites. We know this because it runs MIX Online

    Il codice è scaricabile da CodePlex con licenza OSI Microsoft Public License (Ms-PL).

    Oggi ho avuto un po’ di tempo per provarlo. Basta avere Visual Web Developer 2008 Express e SQL Server Express 2008 (entrambi gratuiti :-).

    Uno degli aspetti interessanti è che è stato realizzato usando ASP.NET MVC (attualmente in beta e da installare ) .

    Premere F5 et voilà, potete iniziare a lavore alla vostra piattaforma di blogging e non solo :-)))

    image

    Su questo video per Channel 9 potete scoprire l’intervista ad alcuni developer che vi stanno lavorando e che portano la loro esperienza da piattaforme come Ch9, Ch10, Edge e MIX Online.

  • Pietro Brambati Blog

    Una serata un po’ speciale…

    • 1 Comments

    image

    Martedì scorso ho avuto il piacere di uscire a cena a festeggiare con i ragazzi di Visual Basic Tips & Tricks. Che motivo c’era di festeggiare ? Natale … non solo, in realtà  la community Italiana sullo sviluppo con Visual Basic compie 10 anni, anzi per la precisione li ha compiuti l’ 8 Dicembre 2008, come potete leggere direttamente dai loro auguri sul sito :-).

    Non siamo stati gli unici in Microsoft che abbiamo festeggiato con loro, tanto che il Team di Visual Basic gli ha dedicato un simpaticissimo video  … addirittura in italiano, da non perdere,eccolo:

    Potete guardare qualche le foto su Facebook, ed iscrivervi al loro gruppo o semplicemente seguirli sulla loro community … auguri.

  • Pietro Brambati Blog

    Open XML, Firefox, ODF e Apache …

    • 0 Comments

    Ok, in una parola interoperabilità.

    Dopo il recente rilascio dello standard ISO/IEC 29500 (Office Open XML), durante il Document Interoperability Initiative workshop svoltosi la scorsa settimana a Brussels, sono stati presentati nuovi tools e tecnologie al fine di promuovere una sempre maggiore interoperabilità tra formati di documenti diversi.

    In particolare vi segnalo:

    image Open XML Document Viewer: questa CTP sostanzialmente permette di avere accesso ad un file Open XML da qualsiasi piattaforma che abbia un browser. Nel video (4 min) vedete come si installi il plug-in per Firefox con qui aprire un documento OpenXML direttamente nel browser. Il plug-in viene utilizzato su piattaforma Microsoft nella prima parte e successivamente su Linux.

    Download Open XML Document Viewer

     

    image Open XML/ODF Translators Version 2.5: nella versione 2.5 del progetto questa volta un add-in per Office XP, 2003 e 2007 consente di esportare un file in formato ODF. Nel video (4 min) vedrete anche il supporto per gli ODF templates per una migliore fedeltà durante la conversione da un formato ad un altro.

    Download Open XML/ODF translator

     

     

    Apache POI Java SDK for Open XML: è stato rilasciato un SDK per chi sviluppa in Java e vuole lavorare con il formato Open XML. Questo SDK fa parte del progetto POI : Java API To Access Microsoft Format Files.

    Link utili:

  • Pietro Brambati Blog

    Microsoft TechDays – WPC is coming ….

    • 1 Comments

    I MS TechDays 2008 sono ormai alle porte e per chi ci sarà volevo condividere le sessioni che terrò, in modo che vi possiate orientare al meglio nella scelta

    DEV323- Composite Application Guidance for WPF

    Questa sessione è rivolta sia ad architetti che a senior developer e tratta della prima versione di Prism: un insieme di linee guida, documentazione, librerie ed esempi, rilasciate lo scorso luglio dal team di Pattern & Practices. Prism è rivolto a chi vuole realizzare applicazioni WPF che non siano solo un’applicazione Hello Word, per intenderci, è rivolto ad applicazioni realizzate in ambienti con team di lavoro differenti in cui si vuole realizzare un’applicazione ”composita” fatta da moduli che possono essere sviluppati in modo indipendente ma che devono collaborare insieme in modo loosley-coupled. Come si progetta al meglio un’applicazione del genere, come caricare moduli, ridurre le dipendenze tra i componenti ? E se volessi utilizzare pattern come Model-View-Presenter ( in tutte le sue varianti ) Model-View-Controller quali problemi posso incontrare nell’uso con WPF e come risorverli con Prism ?

    Consiglio di seguire questa sessione a chi ha già una conoscenza di WPF.

    Per chi di voi si sta avvicinando per la prima volta a WPF e ha problematiche del genere nello sviluppo, consiglio prima di seguire le altre sessione della traccia su WPF. Gli esempi saranno comunque semplici e alla fine della sessione avrete un’idea di cosa contiene Prism 1.0 e di come utilizzarlo al meglio.

    Accennerò anche alla prossima release di Prims, Prism 2.0 sul finere della sessione … ok tempo permettendo.

    Altre sessioni su WPF:

     

    DEV317- Building and consuming REST-based Data Services for the Web

    Molti degli scenari applicativi moderni, sia per il client che per il web, affrontano ad un certo punto la problematica di come esporre dati per poi essere consumati da client di tipo diverso. REST (REpresentational State Transfert) è uno degli stili architetturali che si va più diffondendo nel web, per la sua semplicità ed immediatezza, ed è spesso un’alternativa all’utilizzo di SOAP. Con la recente release della SP1 di Visual Studio 2008 è stato introdotto un nuovo insieme di classi, che estendono e semplificano, l’uso di WCF per esporre dati via REST: gli ADO.NET Data Services.

    Questa sessione è rivolta sia ad architetti che a senior developer che si trovano ad affrontare queste problematiche e vogliono capire l’architettura di ADO.NET Data Services e di come utilizzarli con ADO.NET Entity Framework. Quali le opzioni per l’autenticazione, autorizzazione e gestione della concorrenza in questi scenari ? Con quali client possono funzionare ?

    La sessione non ha dei requisiti particolari, anche se una parziale conoscenza di Entity Framework può facilitare la comprensione.

    Ci vediamo la prossima settimana, bye

  • Pietro Brambati Blog

    ASP.NET MVC @ Italian Agile Day 2008

    • 2 Comments

    image

    La prima esperienza ad una conferenza “agile” non si scorda mai, anche perchè c’erano circa 400 persone!

    Ecco le slide su ASP.NET MVC e la piccola demo costruita durante la sessione a cui ho partecipato venerdì a Bologna. Potete trovare molte informazioni su ASP.NET MVC al sito community qui, tra cui un quickstart, video e tutorial.

    Per i fortunati :-) che erano presenti, hanno avuto la possibilità di conoscere Simone Chiaretta, che sta scrivendo un libro proprio su ASP.NET MVC e vi rimando quindi al suo blog in cui potete trovare utili informazioni e rimanere aggiornati sulla prossima pubblicazione, nonchè seguire Simone su twitter.

    Ma non è finita qui: alla giornata di venerdì ha partecipato anche Lorenzo Barbieri con  una sessione sull’ uso di TFS per lo sviluppo con metologie Agili. Lorenzo gestisce, inoltre, anche il blog su Visual Studio Team System e Team Fondation Server in italia, ora che siete agili avete un tool in più che vi può dare una mano.

    Happy & Agile coding

  • Pietro Brambati Blog

    Live Framework Development Environment: da dove partire

    • 1 Comments

    Il Live Framework, è il nuovo componente della famiglia dei Live Services. Angus Logan ha realizzato uno screencast che mostra come configurare un ambiente di sviluppo per iniziare a provare una delle primissime CTP. Lo screencast guida passo-passo nella creazione di un account Windows Live di test, l’attivazione del token necessario per accedere alla piattaforma per lo sviluppo e da dove scaricare l’SDK e i tool per Visual Studio 2008. E’ consigliato l’uso di una macchina di test: infatti i regional settings è meglio averli in inglese, inoltre, al momento, non è possible installarlo sulla stessa macchina su cui c’è Live Mesh.image

  • Pietro Brambati Blog

    Microsoft Days 08, ieri a Milano

    • 1 Comments

    Beh, la prima, primissima parola che mi viene in mente sulla giornata di ieri a Milano è un “grazie”. Non mi aspettavo in effetti così tanta gente e, lo confesso, a parte la naturale stanchezza che mi ritrovo dopo un evento del genere, mi fa piacere essere rimasto a parlare con molti di voi e discutere di aspetti tecnologici, architetturali e strategici; e ammetto,  spesso è uno scambio duale di informazioni utili! Grazie ancora. Se ripenso alle mie sessioni, spero di non avervi fatto soffrire troppo con una sessione molto ricca di codice, subito dopo pranzo.

    Ieri mi sono anche trattenuto all’evento serale di UgiDotNet. Non sono certo uno che si ferma agli eventi solo per approfittare della cena, nè tanto meno mi obbliga nessuno, ma mi sono fermato per le sessioni di Corrado e Andrea e confesso che il mio tempo è stato ben speso e la stanchezza non si è fatta neanche sentire più di tanto. Un complimento ad entrambi. Inoltre mi è ventuta voglia di leggere il libro fresco di stampa scritto da Andrea e Dino, appena ho uno slot di tempo sufficente vedrò di acquistarlo e leggerlo..  sì ormai la mia vita si divide in slot

    Un’ ultima informazione, non so dirvi con precisione quando, ma le slide delle sessioni della mattina con la registrazione della tappa di Padova, saranno disponbili dopo la fine del tour. Ho comunque già reso scaricabili le mie con gli esempi di codice, spero vi siano utili almeno un po’ e ricordatevi di compilare il modulo di feeback che vi dovrebbe arrivare in questi giorni sull’evento di Milano.

  • Pietro Brambati Blog

    Having fun building your first mesh-enabled web application

    • 1 Comments

     

    For those of you guys at the TechEd 2008 Barcelona that are so lucky (:-) to have one Token from Live Services Booth, here an how-to sample on how to build your first mesh-enable web app.

    To activate the token:

    1. Sign-in using Windows Live ID at http://lx.azure.microsoft.com
    2. Type an invitation token # in the Redeem your token and click to redeem.

    Online forum is available for any questions at http://dev.live.com/liveframework/forum

    What’s a mesh-enabled web app ?

    Using Live Framework, recently announced, you can create a standard application and use new APIs from Live Framework to interact with, but you have one more option: you can create a new type of application called mesh-enabled web application, that you can deploy and manage from the mesh. This kind of application is build using a multi-platform technology as HTML and Silverlight. Once the application in on the Mesh a component called Live Operating Environment (LOE) is responsibile(among other things, sorry for brevity) of sinchronize this application with other devices in the mesh. After that you could access your app from your Live Desktop into the browser or even off-line and interact localy with your local LOE, then when the connection will be available the data will be sinchronized.

    I absolutely encourage you read this paper from David Chappell on the  Azure Service Platform to learn more.

    What do you need ?

    You need the:

    • Live Framework SDK
    • Silverlight Tools for Visual Studio
    • Live Framework Tools for Visual Studio

    you can download  them from here after you activate your token.

    Let’s start coding …

    Open your Visual Studio 2008 SP1, now you have a new project template, as in the following picture:

    So, File->New Project and now under the Live Framework project type:

     

    image

    Now you have two projects: one is the Silverlight 2 project that references 3 new assembly of the Live Framework:

    image

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    If you go in code-behind file of your Silverlight 2 App, you’ll see the initialization code using the MeshApplicationService class in the Microsoft.LiveFX. namespace.

    image

    The other one is a project for packaging all that you need for your app. Now try build your solution and you can see that all that stuffs are zipped in a file as show my VS output window:

    image

    Now, if you press F5, Visual Studio pop-up this form to help you to upload to the Azure Developer Portal

    image

    Now, what you basically need to do is Navigate to the Developer Portal, and create a new Project:

    image

    Now Select the Live Services: Live Framework Community Technology Preview

    image

    In the following page, choose a name for your project and some description if needed, then press Next,then select Create a Mesh-enabled Web application, and press create

     

    image

    Then you simply need to upload a package; you can grab the full url from your Visual Studio pop-up you see previously, and then press deploy that start the upload process:

    image

    When the procedude completes, you see a page with an Application Self Link you need:

    image

    Ok, copy that link, we need it in Visual Studio 2008 to complete the process. Copy and press ok:

    image

     

    And you are now ready to go!

    Here my first mesh-enabled application, running in the Live Desktop of the borwser:

    image

    and here the out-of-the browser version:

    image

    Ok,  I’m not a designer I need to confess you !

     

    Now if you make some modification to your appplication simply press F5 and you can even have a debugging experience.

    image

    Links

     

    Here some pictures from the booth, for those of you are here in Barcelona :

    Ricardo, me, Yamil

    DSCN3564

    Gregory and me again

    DSCN3560 

    Ok, sorry for photos

  • Pietro Brambati Blog

    I 10 anni di ASPItalia.com

    • 0 Comments

    image In occasione dei Microsoft Days 08, per la tappa Romana si è unita a noi AspItalia, che ha deciso di festeggiare i suoi primi 10 anni di vita community. Quando dico festeggiare intendo che c'era anche un grande e bella - spero- torta.

    Bene, ho filmato la serata, che è stata un ottimo connubio di momenti divertenti e di contenuti tecnici.  Nel filmato potrete vedere "la torta", ma anche gli argomenti delle sessioni tenute da Daniele Bochicchio, Cristian Civera, Marco e Alessio Leoncini. Per l'occasione si è unito al gruppo anche Riccardo Golia, che è stato così gentile da regalarmi una copia del loro nuovo libro : ASP.NET 3.5 per tutti, di cui potete trovare tutte le informazioni qui. Mi hanno detto che si può scaricare anche un capitolo d'esempio ...

  • Pietro Brambati Blog

    Controlli Open Source per Silverlight 2

    • 6 Comments

    Mentre sono in giro per l’Italia a parlare del nuovo Silverlight 2, ecco che a meno di due settimane dal lancio appaiono i primi controlli Open Source per Silverlight2, che trovate sul progetto Silverlight Contrib.

    Provate la demo live

    image

  • Pietro Brambati Blog

    Intervista a dotNetToscana.org

    • 5 Comments

    imageDurante i Micorosoft Day 08 a Firenze sono riuscito ad intervistare in un breve video i ragazzi di dotNetToscana.org, la neonata community che si propone di essere un riferimento per le zone di Firenze e Pisa.  Quando dico “neonata” intendo che hanno finalizzato il logo la sera prima dell’intervista, alle 11.00 :-)

     

     

     

    Potete conocere Andrea, Matteo e Marco nel video …  qunidi, non vi resta che registrarvi alla loro community.

  • Pietro Brambati Blog

    Microsoft Days08: le mie sessioni [slide]

    • 13 Comments

    Ormai la prima data dei Microsoft Days08 si avvicina e ora che Silverlight 2 è stato ufficialmente rilasciato, posso darvi i titoli definitivi delle mie sessioni.

    Sarò presente (salute permettendo) a tutte le tappe del tour: Firenze, Roma, Padova, Torino, Milano e Bari e non mi voglio perdere neanche i Community After Hours.

    Potete lasciare commenti e postare le vostre foto dell’evento su Facebook.

    image

    image

    <Materiali>

    Eccole slide delle presentazioni fatte a Firenze, ci vediamo alle prossime tappe …

    SIlverlight 2: pptx, pdf, esempio

    ASP.NET Dynamic Data e IE 8: pptx , pdf, esempio

    </Materiali>

  • Pietro Brambati Blog

    Silverlight 2 RC0 + ADO.NET Data Service + Entity Framework

    • 6 Comments

    [Updated Silverlight Client code VB & C#]

    Qualche giorno fa discutevo con un amico sulle seguenti problematiche:

    • Qual è il modo migliore da Silverlight 2 di fare una chiamata verso un servizio che espone dei dati provenienti da un database ?
    • Voglio poter serializzare le entità del mio modello dei dati ? Sì, ma non solo, voglio serializzare l’intero grafo di una relazione master/details. Devo costruirmi tutto a mano ?

    Ok ,vediamo una possibile soluzione che adotta l’uso di ADO.NET Data Service (DS) e ADO.NET Entity Framework (rilasciati con la RTM della SP1 di Visual Studio 2008) e la RC0 di Silverlight 2, in quest’ultima versione, da poco rilasciata, sono infatti state aggiornate le librerie client che consentono di lavorare con gli ADO.NET Data Service.

    Ma cosa sono gli ADO.NET Data Service?

    Beh, per chi non li conosce vi consiglio di dare uno sguardo alla prima parte di questo webcast. In estrema sintesi però posso dire che i DS permettono un accesso REST verso sorgenti dato esposte , in questo caso con EF. In realtà basta una qualsiasi sorgente dati che supporti l’interfaccia IQueryable.

    I DS mi consentono così di accedere via http/https con i semplici verbi GET, PUT, POST, DELETE ad una sorgente dati, che restituirà i dati in formato JSON o ATOMpubs.

    Se ad esempio voglio recuperare l’elenco dei customers(le mie entità) posso effettuare una chiamata GET del tipo http://localhost:48248/SilverlightADOnetDataServicesDemo.Web/NorthwindWebDataService.svc/Customers , dove NorthwindWebDataService.svc è il servizio che espone la mia sorgente dati; se voglio che mi venga restituito l’elenco dei Customers, aggiungo “/Customers” alla chiamata GET del servizio.

    Costruiamo un esempio

    Vado veloce nella prima parte, perché mi aspetto sia più nota, alla fine di questo post trovate scaricabile l’esempio completo. Dunque Creiamo un’applicazione Silverlight 2, ricordate che però questo esempio funziona solo con la RC e non con la beta 2; facciamo in modo che oltre alla creazione del progetto Silverlight 2 venga creato anche il sito web ASP.NET, ora come prima cosa aggiungiamo un nuovo template ADO.NET Entity Data Model, come in figura

    image

    Il wizard vi guiderà fino alla scelta di un database, prendiamo Northwind, quindi alla scelta delle tabelle da inserire e scegliamo Cutomers e Orders, per avere una relazione del tipo (0,1) a Molti, quindi avremo:

    image

    Ok ora viene il bello, aggiungiamo un nuovo template ADO.NET Data Service, come in figura:

    image

    Chiamiamolo NorthwindWebDataService, o come vogliamo, a questo punto nel nostro progetto web ci troviamo più o meno quello indicato in figura:

    image

    Andiamo ora nel file .cs in figura NorthwindWebDataService.cs, in questo caso dobbiamo abilitare quali entità del nostro dominio applicativo vogliamo siano rese visibili all’esterno dai data Service. Per fare questo basta registrare come vedete nel codice seguente il modello dei dati e specificare quali permessi vogliamo vengano dati a quali entità. Nel mio esempio ho optato per la scelta più sbrigativa, attenzione a non fare lo stesso in produzione.

    image

    Ora possiamo fare qualche prova dal browser ed invocare il nostro servizio con delle chiamate come le seguenti: http://localhost:48248/SilverlightADOnetDataServicesDemo.Web/NorthwindWebDataService.svc/

    che dà la lista delle entità esposte, aggiungendo in coda a questo url:

    • /Customers ottengo un file XML con l’elenco dei customers e le informazion su db
    • /Customers(‘ALFKI’) per avere le informazioni su uno specifico customer
    • /Customers?&expand=Orders : che dà l’elenco dei clienti ma anche i relativi ordini

    In questo ultimo caso abbiamo proprio un esempio di quello che ci serviva: i clienti ed i relativi ordini in una sola chiamata; ok è da valutare quando questo sia o meno conveniente o se al limite si poteva raffinare la ricerca selezionando meglio solo alcuni clienti. Vi mostro comunque il risultato del browser , il primo riquadro è l’ID del primo customer e gli altri due sono gli id dei primi due ordini, potete immaginare il resto…

    image

    Il client, Silverlight 2 in questo caso

    Bene, vediamo ora come chiamare gli ADO.NET Data Service da Silverlight 2 RC. Per essere completi dovrei aggiungere che posso utilizzarli, usando delle librerie client per AJAX e delle librerie client per Windows, quindi potrei usarli da WPF o da una Windows Form, oppure direttamente via http, anche se poi dovrei occuparmi del parsing del file XML o JSON.

    Dal progetto SL aggiungiamo il riferimento all’ assembly System.Services.Data.Client.

    Ora la mia applicazione SL si compone di due semplici ListBox, la prima che dà la lista dei clienti e la seconda la lista degli ordini per uno specifico cliente. Non vorrei soffermarmi sugli aspetti di databinding della UI, ma evidenziare come fare la chiamata da SL. Il modo più rapido è aggiungere un riferimento dal progetto Silverlight verso il servizio offerto dai Data Service, quindi verso il file .svc come se fosse un qualsiasi Web Service.

    Ora nel code behind della pagina page.xaml.cs aggiungiamo queso codice:

    image

    La classe DataServiceContext si occupa di gestire il contesto della chiamata, facendo il tracking delle entità aggiunte etc. La seconda chiamata è quella vera e propria dove definiamo cosa vogliamo ottenere; dovreste vedere la stringa che prima chiamavamo dal browser; quindi definiamo la funzione di call-back che verrà invocata alla fine della chiamata asincrona.

    image

    La nostra funzione di call-back semplicemente aggancia una lista di oggetti Customers al DataContext della nostra prima lista, che mostra quindi l’elenco dei Customer (alcune informazioni).

    Ora agganciamo all’evento SelectionChanged il fatto che vogliamo visualizzare gli ordini del cliente selezionato nella seconda lista.

    image

    Direi che il gioco è fatto, ecco la nostra applicazione funzionante: ok ammetto la grafica non è affascinante, ma spero di aver reso l’idea.

    image

    Conclusione

    L’uso degli ADO.NET Data Services aiuta in molti scenari in cui si voglia esporre via REST sorgeti dati, offrendo un meccanismo che ne semplifica il modo d’interrogare, filtrare, ordinare e modificare la sorgente dati sottostante. Può essere usato sia per lo sviluppo per il web ma anche per Windows e insieme a Entity Framework consente anche la facile serializzazione di grafi con relazioni master/detail.

    Potete scaricare il codice di esempio di questo post da qui. [Ho aggiornato il codice scrivendo lo stesso client anche in Visual basic]

  • Pietro Brambati Blog

    I nuovi MVP

    • 3 Comments

    Il buon Alessandro, che ormai scrive in inglese :-) ha segnalato i nuovi Microsoft Most Valuable Professionals, di ottobre 2008, quindi non potevo che fare:

    var italyMvp = from mvp in newMvp where mvp.Country == “Italy” select mvp;

    Il cui risulato dà:

    Name

    Technical Expertise

    Country

    Alessio Leoncini

    Client App Dev

    Italy

    Andrea Dottor

    ASP/ASP.NET

    Italy
    Ermanno Goletto Directory Services Italy
    Franco Leuzzi Windows Desktop Experience Italy
    Mario De Ghetto Visual Basic Italy
    Matteo Raumer Visual C# Italy
    Simone Chiaretta ASP/ASP.NET Italy
    Vito Arconzo Client App Dev Italy
    Giuseppe Traficante Exchange Server Italy

     

    Complimenti a tutti anche da parte mia!!

  • Pietro Brambati Blog

    Mi sono salvato in extremis, anzi in Vista!

    • 3 Comments

    Questa mattina mi sveglio, faccio colazione, vesto la mia bimba etc, (altri particolari omessi) … oggi sono a casa, faccio Home Office e volevo approfittare della tranquillità per fare qualcosa diciamo così di “produttivo” –bene- vediamo di andare avanti con una presentazione che sto preparando o meglio con una demo … e fin qui tutto a posto, quindi accendo il computer e faccio per cancellare una directory che pensavo non mi servisse, un po’ distrattamente (era mattina presto) … dopo qualche secondo realizzo!  devo aver cancellato la directory che contiene proprio la demo che stavo preparando e che mi era già costata parecchie ore di lavoro! No, no non ci posso credere!   Ancora abbastanza calmo guardo subito nel cestino … e no, no, non c’è neanche lì … torno indietro con la mente no accidenti ho usato proprio quella sequenza di tasti … ma perchè,  non lo faccio mai.  Il panico comincia a farsi largo … ma sì io tengo tutte le demo e presentazioni sulla chiavetta, quella lenta… la prendo e  no, no, no, non c’è, ma come mai non l’ho salvata, almeno una parte, lo faccio sempre, come può essere successo.

    Ok a questo punto ero assolutamente disperato, il racconto si farebbe cruento ( con me stesso) e già pensavo di usare strani toolletti che da anni non usavo più, di chiedere a Renato, di scrivere io un programmino, quando …

    imageMa aspetta un attimo le “Previous Versions” ?

    Eh sì, la storia finisce proprio così tasto destro sul folder che conteneva la directoy cancellata innavertitamente ed eccole lì: la lista per data delle modifiche fatte alla cartella. Ora basta fare un Restore oppure per maggiori scrupoli, fare la copia della versione che serve in un altro folder “et voilà” …

    ora sto meglio :-)

    Certe funzionalità non sono utili, fino a quando non servono.

  • Pietro Brambati Blog

    Uno sguardo a ASP.NET Dynamic Data – parte 2

    • 14 Comments

    Nel primo post di questa serie abbiamo visto come realizzare una prima applicazione con ASP.NET Dynamic Data (DD). Come dicevo i DD sono pensati per scenari di rapida prototipazione, dove con poco realizziamo un sito completo partendo dalla basedati. Ci tengono a ricordare che questa è solo una possibilità in più, non in meno, possiamo naturalmente partire da zero usando WebForms o, quando sarà rilasciato, ASP.NET MVC e in base ai gusti scrivere più o meno codice oppure optare per un modello piuttosto che per l’altro.

    Nonostante siano pensati per scenari RAD, però, i DD danno una buona possibilità di personalizzazione: in questo post vedremo come:

    • Esporre solo alcune tabelle
    • Visualizzare o meno le colonne delle tabelle esposte
    • Personalizzare il comportamento di visualizzazione delle colonne

    Quali tabelle esporre

    Usando l’attributo scaffoldAllTables nel global.asax abbiamo infatti esposto tutte le tabelle del nostro db. Potremmo, invece, operare selettivamente impostando a false tale attributo e andando a abilitare la/le singole tabelle. Per ogni tabella su db, LINQ to SQL, ha creato una classe partial, che possiamo vedere nel codice del file .dbml. Vediamo ora proprio come estendere queste classi, aggiungiamo un nuovo file Order.cs , che definisce una nuova classe parziale con qualche attributo in più, come mostrato nel seguito:

    image

    Il nuovo namespace System.ComponentModel.DataAnnotation consente di usare l’attributo ScaffoldTalble, con cui possiamo rendere o meno visibile la tabella ai DD. Quindi nel nostro caso abbiamo impostato l’attributo scaffoldAllTables in global.asax a false, mentre abbiamo impostato per la classe Order (e anche Product ) l’attributo ScaffoldTable a true. Se lanciamo l’applicazione ora vedremo “scovate” dai DD due tabelle, come in figura:

    image

    Controllare le colonne che vengono esposte

    Se andiamo a vedere le colonne della tabella Orders, cliccando sul link, notiamo che sono presenti tutte le colonne definite nella tabella, nella figura vedete evidenziata anche la colonna shippedDate, che andremo a modificare nel seguito:

    image

    Se per qualche ragione non volessimo visualizzarla, ecco che possiamo operare sempre sulla classe parziale precedentemente definita, aggiungendo un attributo ScaffoldColumn, dal comportamento intuitivo, come mostrato in figura:

    image

    Questa volta abbiamo dovuto scrivere un po’ di codice in più (bene :-)), definire un MetadataType, una classe nella quale poi definiamo un po’ il comportamento relativo alla colonna ShippedDate. Il comportamento, a meno di errori :-), è quello atteso: se lanciamo il sito e andiamo nella tabella Order, non vederemo più  la colonnaShippedDate, l’attributo in questione, infatti, ha detto ai DD di non visualizzarlo più. Ometto l’immagine, potete immaginare …

    Controlliamo il comportamento delle colonne

    Il comportamento in fase di visualizzazione e modifica dei singoli campi della tabella è definito, come abbiamo visto nel primo post, dai template che si trovano nella directory DynamicData\FieldTemplate, dove trovate come viene visualizzato ogni campo di uno specifico tipo: guardate ad esempio il codice di Boolean.ascx e Boolean_Edit.ascx. Ora, se volessi modificare come vengono visualizzati i campi di uno specifico tipo di tutte le tabelle potrei modificare questi template, ma se volessi operare solo sul singolo campo (ShippedDate ad esempio) di una specifica tabella (Orders) potrei (come ho fatto) sfruttare alcuni meccanismi di estendibilità offerti dai DD. Guardate il pezzo di codice qui di seguito:

    image

    In questo caso sto usando l’attributo DisplayFormat per definire il formato di come deve essere visualizzato il campo in questione (la ShippedDate), in questo caso è una data che verrà visualizzata nel formato mostrato in figura. Inoltre grazie all’attributo UIHint sto indicando ai DD di non usare il template di default per il rendering dell’attributo, ma ho creato un nuovo field template che utilizza il controllo Calendar dell’ AJAX Control Toolkit. Non vi mostro il codice che ho usato per la personalizzazione del controllo, che non è molto, lo sto finendo di preparare per la sessione dei Microsoft Days 08. Il risultato visualizzato è il seguente:

    image
    Dove si nota il calendar in fase di editing della colonna ShippedDate.

    Conclusione

    In questo post avete visto come utilizzare alcune tecniche per personalizzare il comportamento di default dei DD, potendo non solo abilitare\disabilitare specifiche tabelle “scovate” dal runtime, ma anche personalizzando il singolo comportamento di un singolo campo di una specifica tabella, aprendo di fatto a molteplici utilizzi. I DD sono, in oltre, già compatibili con ASP.NET AJAX e anche con l’AJAX Control Toolkit, non ultimo potreste anche voler utilizzare controlli di terze parti per specifiche esigenze…. insomma non male, vero?

  • Pietro Brambati Blog

    Uno sguardo a ASP.NET Dynamic Data – parte 1

    • 21 Comments

    Una delle novità presenti nella SP1 di .NET 3.5 sono i Dynamic Data (DD), o meglio ASP.NET Dynamic Data. In estrema sintesi i DD consentono di generare un sito web completo partendo da un modello dei dati. Vi è mai capitato di dover costruire un’applicazione web in poco tempo, niente di eccezionale, solo per poter permettere di fare operazioni di interrogazione e modifica su una sorgente dati?

    Bene, i DD sono pensati proprio per questi scenari: si parte da un modello dei dati costruito con LINQ to SQL o Entity Framework (ma non solo..) e su questo, delle pagine aspx fungono da template generici, essendo in grado di capire quali tabelle sono presenti nel modello dei dati, di capire come sono fatte e di visualizzarle così come renderle modificabili. Esiste quindi un template unico (condiviso da tutte le tabelle) per le operazioni tipiche che su queste potremmo fare (interrogazione, modifica etc).

    Un altro aspetto importante riguarda il motore di routing su cui si basano, che consente di non legare l’url che chiamiamo nel browser per richiedere una specifica pagina a dove la pagina fisica risieda oppure a come questa si chiami. Inoltre è possibile modificare il comportamento del motore di routing tramite delle regole, in un unico punto, senza dover modificare alcunché nelle singole pagine e come queste si richiamino tra di loro.

    Partiamo con un semplice esempio:

    Da Visual Studio 2008 SP1 ( oppure con Visual Web Development Express 2008 SP1) scegliamo uno dei due nuovi template disponibili:

    image

    Scegliamo Dynamic Data Web Application, perché pensiamo di generare il modello dei dati con LINQ to SQL, se volessimo usare Entity Framework dovremmo scegliere Dynamic Data Entities ….

    Date ora un rapido sguardo al progetto generato che contiene la cartella DynamicData, che a sua volta contiene i template che vi dicevo sopra, in particolare guardate la sottocartella PageTemplates che contiene i template usati dai DD. Qui trovate una descrizione delle pagine incluse di default.

    E’ interessante anche il folder FiledTemplate in cui trovate come viene eseguito il rendering di uno specifico tipo, ad esempio il file Boolean.ascx e Boolean_Edit.ascx contengono il codice che viene generato a runtime tutte le volte che si deve generare la parte di pagina che visualizza una colonna del database di tipo boolean e, come avrete capito, il comportamento cambia se siamo in fase di visualizzazione piuttosto che editing del campo. Quindi, in un unico punto, è stato centralizzato il comportamento per la visualizzazione e la modifica dei singoli campi delle tabelle del database. Posso modificare il codice qui e vedere le modifiche apportate ogni volta che viene visualizzata una colonna che fa riferimento ad un campo boolean su db, di una qualsiasi pagina che venga renderizzata. I DD hanno anche un meccanismo che consente di fare un po’ il contrario: di specificare cioè che un particolare campo boolean, di una particolare tabella sia visualizzato in modo completamente diverso che dagli altri. Vedremo meglio questo meccanismo di estendibilità in un altro post.

    Per ora procediamo oltre e aggiungiamo un modello dei dati basato su LINQ to SQL. Dal menù: Add new Item, quindi scegliamo Linq to SQL Classes, “agganciamo” il nostro database Northwind, o quello che preferite, e senza preoccuparcene troppo facciamo drag & drop di tutte le tabelle, alla fine ci troviamo più o meno nella situazione in figura:

    image

    Nella figura trovate evidenziati il folder DynamicData e il file del modello dei Dati Northwind.dbml.

    Ora andiamo nel file global.asax, semplicemente scommentiamo la riga di codice in cui informiamo i DD del nostro modello, “registrandolo” e aggiungendo il DataContext che mi ha creato il designer, NorthwindDataContext , imponendo a true l’attributo ScaffoldAllTables, che in soldoni dice ai DD di utilizzare tutte le tabelle del mio modello dei dati. E’ doveroso ricordare, come il commento nella stessa pagina global.asax ricorda, questa può non essere la cosa migliore da fare, ma per ora, per il mio esempio, può andare.

    Premendo F5 vediamo la nostra applicazione già bella che fatta. In figura vedete la prima schermata che mostra l’elenco delle tabelle

    image

    Per renderci conto di quanto sia potente il meccanismo di discovery del modello dei dati usato dai DD, premiamo il link che ci porta alla tabella Products, la pagina list.aspx che viene invocata, è un template completamente generico, è in grado di visualizzare correttamente la tabella Products.

    Nella seguente figura, ho evidenziato gli aspetti notevoli che i DD ci mettono a disposizione gratuitamente:

    image

    I DD si accorgono :

    • che la tabella Products ha una relazione di foreign-key con la tabella Category ed invece di mostrarci l’ID della Categoria, ad esempio 1 per il primo prodotto, ci mostra il nome della categoria, cioè Beverages. Potente, no! Lo stesso vale per Supplier.
    • Mettono a disposizione un menù per fare operazione di filtraggio: guardate Discontinued, Category, Supplier: che è generato dinamicamente in base a quali campi boolean e alle relazioni foreign-key presenti nella tabella prodotti.
    • Seguendo i link Edit, Delete e Details si giunge a delle pagine che servono proprio per le operazioni suddette, che ovviamente sono generate a partire dagli altri template, anch’essi generici e adattabili a qualsiasi tabella.

    Il tutto finora semplicemente scrivendo una riga di codice nel file global.asax.

    Il Routing

    Se torniamo al file global.asax, noterete come viene generato l’url per navigare l’applicazione web generata:

    image

    L’url viene composto con il nome della tabella e il nome delle action, a cui viene aggiunta l’estensione aspx. Ora cos’è l’action ? Possiamo pensare alle action come alle azioni eseguite sulla pagina dall’utente. Esiste l’enum PageAction che contiene le action usate di default dai DD. Con un esempio si potrebbe dire che se l’utente clicca sul link Edit, per modificare come è fatto un singolo prodotto, la pagina esegue la relativa action PageAction.Edit e il motore di routing invoca la corrispondente pagina, nell’esempio sopra sarà dunque la pagina Edit.aspx, che trovate nel folder dei template in Page templates.

    Per renderci conto di quanto sia flessibile il motore di routing, possiamo provare ad aggiungere due nuove regole. Le regole seguenti valgono solo sulla tabella “Supplier”.

    image

    Attenzione : le regole hanno una precedenza, quindi dobbiamo applicare queste due regole prima di quella presente di default che è più generica. Questa regola agisce quando scegliamo la tabella Supplier (durante la navigazione ). In questo caso sia che l’utente scelga di selezionare la lista di tutti i supplier (PageAction.List), che scelga di selezionare il singolo supplier (PageAction.Details), la pagina che la visualizza sarà la ListDetails.aspx (anche questa è una delle 4 pagine presenti di default nel folder Page Templates). Nella definizione della regola ViewName è il nome della pagina aspx (senza estensione) che deve farne il rendering. Mentre in verde vedete l’url che apparirà nella address bar del browser, che può essere quello che volete, in questo caso ho semplicemente rimosso l’estensione “.aspx” alla fine dell’url.

    Conclusione

    I DD vanno ad arricchire le funzionalità delle WebForms, offrendo un framework per realizzare applicazioni web data-driven. In questo post abbiamo visto brevemente come iniziare ad usarli vedendo i principi di base del loro funzionamento.

    I DD offrono comunque un meccanismo che permette molte forme di personalizzazione, permettono di usare dei template particolari per fare il rendering di campi specifici di una tabella usando ad esempio i controlli dell’ AJAX Control Toolkit o di terze parti ad esempio per selezionare un calendario, oppure uno slider per decidere una quantità numerica. Le pagine degli ASP.NET Dynamic Data sono già pensate per sfruttare i controlli ASP.NET AJAX.

    Altri attributi consentono di impostare delle regole di validazione sul modello dei dati, ad esempio posso impostare tali regole direttamente sulle proprietà delle classi generate da LINQ to SQL, creando delle partial class. Questo meccanismo consente di accentrare le regole di validazione, che poi “fluiscono” nella UI e valgono in qualsiasi pagina web si faccia riferimento a quella specifica classe...

    Spero di avere stuzzicato la vostra curiosità , almeno per chi non ha ancora avuto modo di provare i nuovi ASP.NET Dynamic Data.

    Link utili

    MSDN library ASP.NET Dynamic Data

    www.asp.net/dynamicdata/

  • Pietro Brambati Blog

    2 chiacchiere

    • 3 Comments

    In queste mesi mi rendo conto di aver trascurato un po’ il mio blog, ok ci sono state le ferie, ma in effetti ero solito postare un po’ più spesso; me ne sono accorto anche perché ho ricevuto un insolito numero di mail: molto interessanti, grazie e spero che le risposte siano state utili :-) e di aver risposto a tutti.

    Nelle ultime settimane in DPE, la divisione Microsoft per cui lavoro, siamo stati un po’ presi, complice il cambiamento del modo di lavorare, persone etc, insomma le solite cose che vi potete aspettare. Inoltre e soprattutto, stiamo lavorando agli eventi MSDN e TechNet dei prossimi mesi. Giusto per darvi qualche anticipazione ci sarà (ok queste informazioni sono completamente non-ufficiali :)) un Roadshow MSDN e TechNet in diverse città italiane tra Ottobre e Novembre dove si parlerà delle ultime novità: in particolare di .NET 3.5 SP1 e SQL Server 2008 e il tutto insieme a molte Community italiane! E’ anche già live il portale dei TechDays – WPC 2008, evento di approfondimento tecnologico che si svolgerà invece il 2-3-4 Dicembre. Quindi preparatevi: tenete monitorati i nostri blog, pronti a fissare le date in agenda. Ora che mi ricordo, ho anche registrato un webcast introduttivo (e sintetico) sulle novità della SP1, ma non è ancora disponibile per il download, quindi ci sarà da aspettare ancora un po’. Mauro mi sta anche conivolgendo in qualche attività con le università, ma per ora niente di certo.

    Ma non è tutto qui, almeno per me :-) Sono alle prese con un cambio casa: potete solo immaginare quanti grattacapi; mi rincuora che in DPE non sono l’unico. Bene mi rendo conto che questo post è (quasi) completamente inutile … ma ormai l’ho scritto.

  • Pietro Brambati Blog

    Supporto nativo JSON in Internet Explorer 8

    • 1 Comments

    Uno dei post che ho letto con più interesse sul blog del team di prodotto riguarda il supporto nativo a JSON di IE 8. JSON è un formato noto a chi sviluppa applicazioni AJAX, ma non solo … direi. In IE 8 sono state aggiunte una serie di nuove API native che consentono di aumentare le performance in fase di serializzazione e deserializzazione ed inoltre verificano il contenuto da deserializzare per “sanitizzare” da codice malevolo.

    Le nuove API mantengono il supporto a JSON come descritto in ES3.1 Proposal Working Draft. Il motore è nuovo e non si basa sulla classica eval().

    Quello che come sviluppatori web abbiamo a disposizione è un nuovo oggetto JSON con delle nuove API, ad esempio JSON.parse e JSON.stringify: la prima fa il parsing di una stringa che dovrebbe contenere dati in formato JSON e ne restituisce il corrispondente oggetto o array, mentre la seconda, fa un po’ l’inverso. L’elenco delle API con tutti i dettagli del caso la trovate al post che vi suggerivo di leggere.

    Nel post trovate anche discusso il comportamento delle pagine che usano note librerie per la gestione del JSON come json2.js; la maggior parte di queste pagine trarrà vantaggio, senza modifica, di queste nuove API girando in modo più veloce, perché sfrutteranno il supporto nativo di IE 8. Per le pagine che hanno implementato una versione custom di un oggetto JSON sono discusse invece due possibile alternative da seguire.

    Ok, non ho resistito a scrivere due righe di codice e farne il debug con i nuovi Dev tools inclusi in IE8. Sulla destra vedete i campi dell’oggetto JSON, risultato del parsing della stringa.

    clip_image002

    Attenzione:il valore del campo Age in figura è puramente indicativo e non attinente alla realtà … forse.

  • Pietro Brambati Blog

    Internet Explorer 8 : Developer’s Quick Guide

    • 6 Comments

    Ho collezionato una serie di link utili per capire le novità di Internet Explorer 8 e in particolare relativamente alla beta 2. Ho cercato di rendere il più ridotta possibile la lista dei link in modo da non perdere troppo tempo a rileggere le stesse cose.

    • What's New in Internet Explorer 8: qui trovate una carrellata di tutte le novità presenti in IE8 per sviluppatori e non solo, troverete segnato con un asterisco quelle relative alla beta 2.
    •  image Modalità di visualizzazione delle pagine (Document Compatibility): La compatibilità con gli standard ( in particolare CSS 2.1) è uno dei requisiti di progettazione di IE8; per garantire però che vengano visualizzate correttamente le pagine web realizzate per versioni precedenti del browser, IE 8 mette a disposizione diverse modalità di rendering della pagina. Il comportamento di IE 8 può essere influenzato dall’utente finale attraverso la Compatibility View, ma anche da chi sviluppa l’applicazione usando un tag <Meta> o un header http.
    • Document Compatibility: spiega come modificare la visualizzazione di IE 8 usando il tag o un header http
    • Introducing Compatibility View: parla della Compatibilità View, ma anche del nuovo parametro IE=EmulateIE8
    • image WebSlices:
    • image Accelerators (le Activities della beta 1):
    • Search Providers
    • Il filtro XSS: questo nuovo filtro è in grado di prevenire attacchi Type-1 Cross-Site Scripting. Leggendo il post che vi ho segnalato noterete che l'effetto per l'utente finale è di essere minimamente invasivo, così da non dover far compiere scelte difficoltose e a volte impossibili a molti. Come developer,  potete disabilitare questo filtro per le vostre pagine, mettendo un apposito header Http: X-XSS-Protection.
    • image IE 8 Developer Tools: è un’applicazione integrata in IE8 che consente di testare la pagina web visualizzata: HTML, CSS, Javascript e altro. In particolare è interessante la possibilità di testare il comportamento di una pagina nelle diverse modalità di visualizzazione di IE, il tutto in modo dinamico, modificando i parametri Browser Mode e Document Mode. Nel terzo ducumento viene spiegata la differenza tra queste due opzioni in apparenza poco chiare: la prima inluenza lo user agent e il version vector, mentre la seconda influenza il comportamento di IE in base alla presenza o meno del document tag eventualmente presente.

    Testing di siti esistenti

    Scarica la Internet Explorer Application Compatibility VPC Image che contiene anche una nuova immagine con Windows XP SP3 e IE8 Beta 2: queste immagini vi consentono di avere una macchina virtuale già pronta per fare il testing dei vostri siti con la beta 2 di IE8.

    Se trovate qualche altro link utile su IE 8, lasciate pure un commento; nei prossimi giorni è probabile ci sia un maggiore aggiornamento della documentazione dalla beta1 alla beta 2.

  • Pietro Brambati Blog

    IE 8 beta 2 – Visual Tour

    • 2 Comments

    La beta 2 di Internet Explorer 8 è stata rilasciata, ho pensato di prendere qualche screenshot per “illustrare” alcune funzionalità di IE8. Non sono tutte relative alla beta 2, ma …. Per maggiori informazioni qui e qui(in italiano).

    Per gli aspetti più di sviluppo, aspettatevi qualche post  in seguito …

    Bottone per la Compatibility View

    image

     

    Developer Tools

    image

     

    WebSlices

    image

    image

    image

     

    Accelerators (beta 2)

    image

    image

    image

     

    Visual Search & Suggestion (beta2)

    image

     

    Smart Address Bar (beta 2)

    image

     

    Find in Page

    image

     

    Crash Recovery e TabIsolation

    Crash recovery and Tab Isolation

     

    Domain Name in evidenza

    image

     

    Safety menù

    image

     

    Delete browsing History

    image

     

    InPrivate Browsing & Blocking (beta 2)

    image

    image

     

    NewTab Window

    image

     

    Bottone “Diagnose Connection problems”

    image

     

    SmartScreen (beta 2)

    SmartScreen - anti phishing

    SmartScreen - Unsafe Download

     

    Raggruppamento dei tab con colori (beta 2)

    image

     

    Download di Internet Explorer 8 beta 2

  • Pietro Brambati Blog

    Scontenti di Windows Vista ?

    • 2 Comments

    Leggere qui: differenza tra percezione e realtà.

  • Pietro Brambati Blog

    Microsoft SQL Server 2005 Driver for PHP v1.0 : rilasciato

    • 4 Comments

    Potete leggere la notizia dal blog del Team

    Download del driver qui

    Scarica i codici sorgenti da CodePlex

    Potete leggere un articolo su come usarlo a questo link:  Accessing SQL Server Databases with PHP

Page 5 of 11 (261 items) «34567»