free hit counter
May, 2008 - Pietro Brambati Blog - Site Home - MSDN Blogs

Pietro Brambati Blog

Developer's stories

May, 2008

  • Pietro Brambati Blog

    Intervista su ictv

    • 0 Comments

    Andrea Marzilli ha intervistato alcune persone alla fine del PhpDay2008, ecco la mia:

    http://www.ictv.it/file/vedi/693/brambati-iis7-fastcgi-e-php/

    Sono un po' noioso lo so, scusate  :-)

  • Pietro Brambati Blog

    PhpDay 2008

    • 2 Comments

    phpday2008_smallAnche quest'anno (sono arrivato alla mia seconda edizione!) ho partecipato al PhpDay, svoltosi a Rimini lo scorso venerdì e sabato.

    Mi ha fatto piacere rivedere alcune facce note, che potete vedere nella foto scattata, l'unica nella mia macchina

     

    Le slide della sessione le trovate sotto, in sintesi gli argomenti trattati:

    • FastCGI (ormai rilasciato) e i servizi di IIS 7 usabili anche per PHP, come OutputCache, Forms Authentication e per il troubleshooting il Failed Request Tracing
    • SQL Server Driver per PHP: l'implementazione di una estensione nativa per PHP, che espone un' API procedurale per SQL Server. Attualmente è in CTP.
    • Expression Web 2: Nella nuova versione oltre lo "stracomodo" supporto per i CSS e HTML è stato introdotto anche il riconoscimento della sintassi per PHP, è possibile includere un'applicazione Silverlight in modo rapido in una pagina PHP e un comodo Developer Server per il testing anche senza avere sulla macchina un server web.

  • Pietro Brambati Blog

    Un video da weekend

    • 0 Comments
    image
  • Pietro Brambati Blog

    Serializzazione delle Entità dell' Entity Framework con WCF in NET 3.5 SP1

    • 6 Comments

    Un titolo un po' complicato, certo, vediamo di chiarire meglio il contenuto di questo post. Lo scopo è di illustrare con un po' di codice una delle novità della SP1 di .NET 3.5, in particolare il supporto di WCF per la serializzazione delle entità generate dall' Entity Framework, anche quest'ultimo, come forse avete letto, lo trovate ora, insieme al designer installando la SP1. Potete leggere le novità della SP1 qui.

    Costruiamo il servizio WCF

    Dopo aver installato l'SP1 su una macchina di test, creiamo dunque un progetto di tipo WCF Service Application, come mostrato in figura:

    image 

    Aggiungiamo ora un nuovo item di tipo ADO.NET Entity Data Model. Due parole sull' Entity Data Model (EDM), per chi non ne ha mai sentito parlare, per gli altri saltate pure il paragrafo. L' EDM  rapprenta il cuore dell ' Entity Framework (EF), consentendovi di "rappresentare" il dominio applicativo della vostra applicazione. L'insieme delle classi che ne scaturiscono non sono necessariamente legate a come è fatto il vostro database in termini di tabelle etc.L' EDM è implementato attraverso un file CSDL, come descritto nella documentazione. Nella sua intimità il designer di VS, che useremo nell'esempio, crea tre file XML: il CSDL descrive appunto le entità con cui la nostra applicazione vuole parlare, ad esempio un cliente ed un ordine, un secondo file SSDL descrive invece come è la struttura relazionale del nostro database, che può non necessariamente mapparsi in modo diretto sulle entità, ad esempio posso avere più tabelle che rappresentano sul db come è fatto un customer. Un terzo e ultimo file MDL descrive invece il mapping tra le entità e le tabelle sul database. Il designer che Visual Studio 2008 ci mette a disposizione crea un file .edmx, che al suo interno è fatto appunto dai tre file XML. Ok, scusate la brevità, ma potete leggere un'introduzione a EF e EDM a questo link.

    Nella figura seguente aggiungiamo quindi un nuovo item  e seguendo il wizard proposto utilizzate come database il classico Northwind e per gli scopi di questo post inserite solo le tabelle Customers e Orders.

    image 

    Il risultato mostrato nel designer dell'EF sarà qualcosa del genere, in cui vedete espressa, una relazione 1-a-molti tra le entità, ad ogni entità corrisponde una classe che poi useremo nell'applicazione. Infatti il designer creerà delle classi, oggetti .NET, che useremo per scrivere il codice e una classe NorthwindEntities che serve a EF e che sarà il nostro entry-point per poter lavorare con EF.

    image 

    Ora vogliamo esporre un servizio WCF con un semplice metodo che restituisca l'elenco dei client e dei relativi ordini, per fare questo per prima cosa modifichiamo il file IService1 creato in automatico quando abbiamo aggiunto il progetto WCF, come in figura:

    image

    Nella figura vedete che ho aggiunto il namespace NorthwindModel, che mi è stato creato quando ho usato il designer dell' EF, quindi ho definito nell'interfaccia un unico metodo che restituisce l'elenco di customers, il numero massimo è controllato dal parametro del metodo. Il metodo ha intenzione di restituire l'elenco di clienti e relativi ordini all'applicazione client che invocherà il servizio. Implementiamo ora il servizio  nel file service1.svc.cs usando una query LINQ to Entities. LINQ to Entities è una delle modalità di interrogazione che offre EF, potete anche usare Entity SQL in diversi scenari... questi argomenti sono fuori dallo scopo di questo post.

    image

    Nell'esempio vedete una semplice query LINQ to Entities, che espone i Customers (al massimo il numero indicato). Nella query notate la clausola Include. Questa viene usata perchè l'EF ha un meccanismo esplicito per il caricamento delle entità, possiamo vedere la query generata su database ad esempio usando il Profiler di SQL Server. Se volete saperne di più sulle strategie di caricamento dell' EF e modalità di interrogazione, leggete questo interessante articolo.

    Costruiamo l'applicazione di Test

    Bene, ora aggiungiamo una semplice console application e aggiungiamo un riferimento al servizio WCF presente nella solution, come mostrato in figura, in cui stiamo, per l'appunto, aggiungendo una Service Referece all'applicazione  console.

    image

     

    Ora scriviamo il codice necessario per mostrare l'elenco dei clienti, diciamo i primi due e i relativi ordini

    Codice scritto senza la SP1

    Quello che succede è che l'applicazione client non vede la classe Orders, poichè questa non è stata serializzata, perdiamo quindi la possibilità di navigare da un generico Customer a tutti i suoi Orders, se non esponendo gli ordini direttamente dal metodo WCF.

    Codice scritto con la SP1

    Le novità introdotte a WCF nella SP1 supportano la serializzazione del grafo delle entità generate dall'Entity Framework, quindi possiamo scrivere il seguente codice, che ci permette di fare sul client quello che volevamo senza complicare il metodo del servizio WCF.

    Ecco il codice, in cui vedete che abbiamo accesso, dato un cliente, anche alla lista degli ordini.

    image

    Il risultato è quello atteso:

    image

    Potete scaricare l'esempio di codice a questo link.

  • Pietro Brambati Blog

    Mix Essentials: disponibili le sessioni

    • 1 Comments
    image

    Sono disponibili per il download le sessioni del The Next Web Now, Mix Essentials. Potete scaricaricare la mia sessione sullo sviluppo con Windows Live ai due link sotto:

    Windows Live - parte I

    Windows Live - parte II

    Se siete interessati ad approfondire l'argomento vi annuncio in anteprima che stiamo lavornado, insieme a Davide Vernole, Microsoft MVP, ad un tutorial su Windows Live, che sarà a breve disponibile, un po' di pazienza ...

    Sono disponibili anche tutte le altre sessioni sullo sviluppo con Silverlight 2 , Silverlight per mobile e la keynote tecnica:

    Ecco i link diretti:

  • Gabriele: Introducing The Next Web: news from MIX08
  • Giuseppe: Costruire Rich Internet Applications con Microsoft Silverlight 2 (Parte 1, Parte 2, Parte 3)
  • Giorgio: Creare applicazioni vettoriali per dispositivi mobili con Silverlight for Mobile
  • Happy Coding

  • Pietro Brambati Blog

    PHP Editor : Microsoft Expression Web 2

    • 1 Comments

    Tra le novità di Microsoft Expression Web 2, da poco rilasciato, c'è il supporto per PHP. Potete leggere un articolo completo sulle novità a questo link. Nell'articolo trovate utili informazioni su come configurare il run-time PHP per lo sviluppo con Expression Web 2.

    In sintesi qualche snap-shot sulle funzionalità:

    PHP Snippet

    image

    Design View

    Consente di vedere la preview della pagina che contiene codice HTML/CSS e PHP, compresa la preview delle pagine inserite via php include: nella figura la pagina menu.php inserita nella pagina principale usando lo script include, viene visualizzata nelle finestra di preview sottostante.

    image

    Autocompletamento

    image

    Developer Server

    Per testare un'applicazione PHP direttamente usando Expression Web, usando comunque il run-time PHP. Nell'immagine la preview della pagina viene lanciata premendo F12 da Expression Web 2 e gira in un processo apposito lanciato dall' IDE su una porta generata dinamicamente.

    image

    Editor CSS/HTML integrato

    Chi usa PHP per lo sviluppo di applicazioni web troverà sicuramente vantaggio nel supporto avanzato per i CSS e la loro preview direttamente nell' IDE.

    image

    Conclusione

    Se volete provare con mano le novità, potete scaricare una versione trial di Expression Web 2.

  • Pietro Brambati Blog

    La mia prima volta ... in TV

    • 4 Comments
    IMAGE_103

    Oggi in effetti ho avuto una giornata un po' particolare, sicuramente diversa dal solito. Sono infatti stato intervistato in televisione per la trasmissione MyTech di Class Life, che va in onda su Sky e sul digitale terrestre.

    Ammetto è stata un'esperienza nuova e sicuramente emozionante, al contempo divertente, e sebbene sia abituato a parle in pubblico anche difronte a molte persone, abbia fatto un po' di interviste su internet  registrare qui in Microsoft, una trasmissione televisiva è sicuramente un'esperienza diversa.

    La prima cosa di cui sono rimasto colpito è l' "angolo" nel quale Davide Fumagalli mi ha intervistato, si trovava in fatti all'interno di una redazione giornalistica e quindi abbiamo registrato mentre altri lavoravano ... spero di non aver dato troppo fastidio. Problemi: sicuramente parlare di fronte ad una videocamera non è facilissimo, ma ammetto la sgradevole sensazione che si prova quando registro un webcast è sicuramente peggio. Il format mi è piaciuto molto: un mix di domande, risposte e servizi mandati in onda e da commentare; sicuramente diverso dalle mie solite presentazioni in cui alterno slide  e demo.

    Grazie all'aiuto di Luciano che mi ha accompagnato, sono riuscito a scattare questa frugale foto, subito dopo la registrazione.

    Ora mi rimane un unico dubbio: ma sarò venuto bene in tv? Ma devo aspettare di vedermi...

    Se volete seguire la trasmissione vi farò sapere quando andrà in onda ... e se volete farmi sapere cosa ne pensate sono qui. Forse sarà anche scaricabile ... ok aggiornerò il blog, nel caso

    Ciao

    -Pietro

  • Pietro Brambati Blog

    .NET Framework 3.5 SP1 Client Profile (beta)

    • 2 Comments

    Cioe?

    Con la beta 1 della SP1 di .NET 3.5 arriva una nuova importante modalità di installazione del .NET Framework. Un sottoinsieme delle librerie di .NET 3.5 SP1 saranno pacchettizzate per offrire le funzionalità necessarie alle sole applicazioni client. Inoltre un nuovo bootstrapper  più leggero (circa 200KB) migliorerà le performance in fase di installazione.

    Perchè una versione Client di .NET  ?

    Con la maturità e complettezza delle funzionalità di .NET 3.5 la dimensione del framework è diventata ormai importante. Per chi sviluppa applicazioni client si apre quindi una nuova possibilità: usare una versione ridotta di .NET FX 3.5 pensata appunto per le sole applicazioni client.

    La versione client di .NET è composta da un sottoinsieme, che occupa circa 26 MB, degli assembly del full-net framework: le librerie sono le stesse, non serve quindi ricompilare un'applicazione pacchettizzata per .NET client profile per farla girare sulla versione full. Le componenti di massima incluse sono:

    • CLR
    • WinForms
    • ClickOnce
    • WPF e WCF

    Scenari di installazione del .NET Framework

    Il nuovo bootstrapper è in grado di gestire scenari di upgrade, ad esempio se ho una macchina con installato già .NET 3.0, verranno scaricati solo i file di update per la versione 3.5 SP1 del framework e le relative fix per la versione 2.0 e 3.0 del framework.

    Supporto in Visual Studio 2008

    VS 2008 già supporta la possibilità di scegliere il framework di riferimento per creare un' applicazione, con la nota funzionalità detta di multi-targeting con cui posso decidere se sviluppare per .NET 2.0, .NET 3.0 o .NET 3.5. Ora una proprietà di progetto, esposta tramite un check-box abiliterà il supporto per l'uso del Client Framework, come si vede in figura:

    clip_image002

    In caso useremo API o metteremo reference a dll non presenti nella versione client del Framework riceveremo un warning a compile-time. Le applicazioni così realizzate verrano inoltre marcate nel manifest con un opportuno flag che permetterà al run-time in esecuzione di sapere se l'applicazione è in grado di girare correttamente. Se si cerca di far girare un'applicazione che richiede il full-framework, il client profile avvertirà quindi l'utente di scaricare la versione completa.

    Conclusione

    La nuova SP1 di .NET 3.5 (rilasciata oggi in beta 1) e Visual Studio 2008 contiene molte altre novità, potete partire da questo post per farvi un'idea.

    Visual Studio 2008 SP1 Beta Documentation

  • Page 1 of 1 (8 items)