Oggi inizia a Milano, nella nostra sede di Segrate, il REMIX: la riedizione dell'evento tenutosi qualche settimana fa a Las Vegas e rivolto alle novità tecnologiche per il Web.
L'evento è rivolto sia a Designer che a sviluppatori, molti i temi trattati dai colleghi americani: Silverlight, WPF, Windows Live, Microsoft Expression Studio, le novità su ASP.NET e Visual Studio e senza dimenticare lo sviluppo con AJAX e di Gadget per Windows Vista.
Vi consiglio di dare un occhiata al blog "live" che verrà aggiornato in continuo anche nei prossimi giorni e che trovate qui.
Non perdetevi quindi la possibilità di rimanere aggiornati sulle tecnologie Microsoft per il Web.
-Pietro
Sì forse non molti di voi ci crederanno, ma venerdì 18 maggio ho partecipato al PHP Day, svoltosi a Verona.
E' stata un'esperienza interessante, non solo dal punto di vista tecnico, ma anche un interessante momento per lo scambio di opinioni con le persone della communità PHP.
Nella foto mi vedete alle prese durante la mia sessione, alla quale hanno assisto circa 150 persone e altre 90, credo, hanno avuto modo di seguire l'intero evento da internet , dato che è stato trasmesso in streaming.
Trovate qui il link al video della mia sessione, scusate mi sono mosso forse un po' troppo per le capacità di acquisizione usate, inoltre dato che lo schermo era inquadrato di 3/4 non sono completamente visibili le demo; ma ho in previsione di approfondire aluni argomenti trattati tramite una serie di webcast pianificati per giugno. Date un occhio al sito MSDN Italia, nella sezione webcast.
Nel mio intervento ho toccato diversi argomenti, in particoalre:
Le slide sono disponibili qui.
Prossimamente verrà arricchita dagli organizzatori anche la collezione di foto raccolte durante l'evento e che potete vedere qui.
Ho avuto l'onore di partecipare alla seconda edizione dell'evento "Real Code Day", svotosi nella bellissima cornice della città di Firenze.
L'argomento che ho portato nella mia presentazione è stat Windows CardSpace, in particolare ho seguito quello che ritengo essere uno scenario tipico di utilizzo CardSpace nelle applicazioni già esistenti. Quello cioè di fornire un metodo alternativo per l'utente di autenticarsi ad un sito web.
Ma andiamo con ordine. WCS è una delle componenti del .NET Framework che si occupa della gestione delle identità digitali, vuole offrire all'utente un modo comodo e sicuro di autenticarsi ad un sito web, ma non solo. Infatti WCS può essere usato come meccanismo di autenticazione anche in presenza di applicazioni come Web Services ed applicazioni Windows Communication Foundation. Nel mio intervento mi sono però concentrato sulle applicazioni web.
La prima cosa che serve per sviluppare con WCS è avere configurato IIS con un apposito certificato. La pagina che abilita l'Identity Selector, quel pannello da cui si scelgono le carte, deve essere infatti richiesta via HTTPS; perchè CS non solo vuole dare visibilità all'utente del certificato del server, ma anche ne utilizza la chiave pubblica per cifrare il token.
L'applicazione che deve decifrare il token di sicurezza, ricevuto da WCS, deve quindi avere i diritti necessari per accedere alla chiave privata associata al certificato.
Fortunatamente con IIS 7 in Windows Vista e Longhorn Server il processo di creazione di un certificato (SSL) di test e la configurazione dei permessi per la chiave privata è molto semplice. Dalla console di IIS 7 è possibile creare un certificato di test, qunidi usando l'MMC per la gestione dei certificati (della macchina) è possibile andare ad impostare i permessi sulla chiave privata, relativa all'utente che dovrà accedervi; nel mio caso l'utente "Servizio di Rete" che fa girare l'application pool. Nella figura seguente si dovrebbe capire come generare il certificato:
Aprendo invece la MMC con lo snap-in per la configgurazione dei certificati, selezionando Certificate(Local Computer)->Personal->Certificates, selezionare il certificato appena creato, quindi All Task-> Manage Provate Key ... e quindi assegnare i permessi in lettura per l'utente desiderato.
Qui sotto trovate le poche slides usate, era un evento, solo codice!
Spero sia utile la sezione link con qualche utile riferimento, anche per chi non conosce WCS e vuole iniziare a lavorarci. Trovate anche il codice usato durante la sessione.
Slides
Codice
Scarichiamo :
Con Expression Media Encoder è possibile importare video e renderli disponibili per il web in un formato adatto a Microsoft Silverlight. ASP.NET Futures, mi sono serviti per vedere funzionare il mio filmato in una applicazione ASP.NET, che supporti appunto AJAX e Silverlight. In particolare ASP.NET Futures contiene oltre le Microsoft AJAX Library, le estensioni ad ASP.NET delle prossime versioni di ASP.NET e richiede che venga installato il .NET Framework 3.5, in Beta1, quest'ultimo verrà richiesto di scaricare durante la fase di installazione se non già presente. L'instazzione delle ASP.NET Futures è necessario solo se si vuole realizzare un progetto web ASP.NET con il filmato realizzato.
Per prima cosa importiamo un video: File-> Import ... nel mio caso ho preso uno dei sample video che avevo sulla mia macchina Vista. Nel manuale trovate la lista completa dei formati audio/video supportati ed eventuali codec necessari non presenti.
Ecco come appare il Media Encoder dopo l'import
Ora possiamo fare delle operazioni di editing del viveo importato, ad esempio crop, trim. Nel mio caso ho fatto una semplice operazione di trim spostando gli indicatori di inizio e fine del filmato, come si vede nella figura seguente:
Ora possiamo passare alla parte relativa alla codifica del filmato. Perchè? In questo modo ottimizzeremo il filmato per essere fruibile usando Silvelight. Quindi scegliamo il profilo che meglio si adatta alle nostre esigenze, che definirà il bit rate e la dimensione del video. Interessante a questo punto la possibilità di comparare, in modo visuale, la codifica dei due filmati: quello originale e quello nuovo, secondo il profilo di codifica scelto. Premendo infatti il tasto , facilmente rintracciabile, il pannello con la preview del filmato si sdoppia in due parti per il confronto:
Nel pannello di Output sotto Job Ouput è possibile scegliere il template da usare, cioè la "cornice" che il nostro filmato avrà dopo la codifica. Ad esempio, nelle immagini seguenti sono usati due template differenti (Pilot e Classic):
Ora premiamo Encode, tasto ben in vista, per la codifica. Alla fine della codifica si aprirà il browser con un file html che contiene il nostro filmato.
Se apriamo la directory che contiene il file html dell'esempio ci accorgiamo che è già predisposto un progetto ASP.NET, apriamolo usando ad esempio Visual Web Developer Express Edition, dopo aver installato le componenti aggiuntive che dicevo all'inizio ed ecco fatto un semplice esempio già fatto !
Se apriamo il progetto con Visual Studio noteremo innanzi tutto i nuovi controlli aggiunti dalle ASP.NET Futures: quelli relativi ad AJAX e quelli relativi alle nuove estensioni.
Aprendo la pagina default.aspx è possibile vedere quali controlli sono stati utilizzati per realizzare la semplice pagina di esempio: il noto <scriptManager .../> con cui viene abilitato il partial-rendering della pagina, ovvero ciò che è alla base del comportamento asincrono della pagina web. Notiamo inoltre il controllo <asp:Media ..../> con cui è possibile inserire il contenuto multimediale nella pagina. In particolre punta ad un file xml che contiene i file da caricare: XAML, e gli scrip javascript, la size della finestra del filamato e il riferimeto al filmato stesso. Il file XAML contiene la cornice del filmato stesso: quella con il tasto play etc.
Microsoft ha da poco annunciato Silverlight. Una nuova tecnologia, precedente nota come WPF/E, per lo sviluppo di applicazioni web. Con Silverlight è possibile includere contenuti multimediali di natura diversa, offre supporto per grafica vettoriale 2D e molto altro ...
Aprite questo link per farvi un'idea .. non necessariamente con IE.
Cos'è? Da un punto di vista architetturale Silverlight è un plug-in per il browser che offre una versione "ridotta" di WPF (Windows Presentation Foundation), che però è cross-browser e cross-platform e che quindi non richiede di avere sulla macchina installato il .NET Framework 3.0 e non richiede che sia usato solo Internet Explorer come browser. Infatti è possibile utilizzare come browser anche Firefox, Safari, Opera e può funzionare sia su piattaforma Windows che MAC.
Attualmente sono disponibili due preview di Silverligh, la 1.0 (in versione Beta) e la 1.1 ( in alpha).
Silverlight 1.0
Silverlight 1.1
Con la versione 1.1 di Silverlight vengono aggiunge numerose altre funzionalità: in particolare il plug-in contiene un'implementazione del .NET Framework (CLR+BCL) e anche un DLR (Dynamic Language Runtime). Infatti è possibile sviluppare non solo usando i consueti linguaggi .NET (C#, VB), ma anche usando linguaggi dinamici come Python e Ruby.
Ecco una visione d'insieme:
Per maggiori dettagli sull'architettura, consultate questo link.
In sintesi Silverlight permette di usare in modo combinato sfruttando diverse tecnologie:
Da dove iniziare ? qui.
Sabato scorso ho avuto modo di parteciapare a UnyOnAir, un progetto ideato da Radio 24 che aiuterà gli atenei italiani a creare la propria web radio.
All'evento erano presenti ragazzi di diverse università italiane di tipo diverso, per la maggior parte, non informatici. Nel mio breve intervento non ho avuto modo di far vedere le slides con i riferimenti da cui scaricare gli strumenti che ho usato. Ecco quindi le slides che vogliono essere un punto di partenza per chi vuole incominciare a sviluppare applicazioni web.
Una delle funzionalità meno note di IIS 7 è la possibilità di usare un tipo particolare di Cache, detta Output Cache, attenzione a non confonderla con la Kernel Mode Cache.
La Output Cache funziona in user-mode (IIS worker process) e fornisce funzionalità simili alla cache di ASP.NET, ma con una importante differenza: essendo integrata in IIS 7, fornisce queste funzionalità di cache non solo alle pagine ASP.NET, ma anche a contenuti dinamici di natura diversa, come le pagine ASP e PHP.
Come funziona? Si basa sulla possibilità di riconoscere i deversi contenuti di una pagina usando la query string o gli header Http. Mi spiego meglio. Inanzitutto va ricordato che in IIS 7 possiamo avere dei file web.config per la configurazione del comportamento di IIS anche in una directory che contiene solo contenuti statici o non-ASP.NET. Immaginiamo di avere una applicazione web del tipo http://server/GetBike.asp?type=tipo1 . Il parametro type nella query string permette di distringuere quale tipo bicicletta visualizzare. Nel nostro web.config possiamo scrivere qualcosa del genere:
<add varybyquerystring="*"location="Any" duration="00:00:01" policy="CacheForTimePeriod" extension=".asp">
Questo permette di effettuare il caching della pagina asp, si noti il parametro extension, in base al variare della query string, parametro varbyquerystring. Il parametro CacheForTimePeriod definisce una delle modalità di invalidazione della cache, in questo caso per time-out.
Prima ho parlato della Kernel Mode Cache (già presente in IIS 6); la prima differenza rispetto alla precedente è che questa lavora in modalità Kernel :-). Ci sono due differenze di base rispetto a questi due tipi di cache:
Per approfondimenti ulteriori sulle modalità di uso dell' Output Cache vi consiglio di partire da qui (in inglese).