free hit counter
December, 2007 - Pietro Brambati Blog - Site Home - MSDN Blogs

Pietro Brambati Blog

Developer's stories

December, 2007

  • Pietro Brambati Blog

    Buone Feste ....

    • 1 Comments

    image

    Quel burlone di  Mario. Cliccate per vedere il video.

    Buon Natale.

  • Pietro Brambati Blog

    Ferie e viaggi....

    • 1 Comments

    La seconda settimana di gennaio ho in programma un po' di eventi community a cui parteciperò .... sono molto vicini tra loro e dovrò fare un po' di chilometri in macchina :-(.

    Entrambi gli eventi sono rivolti allo sviluppo di applicazioni per il web, ma in posti diversi.

    15 Gennaio - Future Web Conference

     image

    La Future Web Conferenze si terrà all' Aquila, la conferenza è organizzata in collaborazione con ASPItalia. Per iscrivervi (l'iscrizione è gratuita) cliccate qui.

    17 Gennaio - ONE-Day Web

    image

    ONE-Day Web si terrà al Novotel di Venezia-Mestre, la conferenza è organizzata in collaborazione con XeDotNet. Per iscrivervi (l'iscrizione è gratuita) cliccate qui.

    Perchè partecipare ad almeno uno dei due eventi ?

    Per i gadget, ovviamente :-) almeno fino ad esaurimento scorte, un bel CD con tanto materiale per impare ad usare Silverlight, i tool della famiglia Expression, ASP.NET AJAX ...

     

    Non so quanti ne riuscirò a portare però ....

    Prima mi servono un po' di ferie e quindi la prossima settimana me andrò qualche giorno in montagna.

    Non mi rimane che augurare a tutti un Buon Natale e Felice Anno Nuovo.

    -Pietro

  • Pietro Brambati Blog

    Come mostrare la vostra 'presenza' on-line sul vostro sito.

    • 9 Comments

    Cioè?

    Riprendo il post di Giuseppe Guerrasio sull'argomento e lo applico al mio blog.

    Windows Live mette a disposizione una vera e propria piattaforma applicativa per noi developer. Un esempio è il Messenger, ormai da tutti utilizzano per comunicare con amici, colleghi etc. Come developer sono sempre stato più interessato a come utilizzare queste tecnologie per scrivere codice.

    Quindi vorrei inserire nel mio blog un' immagine che faccia capiere a chi lo vistita che io sono on-line ed eventualmente comunicare con me, anche se non è tra i miei contatti del Messenger!

    1) Abilito il mio Messenger ad essere contattato da utenti anonimi

    image La prima cosa da fare è abilitare il proprio account Windows Live ID ad essere contattato da utenti anonimi. Seguite il link, che vi porta alla pagina web per le impostazioni del vostro Messenger, quindi fleggate il check-box che abilita i siti web a vedere il vostro stato (on-line, off-line, busy...) del Messenger, quindi cliccate su Save.

    Attenzione: impostando quel flag, siete visibili anche da persone che non fanno parte dei vostri contatti Messenger, quindi se non volete essere contattati in questo modo non impostate questo flag. Ad ogni modo se volete solo fare una prova potete abilitarlo per un periodo di tempo limitato e poi disabilitarlo.

    2) Creo un iframe con Windows Live da inserire nel mio blog

    image Cliccando ora su "Create HTML" la schermata vi produce il codice HTML e JavaScript contenuto in un iframe che serve da inserire nel votro sito (nel mio caso nel mio blog). Io ho scelto di inserire solo l'immagine con il mio stato, ma potrei anche inserire un template di codice HTML che assomiglia alla finestra del messenger, ma senza la lista dei votri contatti, che non verranno quindi visualizzati. Potete anche segliere il colore di sfondo, blu nel mio caso.

     

     

     

     

    imageIl codice dell'iframe da inserire nel mio caso è il seguente (se ne vede solo una parte).

    La costruzione di questo codice si basa sulle Windows Live Presence API, che come il nome suggerisce sono delle API basate su protocollo Http che permettono di mostrare la nostra presenza o meno su internet, ma anche altro. Qui avete il link alla documentazione. La nostra presenza viene ritornata o tramite un'immagine o tramite del codice codificato usando JSON (JavaScript Object Notation): il formato della chiamata che viene fatta alle Presence API è il seguente.

    http://messenger.services.live.com/users/[ID]/[resource]/[?queryparameters]

    dove l'ID, cancellato in figura, è un ID che rappresenta l'utente di cui si vuole verificare la presenza.In resource è possibile richiedere che la presenza dell'utente venga restituita in formato JSON o venga restituita un'immagine. Se viene usato il parametro cb, che non è visibile in figura, il JSON resituito viene passato alla funzione di callback indicata dopo il parametro stesso, che nel nostro caso è la funzione contenuta nel file javascript referenziato in src del tag script in alto (PresenceButton.js). Se volete tutti i dettagli di come è possibile usare le Presence API, ecco qui.

    Il codice generato funziona com IE 6 e 7, Firefox 1.5 e 2 su Windows e MAC.

    3) Aggiungo il tutto al mio blog

    image Fatto questo aggiungo nelle news del mio blog l'iframe generato. Se cliccate sul bottone, vi si apre il messenger per parlare con me ...

     

     

     

     

     

     

    4) Comunico con me stesso !

    A questo punto si apre una nuova finestra del browser che contiente il Messenger per comunicare con me. In questo momento sto simulando la chiamata di un utente anonimo dalla mia macchina al mio messenger sulla stessa macchina.

    image

    Cliccate su Begin a Conversation, scegliete uno username e dopo aver inserito un C.A.P.T.C.H.A come in figura potete inviare un messaggio al mio messenger

    image

    In quest'ultima immagine vedete il Messenger dell'utente anonimo (aperto in una schermata del browser) e il mio Messenger vero e proprio che riceve il messaggio dell'utente anonimo!

    image

    Conclusione

    Le nuove API di Windows Live per il rilevamento della presenza on-line consentono di poter usare strumenti di comunicazione diffusi come Live Messenger e integare le informazioni sulla presenza nelle applicazioni web.

    Con il controllo IM è anche possibile invitare utenti a condividere il loro stato su un sito web. Trovate un esempio dell'uso, in questa quick app che potete provare live qui e di cui potete scaricare i codici sorgenti qui.

    -Pietro

  • Pietro Brambati Blog

    Windows Live Quick Applications (beta) - Show.Video - Parte I

    • 1 Comments

    Negli ultimi post mi sono occupato dei servizi offerti da Windows Live per realizzare applicazioni. In breve:

    Riprendendo l'esempio che stavo portando avanti penso possa essere interessante segnalarvi una delle Quick Applications. Quest'ultime sono applicazioni di esempio sui servizi di Windows Live, che potete scaricare gratuitamente con tutti i codici sorgenti. L'elenco completo delle Quick Apps lo potete trovare qui. Io ne ho provata una interessante ...

    L'applicazione Video.Show

    Questo è un esempio di applicazione web che usa ASP.NET AJAX, Silverlight, Silverlight Streaming e Expression Encoder. Supponiamo di voler realizzare un'applicazione web che possa essere utilizzata per visualizzare video uplodati da utenti, questo è lo scenario per cui è stata pensata Video.Show: i video verranno automaticamente codificati usando Expression Encoder, dietro le quinte quindi, in modo che possano essere poi uplodati sul servizio di Silverlight Streaming per l'hosting, anche questo fatto dietro le quinte da Video.Show. L'applicazione web userà Silverlight Streaming come piattaforma per fare l'hosting dei video e Silverlight come plug-in per visualizzarli.

    1) Download dell'applicazione

    image Andare su Codeplex per vedere l'elenco delle Quick Apps, quindi scaricare Video.Show e installare l'applicazione.

    2) Configurazione

    Aprite il progetto con Visual Studio 2008, dobbiamo configuare qualche parametro che è configurabile nel web.config

    • AccountID: è l'ID del servizio Silverlight Streaming.
    • AccountKey: la chiave usata dal servizio Silverlight Streaming.
    • MediaEncoderPath: è il path a dove si trova installato Expression Encoder

    3) Proviamo l'applicazione

    imagePremiamo F5, a questo punto parte Video.Show. Non c'è bisogno di installarla in IIS per fare qualche prova, funziona benissimo anche utilizzando l' ASP.NET Development Server di Visual Studio.

    Premendo su "Sign Up", appare una finestra modale con cui è possibile creare un nuovo utente. Digitate lo username che userete poi per loggarvi, l'indirizzo email e la password.

     

    image Una volta loggati sarà possibile uplodare uno dei votri video, con un limite di 19,5 MB, legato al fatto che il servizio di Silverlight Streaming, attualmente in alpha consente di uplodare grauitamente video di una dimensione limitata. Oltre al nome possiamo associare al video anche dei tag per la successiva ricerca dei filmati all'interno dell'applicazione.

    Quello che succede dietro le quinte è che viene invocato Expression Encoder che effettuerà la codifica del nostro video e quindi l'upload su Silverlight Streaming, usando le impostazioni precedentemete impostate.

    imageIl processo richiederà qualche minuto, sia per la codifica che per il relativo upload su Silverlight Streaming. Quando il processo sarà completato avremo la possibilità di vedere il filmato dall'applicazione, magari ricercandolo utilizzando gli opportuni tag di ricerca.

    Nella finestra con l'elenco dei video uplodati avremo la possibilità di vedere il video in streaming, direttamente nella finestra di preview in piccolo. Cliccando sul video vedremo il video in formato imagemaggiore (tenete presente che potete comunque  mandare a pieno schermo il video facendo doppio click sullo stesso). Se andate però nella pagina di dettaglio potete legare al video anche dei commenti che verranno salvati sul database distriuito con l'applicazione di esempio.

    L'applicazione consente anche di gestire e vedere gli utenti che fanno parte della community virtuale, anch'essi salvati nel database locale.

    Conclusione

    Le Windows Live Quick Apps, attualmente in beta, rappresentano degli esempi di applicazioni già fatte e scaricabili gratuitamente da CodePlex. Con queste applicazioni, di cui oggi vi ho riportato Video.Show, potete vedere esempi di integrazione di tecnologie per lo sviluppo di applicazioni web e soprattutto l'integrazione con alcuni servizi offerti dalla piattaforma Windows Live.

    Nella prossima puntata vedremo meglio come funziona l'applicazione dal punto di vista del codice, interessante anche perchè utilizza LINQ per realizzare lo strato di accesso ai dati.

    -Pietro

  • Pietro Brambati Blog

    Windows Live Tools for Microsoft Visual Studio - Parte I

    • 10 Comments

    Nel mio post precedente ho mostrato come sia più semplice
    pubblicare video su Silverlight Streaming grazie al nuovo plug-in scaricabile gratuitamente per Expression Encoder.

    Come utilizzare il video pubblicato in streaming da una nostra applicazione ASP.NET ?

    Windows Live vi permette di farlo in maniere molto semplice: mette infatti a disposizione dei tool (Windows Live Tools for Microsoft Visual Studio è il nome corretto) per Visual Studio 2008 che potete scaricare gratuitamente qui.(Questi tool sono attualmente in CTP).

    imageUna volta scaricati e installati, aprite Visual Studio 2008, quindi New Web Site e trovate un nuovo template: ASP.NET Windows Live Web Site.

    Questo template mette a disposizione un nuovo progetto e una serie di nuovi controlli ASP.NET per realizzare applicazioni usando la piattaforma per sviluppatori Windows Live.

    image

    Nell'immagine a fianco notate la lista dei controlli che consentono di utilizzare alcuni, ad oggi, dei servizi Window Live.  Nel post di oggi mi occuperò di solo uno di questi controlli, quello che va sotto il nome di SilverlightStreamingMedia.

    Facendo drag-and drop del controllo sulla pagina della form, avete la possibilità di configurare facilmente lo skin che andrà a costituire il player all'interno della vostra applicazione, ma soprattuto un facile wizard vi aiuterà ad accedere al  vostro video pubblicato su Silverlight Streaming, come segue:

    image

    Cliccando sul bottone con i tre puntini  (...), come evidenziato in figura, quello che succede è che viene aperta la finestra seguente in cui dopo aver inserito le apposite chiavi che vi vengono generate quando create il vostro account su Silverlight Streaming, potete navigare fino a trovare il video già pubblicato che volete lanciare in streaming.

    image

    A questo punto la vostra applicazione è "bella e pronta", premete F5 per far partire Visual Studio e godetevi il filmato che viene erogato in streaming da Silverlight Streaming e visualizzato da Silverlight nella vostra applicazione web.

    image

    Nel mio calso sto lanciando lanciando l'applicazione dal mio computer in locale, usando l' ASP.NET developer Server, quindi senza necessariamente dover pubblicare l'applicazione su IIS o su un server web esterno, e al contempo sto vedendo il filmato erogato in streaming!

    Quello che è sucesso dopo l'operazione fatta in precedenza è che è stato aggiunto un po' di codice per la gestione del controllo ASP.NET ed inoltre nel file web.config dell'applicazione trovate configurate come parametri le due chiavi usate per accedere al servizio di Windows Live Streaming. In ultimo due reference nella forlder bin del progetto.

    Nella figura seguente trovare il codice generato nel mio progetto(nell'immagine e parzialemente tagliato, ma è giusto per dare un'idea):

    image 

    Conclusioni

    I Windows Live Tools for Microsoft Visual Studio semplificano nel mio esempio la configurazione del palyer per Silverlight e la configurazione verso Silverlight Streaming.

    Se volete vedere e approfondire i servizi alle applicazioni offerti da Windows Live ecco un buon punto da cui partire dev.live.com.

    Ciao

    -Pietro

  • Pietro Brambati Blog

    Silverlight Streaming : ancora più facile pubblicare video

    • 4 Comments

    Qualche tempo fa vi ho parlato del servizio di Windows Live noto come Silverlight Streaming. Tale servizio è attualmente in alpha, ma dà la possibilità di fare hosting di video. Nel mio post precedente, ho usato Expression Encoder per fare la codifica video, poi ho impaccettato il video in un file zip, creando un file manifest.xml necessario per la pubblicazione su Silverlight Streaming. Di recente è stato rilasciato un plug-in per Expression Encoder, che non poteva chiamarsi altro che Silverlight Streaming Publishing Plug-In for Expression Encoder e che semplifica la parte di pubblicazione, vediamo come.

    Silverlight Streaming (in alpha) vi consente di uplodare gratuitamente file video che possono essere consumati in streaming. Attualmente il limite delle applicazioni che potete uplodare è di circa 22MB, che a 300Kbs sono circa un filmato di 10 minuti.

    Per poter utilizzare questo servizio occorre per prima cosa avere un account Windows Live ID, account che potete comunque utilizzare per accedere agli altri servizi Windows Live.

    1) Codifica video con Expression Encoder

    Apriamo Microsoft Expression Encoder e sceglaimo un file da codificare (File->Import ..), quindi come fatto in precedenza scegliamo il profilo (cioè la modalità di codifica da usare).

    step1_thumb1 step2_thumb2

    Preme Encode per la codifica.

    2) Scelta del template

    image Scegliamo il template che verrà usato da Sillverlight per la visualizzazione, cioà i file XAML, Javascript che servono per visualizzare il player. In Expression Encoder si può scegliere tra una nutrita lista, nella sezione Job Output.

     

     

     

     

    3) Pubblicazione

    Dopo aver installato il plug-in, questa volta posso andare nella sezione di output, quindi selezionare Publish, che prima non esisteva. Nella figura è possibile intravedere la key e l'account necessari per la pubblicazione.

    image image_thumb[2] 

    Queste chiavi sono quelle che potete avere andando direttamente su Silverlight Streaming, nella sezione Manage Account.

    imageDopo la codica sarà possibile fare l'upload, aspettando il tempo necessario al caricamento, sarà possibile andare sulla pagine di test legata al proprio account di Silverlight Streaming  per vedere il risulato.

    image

    Potete anche fare taglia e copia del codice (un Iframe) da inserire nelle vostre applicazioni web per visualizzare il risulato.

     

     

    Concludendo

    Il nuovo plug-in per Expression Encoder, semplifica dunque la parte di pubblicazione di un video sul servio di Windows Live di Silverlight Streaming.

    Se volete avere una panoramica sei servizi Windows Live per gli sviluppatori potete dare un occhio a questo post di Giuseppe sul blog del team MSDN italia.

    Ciao

    -Pietro

  • Pietro Brambati Blog

    IIS 7 - Web Platform Day

    • 1 Comments

    Ieri in Microsoft si è svolto il Web Platform Day, evento dedicato interamente alle novità di IIS 7, ecco il materiale delle mie sessioni. Come vi dicevo potete trovare molti esempi e documentazione sul sito community di IIS 7.

    Le slide delle mie sessioni:

    1 - Estendere IIS 7

    2 - Servizi alle applicazioni

    3 - Troubleshooting -codice di esempio

    Tools usati:

    Fiddler

    WCAT(x86)

    Estendibilità di IIS 7

    IIS 7 offre molto agli sviluppatori che vogliono estenderne le funzionalità. L'architettura di IIS 7 è completamnete modulare e ogni modulo in IIS 7 è fatto sfruttando API pubbliche. Questo vuol dire almeno due cose: la prima che ogni modulo di IIS 7 può essere rimosso o aggiunto solo se effettivamente necessario: non mi serve il modulo che implementa l'autenticazione Basic, bene lo rimuovo. La seconda è che posso scrivere un modulo sfruttando queste API pubbliche, cioè le stesse usate dal team di sviluppo per realizzare un modulo di IIS7.

    Moduli in .NET

    Ad esempio posso fare un modulo scritto in .NET per la Basic Authentication. In sostanza possiamo realizzare un modulo in C# implementando l'interfaccia IHttpModule, come si faceva con ASP.NET, ma avendo a disposizione più eventi e più collezioni che possiamo sfruttare per fare ciò che con un semplice modulo in ASP.NET non era possibile: ad esempio implementare un modulo di autenticazione custom che sostituisca quello della basic auth di IIS. Qui trovate il codice di esempio e le istruzioni passo-passo dell'esempio di ieri. Chi come me si è spesso trovato nella situazione di dover implementare un ISAPI filter in C++ lo apprezzerà particolarmente :-)

    Schema di un generico Modulo che si registra per due venti della pipeline di IIS:

    image

    Dove si configura nella nuova IIS Manager:

    image

    Estensione della configurazione di IIS7 e Handler in .NET

    Non solo moduli (che intervengono ad ogni richiesta http) ma possiamo sviluppare anche handler in .NET (che intervengono per richieste a specifiche estensioni, ad esempio tutte le volte che chiamo un'immagine jpg). Nell'esempio della sessione di ieri ho fatto vedere un po' di cose:

    • come estendere il sistema di configurazione di IIS, aggiungendo un file xml alla directory degli schemi di IIS 7, dove trovate anche come è definito il file applicationHost.Config. Questo schema serve a definire delle proprietà che saranno poi configurabili nel file web.config o nel file applicationHost.config e che verranno lette dall' handler dell'esempio.
    • L'handler dell'esempio usa le impostazioni lette dal file web.config per configurarsi. Per leggere tali informazioni bisogna usare la dll Microsoft.Web.Administration.
    • L'handler interviene per ogni richiesta fatta ad un' immagine jpeg, la processa aggiungendo un testo in sovraimpressione e la restituisce al client. Il testo viene appunto letto dal file web.config di configurazione e rispecchia lo schema definito in precedenza.

    Esempio di schema file per la modifica della configurazione

    image

    Abilito nel file applicationHost.config lo schema definito:

    image

    Questo permette di avere la possibilità di scrivere un file web.config in cui posso aggiungere il tag xml imageCopyright ( nell'esempio avevo già anche configurato l'handler)

    image

    La struttura del codice dell' handler è la seguente:

    image

    In giallo trovate ciò che serve per fare il telaio di un handler, mentre in verde un esempio dell'uso delle API per accedere alla configurazione estesa di IIS.

    Estensione della UI della nuova IIS 7 Manager

    Sarebbe bello a questo punto poter modificare le impostazioni della configurazione (attributi enable, message, color) invece che andando a modificare a mano il file web.config facendolo dalla console di IIS 7. Questo è possibile creando una dll .NET da copaire in GAC e da configurare opportunamente nel file administration.config. Questo è il file che la IIS manger legge quando viene caricata. Dopo questa operazione la nostra console si prensenterà come in figura

    image image

    A  questo link trovate descritto in modo molto dettagliato l'esempio completo, che parte dall'estensione dello schema di IIS7, la creazione dell' Handler e quindi l'estensionde della UI di IIS Manger.

     

    Servizi alle applicazioni

    In questa sessione abbiamo visto come utilizzare servizi che prima erano disponibili solo per ASP.NET (Form Autentication, Url Autorization e Output Cache) con contenuti di diverso genere: dalle pagine statitche perfino ad applicazioni PHP. La procedura per utilizzare questi servizi può essere fatta dalla console di IIS, accedendo alle relative sezioni:

    image

    Rimando alla registrazione dell'evento quando sarà disponibile per vedere una demo completa.

    In particolare per le applicazioni PHP ho mostrato come configurare FastCGI per IIS 7.Molte delle applicazioni fatte per IIS sfuttano a fondo il modello multi-thread offerto dal IIS stesso.  Anche se PHP supporta il multi-thread, molte delle estensioni a PHP non sono thread-safe. Questo portava  in passato a dover usare CGI come modello per far girare le applicazioni in modo affidabile su Windows, che però comporata un evidente degrado in termini di performance. FastGCI salva "capra e cavoli" consentendo di avere sia performance che affidabilità. Per maggiori dettagli su CGI/ISAPI e FastCGI partite da qui.

    La configurazione di Fast CGI è molto semplice basta configurare un Handler come segue:

    image

    image

     

    Troubleshooting

    La sessione che è stata tenuta da Piergiorgio, mi ha visto nella conclusione far vedere un paio di demo interessanti. Il nuovo sistema di Trace di IIS7 consente infatti di configurare delle regole per tracciare situazioni critiche e di effettuare la trace solo in quella specifica situazione, ad esempio:

    • tracciare le richieste che ci mettono più di 10 secondi ad essere processate
    • tracciare tutte le richieste che restituiscono come codice di errore 500.

    E' inoltre possibile integrare le trace delle proprie applicazioni IIS (ad esempio un modulo) e vederle integrate nella pipeline di esecuzione di IIS 7. Qui trovate un esempio descritto in modo completo. Il risultato è un file che può essere aperto con un browser che mostra tra le altre informazioni le seguenti, giusto per avere un'idea:

    image

    Concludendo

    Molto di nuovo per gli sviluppatori (e non solo) in IIS 7,spero che l'evento sia stato di utilità per tutti e a chi c'era grazie della parteciapzione. Se volete potete scaricare la RC1 di Windows Server 2008 per fare qualche prova con IIS 7, certo se avete Windows Vista lo potete già fare :-).

    Ciao

    -Pietro

  • Pietro Brambati Blog

    Evento di lancio DotNetUmbria

    • 4 Comments

    DotNetUmbriaLancioSi è da poche ore concluso l'evento di lancio della neonata community DotNetUmbria. Nonostante questa mattina mi sia alzato alle 6, abbia viaggiato per più di 5 ore, passato l'intero pomeriggio a parlare di tecnologia e completato la serata con una splendida cena in una trattoria della zona, non ho resitito a scrivere questo post prima di andare a dormire.

    L'evento che spero vivamente sia stato ben apprezzato da tutti i partecipanti, sono certo possa essere il primo di una serie di incontri con l'obbiettivo sia di impare cose nuove sulle tecnologie Microsoft e sia una buona occasione per divertisi e conoscersi.

    Ecco le slide della mia sessione iniziale sul .NET Framework 3.5 e per chi si è perso la sessione "fuori programma" su LINQ e le novità dei linguaggi .NET può vedere una versione registrata del mio webcast sull'argomento.

    Slide .NET Framework 3.5 (formato pptx (1.4MB), formato ppt (6MB))

    Sessione LINQ -> registrazione webcast

    Appena possibile metteremo il materiale anche sul portale di DotNetUmbria insieme all'applicazione di Andrea e Paolo, promotori e "padri" di questa commnuity.

    Alla prossima

    -Pietro

Page 1 of 1 (8 items)