Libro Professional ASP.NET 3.5 (Su Amazon a 16$!!)

Add Comment | May 06, 2008

Una delle cose che mi piace di piu' è comperare libri su Amazon.com, perchè fornisce una guida ed uno sguardo sugli argomenti di interesse del programmatore. Normalmente uso www.TitleZ.com (costruito con ASP.NET) per seguire i titoli che voglio controllare - inoltre è in grado di generare dei report in live per mostrarmi lo stato attuale di vendita su Amazon, ad esempio in 7, 30 o 90 giorni.

Oggi ho generato il mio report e mi sono accorto che nei libri presenti nella mia lista, ad uno dei primi posti è comparso  -"Professional ASP.NET 3.5: In C# and VB" di Bill Evjen, Scott Hanselman e Devin Rader.  Nel voto di Amazon si è preso un bel  #95 (fra tutti i libri su Amazon), che significa che è stato venduto come quello di  Harry Potter (che è molto piu' noto di qualsiasi altro libro di tecnologia).

Inoltre mi è stato segnalato che per un certo periodo Amazon lo venderà ad un prezzo molto ridotto - e questo è stato uno dei motivi per cui è stato selezionato. Al posto dei normali 54 $ verrà venduto per un breve periodo solamente a 16.49 $. Non sono sicuro per quanto tempo questa promozione sarà attiva - ma se state cercando un buon libro per ASP.NET 3.5 questo è sicuramente uno di quelli da cui potete trarne vantaggio:

Il Libro  un ottimo inizio per usare ASP.NET 3.5. E' nella bestseller da quando  stato rilasciato a Marzo (e normalmente nei primi 5 di programmazione), ed ha ricevuto diverse critiche (Io personalmente ho inoltrato una critica in Amazon qualche settimana fa dando 5 stelle come voto).

Se state cercando un buon libro su ASP.NET, dovreste considerare questa vantaggiosa offerta di Amazon prima che scada (e mi scuso a priori se il prezzo cambia prima di aver letto questo post).

Spero questo serva,

Scott

P.S. Se state cercando qualche buon libro su ASP.NET 3.5 o su Visual Studio 2008 - Vi raccomando anche: C# 3.0 In a Nutshell, LINQ in Action, e Pro LINQ: Language Integrated Query in C# 2008 (che hanno entrambi un voto di 5 stelle come media).

Collegamenti del 28 Aprile: ASP.NET, ASP.NET AJAX, ASP.NET MVC, Silverlight.

Add Comment | Apr 29, 2008

Qui trovate la mia ultima serie di link series.  Inoltre controllate sempre la mia sezione ASP.NET Tips, Tricks and Tutorials page la Silverlight Tutorials page per i collegamenti piu' popolari e per le mie ultime attività.

ASP.NET

  • ASP.NET Dynamic Data Update: Il Team di ASP.NET la settimana scorsa ha rilasciato un aggiornamento per quanto riguarda le Dynamic Data. Questo aggiornamento aggiunge diverse novità comresa la URL support che utlizza le stesse regole del framework ASP.NET MVC e una migliore logica di richiesta e conferma. 

ASP.NET AJAX

  • ASP.NET AJAX UI Templates: Nikhil Kothari del Team di ASP.NET ha scritto un interessante post che spiega i passi che sta seguendo per costruire un ottimo prototipo per creare funzioni client Side AJAX su Template grafici. 

ASP.NET MVC

  • Inversion of Control, ASP.NET MVC e Unit Testing: Fredrik Kalseth ha scritto un ottimo articolo che spiega i concetti di IOC, Inversione di controllo, e come possono essere usati con ASP.NET MVC per isolare al meglio le dipendenze e migliorare i processi di unit testing.

  • Testing Action Results con ASP.NET MVC: Jeremy Skinner spiega alcune interessanti estensioni che aiutano il testing dei controller, che sono state inserite sempre nel progetto open MvcContribut.

  • MVC Membership Starter Kit - 1.2 Release: Troy Goode ha inviato un interessante articolo su alcuni aggiornamenti del suo starter kit MVC Membership Starter Kit.  Questa versione lavora con la interim ASP.NET MVC source release.

Silverlight

Spero questo serva,

Scott

Le Slide dell' Evento ASP.NET di Orlando.

Add Comment | Apr 28, 2008
Technorati Tags:

La settimana scorsa ho tenuto la conferenza ASP.NET Connections Conference in Orlando.  Vi fornisco un quadro generale di quando abbiamo detto Lunedi', e di due discussione tenutesi nella giornata. Potete scaricare gli esempi e le slides:

Sessione Generale

Le slide con i punti chiavi le trovate qui

Nella discussione ho dimostrato come fare Debug del .NET Framework. Potete apprendere di piu' nella soluzione per Visual Studio 2008 qui

Ho inoltre illustrato come usare ASP.NET Dynamic Data per la costruzione di un sito web - potete apprendere di piu' a riguardo qui.  Ho inoltre illustrato come usare il nuovo Framework ASP.NET MVC - maggiori informazioni le trovate  qui.

Infine ho illustrato anche la nuova Hard Rock Memorabilia site built con Silverlight 2.  Potete provare l' applicazione a questo indirizzo qui.  Invece potete trovare molte informazioni su Silverlight a questo indirizzo qui.

Costruire applicazioni .NET con Silverlight.

Le slides piu' la Demo di Silverlight le trovate qui.

Potete apprendere ancora su Silverlight nelle mie pagine qui.  In particolare vi consiglio di leggere i miei tutorials  qui e qui.

ASP.NET MVC

Le slide piu' la demo di ASP.NET MVC potete scaricarla  qui.

Potete inoltre dare uno sguardo alla nuova refresh di ASP.NET MVC a questo indirizzo qui.  Stephen Walther ha anche lui inserito una serie di interessanti Slides e demos della sua presentazione su ASP.NET MVC qui.

Spero questo serva,

Scott

Aggiornato il Codice Sorgente di ASP.NET MVC

Add Comment | Apr 16, 2008
Technorati Tag: ,,,

Abbiamo appena aperto un nuovo ASP.NET CodePlex Project che servirà per rendere disponibili le varie Preview (con il codice sorgente) per le prossime release ASP.NET.

Lo scorso mese lo abbiamo usato per pubblicare first drop of the ASP.NET MVC source code.Questa prima versione include il codice sorgente della ASP.NET MVC Preview 2 che abbiamo portato al MIX '8, insieme ai files per Visual Studio cosi' da consertirvi di compilare e rialsciare le vostre patch personali.

Qualche ora fa, invece, abbiamo rilasciato ... a refresh del codice sorgente di ASP.NET MVC. Questo aggiornamento non è ufficiale - intanto è un semplice aggiornamento alle modifiche che stiamo apportando al codice sorgente. La modifica ufficiale sarà rilasciato con la 'ASP.NET MVC Preview 3' fra qualche settimana dopo che avremo finito alcuni lavori (novità ed aggiunte alle attuali, migliore integrazione con VS, supporto per le versioni Express, documentazione, etc...). Se fai parte di quella serie di persone che vuole la release con tanto di documentazione, beh con la Preview 3 tutto cio' sarà disponibile. Se invece fai parte di qeulli che vogliono vedere la 'Preview della preview' allora hai la opportunità di scaricarla da CodePlex e di inviarci suggerimenti e proposte immediatamente.

Miglioramenti in questa ASP.NET MVC Source Refresh

Gli aggiornamenti di questa settimana (che potete scaricare qui) includono diverse migliorie ad ASP.NET MVC. Alcune di queste sono:

  • Oltre ad ever incluso il codice sorgente di ASP.NET MVC, abbiamo inserito il codice sorgente per gli Unit Tests che usiamo. Questi tests sono stati prodotti con MSTest e l' open source Moq un Open Source per fare Mocking. Un file VS 08 per gli unit tests è stato incluso nel download e rende facile la compilazione ed esecuzione in locale con VS stesso.
  • Significante supporto per i test alle classi Controller. Adesso potete fare unit test delle classi controller senza dover fare mock di alcun oggetto (di seguito maggiori dettagli).
  • Alcune novità interessanti sulla usabilità negli URL routing.
Creare un nuovo ASP.NET MVC Project

Adesso potete compilare la vostra versione personalizzata di ASP.NET MVC scaricando il codice sorgente di MVC e compilandolo localmente, o in alternativa, scaricando il template per VS per avere una versione precompilata che vi consente di costruire una applicazione con l' ultima release di ASP.NET MVC.

Dopo aver installato questo aggiornamento del codice come .VSI template, avrete a disposizione un template 'ASP.NET MVC Application' :

Questo nuovo template di MVC convive in parallelo con la versione Preview 2 di ASP.NET MVC (che potete vedere qui sotto). In questo modo potete creare in modo sicuro nuovi progetti e usare entrambe le versioni, nella stessa macchina.

Quando create un nuovo progetto ASP.NET MVC avrete di default in progetto strutturato come sotto:

Questo nuovo progetto contiene un COntroller ('HomeController') nella cartella '\Controlers' e due view di esempio ('About' e 'Index') nella cartella '\Views\Home'. Entrambi i templates sono basati sulla logica delle Master Page, e gli stili sono definiti nel file 'Site.css' nella cartella '\Content'.

Quando lanciate l' applicazione il server interno di VS in automatico avvierà la pagina 'Home' come sotto:

Se cliccate su 'About us' verrà mostrato il contenuto della sezione 'About':

Il 'HomeController' è responsabile di intercettare entrambi gli URL, che hanno le seguenti tipo di azioni:

La pagina predefinita 'Site.Master' cerca un valore 'Title' nel ViewData che usa per renderizzare il Tag <TITLE>. La pagina predefinita 'Index' cerca un valore 'Message' che utilizza per renderizzare il messaggio di benvenuto presente nel corpo stesso della pagina.

Cambiamenti ai controller ASP.NET MVC Drop

Se avete letto nel dettaglio il codice sotto avrete notato che ci sono stati un paio di acambiamenti nella classe Controller che di default implementano una modifica con questa versione di ASP.NET MVC.

Con la preview 2 il sottostante HomeController è stato implementato in questo modo:

Il team di MVC sta sperimentando queste novità:

  1. Gli Actions Method di default adesso restituiscono un 'ActionResult' come oggetto (al posto del void). Questo risultato contiene (una vista, un URL di reindirizzamento, un' altra action).

  2. I comandi RenderView, RedirectToAction e Redirect nella classe base Controller adesso ritornano una ActionResult tipizzata (che potete ancora manipolare e restituire all' ActionMethod).

  3. Il metodo di aiuto RenderView adesso puo' essere chiamato senza dover fare un uso esplicito della view da renderizzare. Se tralasciate il nome del template viene usato in alternativa come nome quello della action che state chiamando. Quindi chiamando semplicemente 'RenderView()' senza il parametro 'About' il metodo adesso renderizza in questo modo RenderView(About).

E' sempice aggiornare i contrller esistenti della Preview 2 per far si che usino questo nuovo pattern (basta cambiare la ActionResult che ritorni un RenderView al posto del void).

Restituire un ActionResult Objects da un Action Methods

Adesso, perchè andare a cambiare un metodo del Controller per avere in dietro un oggetto di tipo ActionResult? Gli altri framework web che implementano MVC hanno come ritorno dei metodi deglli oggetti (incluso Django e Tapestry) e quindi riteniamo utile questa cosa per i seguenti motivi:

  • Vi consente un approccio piu' pulito e facile per il supporto Unit Test dei Controllers. Non dovete piu' fare mock dei metosi perchè avete come ritorno dal metodo proprio un oggetto. Quindi potete semplicemente fare Assert del metodo e vedere cosa ritorna la Action del metodo (vedi di seguito).
  • Rende il ciclo di vita del Controller piu' chiaro e esplicito in scenari dove piu' occorrenze dipendono dalla stessa condizione (per esempio: reinviare ad una pagina se la condizione è vera, oppure visualizzare un template se falsa). Questo rende la lettura del codice dei controller piu' semplice e chiara.
  • Vi consente in certi scenari, dove la FilterActionAttribute prende il risultato di un' azione e lo volete modificare prima di eseguirlo. Per esempio una azione 'Naviga' in una Catalogo di prodotti, puo' ritornare un RenderActionResult che indica di renderizzare una lista di prodotti. Un FIlterActionAttribute dichiarativo impostato sulla classe controller puo' consentire di personalizzare la lista per essere del tipo List-html.aspy o List-xml.aspx in base al MIME presente nel client. Inoltre piu' FilterActionAttribute possono essere uniti per trasformare il processo di ottenimento del risultato.
  • Vi fornisce una utile estensione per una novità nelle novità- La nuova ActionResult puo' essere facilmente sovrascritta dalla class base ActionResult e sovrascritto il metodo 'ExecuteResult'. Sarà cosi' molto semplice creare un metodo 'RenderFile()' in grdo, per esempio, di ritornare un nuovo tipo di FileActionResult.
  • Vi consente di usare delle novità di tipo asincrono. Gli actionMethods saranno in grado di restituire un AsyncActionResult e questo significa che aspetteranno per ricevere un risultato dalla rete in asincrono cosi' che le richieste successive dovranno aspettare prima di essere eseguite. Questo consente agli sviluppatori di bloccare i threads nel server e fornire un supporto scalabile alle applicazioni.

Uno dei risultati che si vuole ottenere con questa Preview è quello di fornire unuovo approccio di sviluppo alle applicazioni 'reali' presenti nel web.

Inoltre andremo a proporre un nuovo tipo di classe base per i Controller se preferite avere come ritorno in classico void. Chiaramente non includeremo per nostra scelta questa modifica nel Controller ma esclusivamente nel codice sorgente e nel caso in cui voleste utilizzarlo, la nostra idea è quella di incoraggiarvi ad usare quello che ritorna un 'ActionResult'.

Come fare Unit Test dei metodi degli Action Controllers

Ho appena detto che il nuovo ActionResult vi consente un maggiore controllo nello Unit Test (e vi consente di non fare mocking inutile). Andiamo a vedere un esempio che mostra cio' appena detto.

Considerate un semplice controllo come segue:

Questo controllo ha un metodo 'IsEvenNumber' che prende un numero come argomento nell' URL. Questo metodo per prima cosa controlla se il numero è negatica - in questo caso reinvia ad una pagina di errore. Se è positivo determina sil il numero è pari o dispari, e renderizza la vista che mostra il messaggio:

Scrivere uno Unit test per questo metodo è davvero semplice con l' approccio dell' ActionResult.

Sotto trovate un esempio che verifica il redirect quando un numero è negativo. (per esempio /Number/IsEvenNumber/-1):

Come potete notare non dobbiamo fare mock di alcun oggetto. Dobbiamo solamente creare una istanza del NumberController e chiamare l' azione che ci interessa (passandogli un numero negativo) e assegnar il valore di ritonro ad una variabile locale. Sto usando C# com tipo di sintassi per fare il cast del risultato tipizzandola  come 'HttpRedirectResult'.

La cosa fantastica di C# è che assegna un valore nullo al posto di rilasciare una eccezione se il cast non va (per esempio: se la action ritorna un RenderViewResult). Questo significa che è davvero semplice controllare un assert nei miei test per verificare che il risultato non sia null prima di verificare l' Http redirect. Possiamo anche inserire una seconda assert che controlla la corretta reindirizzamento della pagina.

Fare un test dove non vengono passati numeri è altrettanto semplice. Per fare cio' basta creare due metodi di test .- il primo che verifica se è pari o dispari. Il secondo che testerà che la RenderViewResult sia stata restituita e verifica il messaggio che viene passato nel ViewData.

Adesso con il tasto destro sul metodo, tramite visual studio possiamo scegliere di fare un RunTest di un oggetto:

In questo caso verrà eseguito un unit test in memoria (senza web server) e verrà ritornato un report nel caso in cui il metodo sia stato eseguito correttamente o no:

Nota: questa settiamana il codice sorgente non contiene questa caratteristica e dovete comunque fare mocking per testare temporaneamente le proprietà di un controller. Il nostro scopo è quello di non dover fare mocl nella Preview 3 in poche settimane.

Metodi MapRoute Helper

Normalmente le regole di routing all' interno di ASP.NET MVC sono dichiarate nel 'RegisterRoutes' del Global.asax.

Con la preview 1 e 2 abbiamo aggiunto una collection di rotte che viene poi instanziata direttamente come ROute, attaccarla ad un MvcRoutheHandler e impostandone le proprietà:

Il codice continuerà a funzionare anche se adesso vogliamo fornire un aiuto con la nuova 'MapRoute' che vi consente di usare una sintassi piu' pulita per fare la stessa cosa. Di seguito vedete una classica convenzione di codice per la scrittura di rotte quando create un nuovo progetto ASP.NET MVC.

Il metodo MapRoute() è sovrascritto due volte, con 3 o 4 parametri (Nome rotta, sintassi URL, Parametri URL, parametri URL via regex).

Potete chiamare il metodo MapRoute() tutte le volte che volete per registrare rotte multiple. Per esempio, ina ggiunta, possiamo usare una 'Product-Browse' route come segue:

Possiamo poi fare riferimento a questa regola per indicare esplicitamente nei controllers quando vogliamo generare una URL. Per esempio possiamo usare Html.ROuteLink per indicare che vogliamo creare un link alla nostra 'Products-Browse' rotta e passare un parametro di tipo 'Food':

Questo helper andrà ad accedere al sistema di routing e fornirà un codice HTML appropriato per creare il link (nota: come vengono creati in automatico i parametri delle categorie).

Nota: con il codice di questa settimana dovete ancora passare i parametri nelle azioni (in aggiunta al parametro categoria) al metodo Html.RouteLink() per risolvere correttamente L' URL. La preview 3 che verrà rilasciata in poche settimane non richiederà questa cosa.

Altre caratteristiche dell' URL Route Mapping

Questa settimana il codice MVC supporta anche una serie di nuove regole per gli URL. Potete includere adesso "-", ".", ";" o altri caratteri che fanno parte delle vostre regole.

Per esempio, usando un separatore - adesso potete passare la lingua locale :

Questo invierà un corretto 'linguaggio', 'locale' e 'categoria' come parametri:

URL Route Rule
Example URL
Parameters Passed to Action method

{language}-{locale}/products/browse/{category}
/en-us/products/browse/food
language=en, locale=us, category=food

/en-uk/products/browse/food
language=en, locale=uk, category=food

Oppure potete usare la sintassi del punto come estensione degli URL e determinare quando renderizzare il risultato come XML o HTML:

Questo passeré entrambe le categorie come parametri al Prodcuts.Controller.Browse :

URL Route Rule
Example URL
Parameters Passed to Action method

products/browse/{category}.{format}
/products/browse/food.xml
category=food, format=xml

/products/browse/food.html
category=food, format=html

ASP.NET MVC Preview 2 introduceva le wildcard. Per esempio, potete dire ad una URL di inviare il restante URI come parametro:

Questo invierà un 'contentUrl' come parametro al WikiController.DisplayPage:

URL Route Rule
Example URL
Parameters Passed to Action method

Wiki/Pages/{*contentUrl}
/Wiki/Pages/People/Scott
contentUrl="People/Scott"

/Wiki/Pages/Countries/UK
contentUrl="Countries/UK"

Queste wildcard continueranno a funzionare - e sono molto utili se volete fare blog, wiki o cms o altri applicativi di contenuti.

Notate che in aggiunta al nuovo sistema di routing, possiamo anche usare lo stesso sistema con ASP.NET Dynamic Data (che usa la tecnologia ASP.NET Web Forms).

Sommario

Spero che le aggiunte proposte in qeusto post vi abbiamo fornito un veloce aggiornamento alle modifiche che verranno apportate a ASP.NET MVC.

Qui potete trovare quello che avete bisogno per iniziare. In alternativa, potete aspettare ancora qualche settimaan per la release ufficiale di ASP.NET MVC Preview 3 - che avrà ulteriori novità (che includono i commenti e le segnalazionioni inviateci dagli utenti) con una maggiore integrazione in VS e nella installazione.

Per ogni domanda vi rimando comunque a questi indirizzi ASP.NET MVC forum on www.asp.net.

Spero questo serva,

Scott

Collegamenti dell' 11 Aprile, ASP.NET, ASP.NET AJAX, ASP.NET MVC, Visual Studio, Silverlight

Add Comment | Apr 11, 2008

Qui trovate l' ultima serie di links: qui. Inoltre vi ricordo sempre la sezione ASP.NET Tips, Tricks and Tutorials page e Silverlight Tutorials page per gli articoli piu' importanti scritti dal sottoscritto.

ASP.NET
ASP.NET AJAX
  • UpdatePanel Accessibile: Bertrand Le Roy del team di ASP.NET ha scritto un articolo che spiega come costruire un controllo UpdatePanel ASP.NET AJAX che sia accessibile anche agli ScreenReader.

  • Costruire componenti ASP.NET AJAX : Mike Ormond ha scritto un ottimo articolo in 8 parti che spiega come riciclare componenti ASP.NET AJAX che funzionano sia lato server che client.

ASP.NET MVC
  • ASP.NET MVC: Membership Starter Kit: Troy Goode ha rilasciato un interessante startekit per ASP.NET MVC che contiene la logica per implementare la membership con tanto di pagina di Login e sezione di Amministrazione. Scaricabile qui.

Visual Studio
Silverlight
  • Dave Campbell's ottimi collegamenti a  Silverlight: Dave Campbell posta una serie regolare di collegamenti a articoli che parlano di Silverlight. Vi raccomando di sottoscrivervi al suo blog se volete restare aggiornati con gli ultimi articoli su Silverlight.

  • Silverlight 2 Map / DataGrid Tutorial: Jason Zander ha scritto un ottimo articolo in due parti che spiega come costruire delle applicazioni data-driven che si integrano con un controllo di map per comunicare e filtrare i dati presentati in una datagrid.

  • CRUD con Silverlight 2, WCF e LINQ to SQL: Ronnie Saurenmann del team Swiss MSDN ha realizzato un ottimo video che spiega le basi per costruire insert, update e delete con Silverlight 2, connesso via WCF per comunicare con l' ORM LINQ to SQL.

Spero questo serva,

Scott

Disponibile il ASP.NET Dynamic Data Preview

Add Comment | Apr 10, 2008
Technorati Tags: ,,,

Qualche mese fa abbiamo realizzato le ASP.NET 3.5 Extensions Preview che contengono alcune nuove caratteristiche che verranno rilasciate l' anno venturo (comprese ASP.NET AJAX e ASP.NET MVC, Supporto per Silverlight e ASP.NET Dynamic Data).

Il ASP.NET Dynamic Data support contenuto in questa preview fornisce un primo sguardo alle nuove caratteristice che vi consentono di costruire in maniera veloce siti con dati che lavorano tramite LINQ to SQL o LINQ to Entità. Questo componente vi consente di costruire in automatico la parte di data entry e reportistica legandosi al vostro ORM. In aggiunta vi viene fornita la possibilità di sovrascrivere la parte di template HTML delle pagine che verranno generate.

ASP.NET Dynamic Data Preview

Oggi è stato rilasciato un aggirnamento delle ASP.NET Dynamic Data Preview. Potete apprendere di piu' qui.

Questo nuovo controllo adesso funziona con i controlli standard presenti inASP.NET (GridView, ListView, FormView, DetailsView, etc). Questo controllo vi consente di abilitare in automatico i controlli che dovranno gestire le chiavi di join dei dati. Per esempio, in una grid view, potete fornire in automatico il nome della chiave che verrà usata tramite una dropdown:

Questa funzinalità vi consente inoltre di creare in automatico la validazione dei dati in base ai legami del vostro modello ad oggetti. Per esempio, se in una colonna abbiamo un dato che non deve superare i 50 caratteri, e non è nullable, verrà creato un apposito validatore nella UI e sarà applicato all' invio dei dati della pagina stessa. Se modificate le chiavi nel vostro LINQ to SQL per esempio, la UI verrà aggironata in automatico e cosi' anche la sua validazione.

In aggiunta al modello standard potte aggiungere anche delle validazioni personalizzate.

Sarete in grado di usare queste novità sia con LINQ to SQL che con LINQ to Entità.

Visual Studio Dynamic Data Project Wizard

Oltre ad essere presente nel core di ASP.NET, la nuova parte web di VS contiene una prima preview del progetto di esempio che potete usare per costuire velocemente applicazioni Data Driven. Il wizard vi consente di selezionare il Database, e le tabelle, le viste e le procedure che voltete usare per costruire il vostro modello LINQ.

 

Dopo aver creato il modello di dati tramite il wizard, potete scegliere cosa mostrare e quale template usare:

Infine potete decidere che tipo di operazioni inserire nella parte grafica:

Quando premete su fine, il vostro progetto avrà un modello ad oggetti per i dati e la parte grafica legata, pronta a funzionare. Potete apprendere di piu' su questo wizard qui.

Come cominciare

Per imparare di piu' su questo argomento potete scaricare e far girare il tutto in locale, da qui.

Oppure potete guardare il video di David Ebbo dynamic data presentation at MIX 08 per imparare di piu' sul suo funzionamento. Inoltre andate a guardare lo screen cast di Scott Hunter qui, e quello di Brad Millington qui. Inoltre anche David ha fatto qualcosa qui e spiega come usare la Preview di Dicembre.

Potete fare domande a riguardo o inviare consigli su www.asp.net nel forum apposito qui.

Spero questo serva,

Scott

Trucchi, usare i controlli Silverlight e WPF

Add Comment | Apr 04, 2008

Uno dei principali obiettivi di Silverlight e WPF è quella di consentire agli sviluppatori una facile tecnica di riciclo di componenti e funzionalita.

Potete creare controlli personalizzati semplicemente derivando da uno di quelli esistenti (sia dalla classe base che da un controllo come la Texbox). In alternativa potete creare voi stessi controlli riusabili - che diventa molto semplice usando il markup XAML (e che diventa super facile da fare).

Nella Part 6 del mio tutorial Digg ho mostrato come creare uno user control con VS2008 tramite il progetto 'Nuovo Oggetto' e definiendo al suo interno la UI. Questo approccio va bene se sapete prima come dovrà essere incapsulato il controllo. Ma potete anche questa tecnica con Expression Blend.

Prendere un controllo esistente ed inserirlo in uno User Control

Qualche volta non sapete se dovete incapsulare il controllo o se sarà riusabile, fino a che non lo avete inserito nella pagina.

Per esempio, potremmo lavorare su una form che vogliamo abilitare all' utente per fargli inserire indirizzo di spedizione. Possiamo cominciare con il creare qualche oggetto grafico da inserire nelle informazioni dell' indirizzo. Per fare cio' potremmo inserire il tutto in un tag <border>, il tutto in una grid layout, e poi aggiungere label e texbox a piacimento:

Dopo aver impaginato tutto, potremmo scoprire che 'stiamo per usare los tesso layout per una altra form, e quindi sarebbe meglio usare uno user control per l' indirizzo cosi' da riciclare del codice'.

Possiamo usare il comando 'aggiungi oggetto' per creare un nuovo user control e incollare il codice della precedente UI.

Un' altra veloce soluzione è quella di usare Blend, che ci consente di usare il controllo che vogliamo inglobare tramite designer, e con il tasto destro dire 'Costruisci Controllo':

Quando selezioniamo questa opzione, Blemd vi chiederà il nome dello user control che vogliamo creare:

Lo chiameremo 'AddressUserControl' e premiamo OK. In questo modo Blend andrà a creare uno user control che contiene gli oggetti da noi selezionati:

Adesso quando rilanciamoil progetto e torniamo all' originale, vedremo la stessa UI di prima . tranne che la parte di indirizzo è stata inglobata come user control :

Possiamo chiamare questo primo controllo, 'ShippingAddress' e inserire una seconda istanza nella pagina per la parte legata alla spedizione (sempre tramite il nostro user control):

Adesso se vogliamo cambiare il layout dell' indirizzo, lo possiamo fare una sola volta, e le modifiche verranno applicate ad entrambi gli oggetti.

Fare data bind dell' indirizzo nel nostro user control

Adesso che abbiamo i nostri user control, che inglobano le informazioni legate all' indirizzo, possiamo creare un modello di dati per legarlo ad esso. Pasterà definire una entità come sotto (prendendo vantaggio dalle nuove automatic properties):

Nel codice C# della nostra pagina, possiamo creare due istanze della classe indirizzo - una per l' indirizzo ed una per quello di invio della merce (lo scopo è quello di riempirli con dati di esempio). A questo punto saremo in grado di popolarli tramite il nostro oggetto indirizzo. Basta impostare il Data Context per ogni user control usato nella maniera appropriata:

L' ultimo passo è quello di inserire in maniera dichiarativa un elemento {Binding} nel file xaml, per impostare due modalità di binding tra la proprietà text delle texbox e la proprietà indirizzo del modello ad oggetti che abbiamo creato prima:

Premendo F5 l' applicazione verrà popolata dal codice sopra scritto:

Siccome abbiamo impostato la parte {Binding} come TwoWay, i cambiamenti fatti dall' utente saranno recepiti dallo user control, e quindi saranno inviati al modello ad oggetti prima definito.

Per esempio, possiamo cambiare l' indirizzo originale:

Se inserieamo un brack point di debug nell' evento click del pulsante salva, possiamo notare come sia cambiato il valore delle textbox e come sia stato assegnato in automatico il _shippingAddress field:

A questo punto possiamo implementare nell' evento click un metodo per persistere i dati di invio registrati tramite il nostro modello ad oggetti - senza dover implementare una logica di presenter per leggere questi dati dalla UI.

Questo modello molto pulito di separazione del codice con WPF e Silverlight facilita di molto la capacità di operare con le UI senza dover cambiare il codice ogni qual volta si modifica la parte UI. Inoltre diventa davvero semplice costruire logiche di test (leggete il mio post a riguardo Silverlight Unit Testing).

Sommario

WPF e Silverlight rendono molto semplice incampsulare logiche UI, e il meccanismo degli user control ci consente di avere un semplice supporto alla costruizione di controlli grafici. Combinando infine, la proprietà di binding con quella dei controlli, abbiamo a disposizione un modello di separazione del codice che ci consente di costruire applicazioni pulite e ordinate.

Potete scaricare il codice di esempio qui.

Per apprendere di piu' su Silverlight e WPF, andate sul mio tutorial Silverlight Tutorials and Links Page. Vi raccomando inoltre la discussione del MIX08 di Karen Corby (che copre il discorso User Control, Stili e template) che potete visionare online qui.

Spero questo serva,

Scott

Fare Unit Test con Silverlight

Add Comment | Apr 02, 2008

Una delle importanti caratteristiche che abbiamo rilasciato con la Beta1 di Silverlight 2 è stata la capacit di effettuare test sia a livello di API che a livello di Interfaccia. Questi test sono cross browser e corss platform, e possono essere usati per verificare al volo:

Inoltre abbiamo anche rilasciato una serie di shipped the source to ~2,000 unit tests built with it che vi consentono di automatizzare test per i codici sorgenti dei Silverlight controls, che sono stati rilasciati con una licenza che lo consente (potete prelevare il sorgente, modificarlo e farlo girare in test).

Apprendere Unit Test con Silvelight

Jeff Wilcox (che ha sviluppato il framework di test per Silverlight) ha creato un ottimo articolo che spiega come aggiungere un progetto di Unit Test ad una soluzione qui. Potete scaricare una applicazione di chat che spiega come fare test da this expression blend blog post tutorial del mese scorso. Potete anche guardare questo video interessante che Jeff ha creato proprio su questo argomento.

Come mostra Jeff, adesso esiste una nuova caratteristica in VS che vi consente di aggiungere un progetto di Test per Silverlight per le applicazioni che state costruendo:

Potete aggiungere uno unit test, in classi, e simulare comportamenti delle API o della UI (simulare pulsanti e cosi' via...)

Infine potete far girare il rpogetto e vedere nel report cosa succede.

Il Framework di test di Jeff vi fornisce in automatico una reportistica da seguire (questo vuol dire che lo potete eseguire in qualsiasi browser)

Questo framework supporta anche il resettaggio veloce dei controlli per ogni test (e consente di rilanciare il test senza dover ricaricare il browser ogni volta)

Potete quindi verificare centinaia di test in maniera davvero veloce:

Chiaramente un risultato verde significa che il test è passato. Il rosso che non lo  o che ci sono errori di runtime.

Sommario

Se non vi siete mai imbattuti in un processo di testing o di TDD con le applicazioni AJAX, troverete con SIlverlight delle opzioni davvero interessanti. Con Visual Studio potete separare i vostri test dal codice di produzione, e non avrete bisogno di includere i test nel vostro progetto.

In aggiunta per aver supporto con questo framework, andremo ad aggiungere nella ultima release, anche una serie di automatismi per API e UI. In questo modo potrete considerare anche scenari di accessibilità (ad esempio lettori di schermo che abilitano Silvelight come 508 compatibile). Questi automatismi di UI e API consentiranno di verificare in automatico mouse e tastiera per ogni browser. Questa combinazione vi consentirà di costruire applicazione solidi e RIA compatibili.

Spero questo serva,

Hope this helps,

Scott

P.S. Per maggiori tip su questo argomento controllate la mia nuova sezione "Silverlight Tips, Tricks, Tutorials and Links".

Collegamenti del 28 Marzo, ASP.NET, ASP.NET AJAX, ASP.NET MVC, Visual Studio, Silverlight, .NET

Add Comment | Mar 28, 2008

Qui trovate l' ultima serie di link-listing. Inoltre ricordatevi sempre di controllare la sezione ASP.NET Tips, Tricks and Tutorials page per controllare gli articoli che ho scritto in passato.

ASP.NET
ASP.NET AJAX
ASP.NET MVC
  • Kigg - Costruire un Clone Digg con ASP.NET MVC: Kazi Manzur Rashid ha pubblicato un ottimo clone di Digg con la release di Febbraio di ASP.NET MVC.  Ha aggiornato il codice per farlo funzionare anche con la versione Preview 2 (i dettagli li trovate (qui). Potete scaricare la versione con codice sorgente qui.

  • Testing con il Framework ASP.NET MVC  : Simone Chiaretta ha un ottimo articolo su come testare i controlli di ASP.NET MVC con la Preview 2.  Nota: la prossima releas di ASP.NET MVC conterrrà dei rifacimenti che faciliteranno questa tecnica (e consentirà di fare mock su tutti i scenari).

Visual Studio
  • VS 2008 Web Deployment Hot-Fix Roll-Up disponibile per non-English : Lo scorso mese abbiamo rialasciato questa hotfix per diversi bugs, per inserire nuove caratteristiche e per migliorare le performance del Web Designer di VS 2008. Lo scorso mese solamente chi aveva la versione in Inglese poteva scaricarlo. Adesso è disponibile per le altre lingue tranne Portoghese e Russo (che verranno realizzati a breve) 

Silverlight
  • Usare Silverlight 2's DataGrid con WCF + LINQ to SQL: Questo video di 15 minuti spiega come costruire con LINQ to SQL un oggetto e pubblicarlo tramite WCF. Inoltre spiega come costruire un client Silverlight che utilizza la nuova datagrid e che chiama un servizio WCF per leggere l' oggetto LINQ to SQL.

  • Modifica di dati nel Web Service con una DataGrid: Mike Taulty ha un otttimo articolo che spiega come creare un servizio WCF che consenta di usare Silverlight 2 come client per la lettura dei dati e mostrarli in una datagrid, consentendo all' utente operazioni di inserimento, modifica e cancellazione.

  • Ordinare  Silverlight 2's DataGrid Control: La Datagrid di Silverlight 2 non consente ancora l' ordinamento delle colonne (arriverà nella beta 2). Matt Berseth non si è certo fermato davanti a questo ostacolo e ha introdotto una soluzione con delle header customizzate. COntrollate il post  qui, dove potete trovare parecchie novità legate alla Datagrid.

  • Grafici Open Source Silverlight con VisiFire: Silverlight non ha ancora una serie di Grafici interni.  La bella notizia è che la comunità di  Webyog ha appena rilasciato dei controlli OpenSource per costruire grafici (completi di animazioni) che vi consentono di costruire grafici davvero interessanti. Il loro modello vi consente di costruire grafici in HTML e AJAX davvero velocemente.

.NET
  • FormatWith e DateTime come esntenderli: James Newton-King e Fredrik Kalseth hanno qualche post interessante su come usare le nuove estensioni  method feature di VB e C# in VS 2008 per creare nuove librerie. 

Spero questo serva,

Scott

Statistiche di Log, Database e altre novità per IIS 7.0

Add Comment | Mar 26, 2008

Una delle prime priorità quando abbiamo sviluppato IIS 7 fu quella di consentire una estensibilità della piattaforma per consentire agli sviluppatori di costruire velocemente plug-in ed estenderli sul web server.

Questa estensibilità viene fornita a riga di comando (scenari come IIS7 Bit Rate Throttler) nella configurazione di sistema (consente agli sviluppatori di creare nuovi schema per il web.config), e nel monitor di stato (consente la creazione di monitor personalizzati) e negli admin tools (consente agli sviluppatori di costruire UI personalizzate).

Abbiamo inserito questa estensibilità cosi' che chiunque puo' tranquillamente estendere il web server con .NET. Inoltre anche noi stiamo fornendo plugin cosi' da rilasciarli periodicamente per aggiungere sempre nuove novità a IIS.

Rialsciato l' IIS 7 Admin Pack Preview 1

La settimana scorsa il team di IIS ha rilasciato il first technical preview di alcuni interessanti strumenti che gli sviluppatori troveranno molto utili. Questa preview inserisce diverse novità nella console di IIS 7:

  • Database Manager: Costruito su SQL Server database management, comprese le caratteristiche di creare, cancellare e modificare tabelle, indici, SP e eseguire query. Siccome è integrato in IIS questo modulo lavora su HTTP/SSL, il che significa che potete usare il modulo per amministrare da remoto le vostre applicazioni (anche con i provider a basso costo), senza dover esporre pubblicamente il Database in rete.

  • Log Reports: Questo report visualizza sotto forma di grafici, i log. Viene fornito il supporto per filtri e report personalizzati, oltre alla stampa e salvatggio dei reports stessi. Legandolo al Database manager lo potete usare tramite HTTP/SSL per creare reports su DB remoti in host.

  • Configuration Editor: Questo controllo vi consente di controllare completamente il web.config con un tool di amministrazione. Potete usarlo per gestire le modifiche alle UI e creare script autogeneranti delle modifiche apportate che potete salvare e lanciare in futuro in maniera automatica.

  • Request Filtering UI: Questo modulo consente un maggiro controllo delle richieste filtrate, tramite IIS 7. Sul blog di Carlos trovate maggiori dettagli. Qui.

  • .NET Authorization: Questo modulo consente di gestire le autorizzazioni personalizzate tramite UI per gestire al meglio la sezione <authorization> del web.config.

  • FastCGI UI: Questo modulo invece fornisce supporto per la modifica dei nuovi settings della sezione  <fastCGI> (per chi usa FastCGI con IIS7 come PHP).

Qui trovate alcune schermate di esempio del Log Reporting e del Database Manager:

Modulo Log Reporting Admin

Avete mai pubblicato una applicazione web in un server e sapere quanto tempo ci impiega a caricare? quale è la media di risposta per il server? o quanti errori sono arrivati al server (o agli URL)? Tutti queste informazioni possono essere tranquillamente loggate da IIS in un file di log. Oggi molte persone usano riga di comando per avere IIS Log Parser per analizzare i dati.

L' adminPack di IIS 7 e il nuovo 'IIS Reports' vi abilita nella creazione di grafici che valorizzano qeusti dati:

IIS Report arriva con una serie di report e grafici già pronti all' uso che potete facilmente usare nei vostri siti:

Qui trovate un esempio di report grafici che potete lanciare per monitorare gli status HTTP restituiti dal sito 'TestSite' (notate che stiamo usando le barre grafiche)

I reports possono anche essere filtrati. Potete anche premere il pulsante di stampa o di salvataggio del report dalla pagina che lo visualizza per usare la stampante locale.

Questo tool è una applicazione vera e propria (costruita con WinFOrms) ma si puo' usare via remota tramite HTTP web services che si connettono in remoto al web server. Questo significa che anche tramite firewalls, un host non necesita di aprire porte sulla rete per abilitarvi.

Quando un provider installa questo kit nel web server, gli utenti remoti posso amministrare IIS (costruito per vista e disponibile anche per XP) e verranno interrogati per installare gli IIS Reports. Saranno poi in grado di sfruttare questa tecnologia all' interno del modulo di IIS.

Nota: un provider puo' disabilitare questa caratteristica se lo ritiene opportuno, o scegliere di restringere la lista di reports. Speriamo che la maggiro parte dei providers forniranno questa caratteristica come standard in IIS e ASP.NET.

Database Manager Module

Avete mai distribuito una applicazione e il suo database su un server remoto e poi avete avuto la necessità di apportare modifiche al database (ma il vostro host non vi consente di usare un tool SQL)? Con questo nuovo modulo in IIS potete accedere in remoto ai vostri database e fare cambiamenti via HTTP/SSL tramite web server.

Dovete solamente connetervi all' amministrazione IIS in remoto e cliccare 'Database Manager':

Questo modulo controllerà la <connectionStrings> del vostro web.config e andrà a collegarsi con il database in essa configurato.

Per esempio, nell' applicazione TestSite esiste la 'NorthwindConnectionString' nel file web-config (che viene mostrata nelle mie connessioni). Con un click possiamo modificare gli oggetti in remoto.

Con un tasto destro possiamo inoltre modificare le righe delle tabelle, o lanciare comandi SQL remoti:

La cosa piu' bella è che un provider puo' anche scegliere cosa condividere sia per i dedicati che per i semplici hosting (specialmente se nel server ci sono miriadi di utenti). COme tutti gli altri moduli, tutte le comunicazini tra il pannello e il server avvengono in HTTP/SSL web service (questo significa che anceh tramite un firewall l' host non avrà la necessità di aprire porte varie e SQL non sarà direttamente esposto a internet).

Spero che questo modulo diventi standard in tutti gli host IIS, che renderà molto piu' semplice la gestione remota dei database.

Sommario

Nel tempo troverete molte piu' moduli Grafici rilasciati con IIS 7 e altre caratteristiche (Carlos, che lavora nel team di sviluppo dell' admin tool, sta spettando proposte e suggerimenti che potete trovare nel suo blog - quindi lasciate commenti se ne avete).

Potete scaricare la prima preview di questo tool qui e apprendere di piu'  online documentation here.  Questo modulo funziona sia in Vista SP1 e Windows Server 2008.

Spero questo serva,

Scott

Codice sorgente di ASP.NET MVC disponibile

Add Comment | Mar 21, 2008
Technorati Tag: ,,,

Lo scorso mese ho parlato dell' ASP.NET MVC Roadmap. Due settimane fa è stata rilasciata la ASP.NET Preview 2 Release. Phil Haack del team di ASP.NET nel suo blog ha pubblicato un ottimo articolo a riguardo qui. Scott Hanselman ha invece creato diversi video tutorial su ASP.NET MVC che potete trovare qui.

Una delle cose di cui avevo parlato nel primo sommario su ASP.NET MVC, era la pubblicazione del codice sorgente del Framework in questione, e la possibilità di compilarlo, debuggarlo e costruire patch (cosi' che potete lavorare intorno ai problemi riscontrati prima di aspettare la nuova versione).

Oggi abbiamo aperto un nuovo progetto ASP.NET CodePlex project che consentirà di usare compilazioni condivise per le varie versioni di ASP.NET. Potete scaricare direttamente la versione compilata di ASP.NET MVC Preview 2 qui.

Costruire il Framework ASP.NET MVC

Adesso potete scaricare un file -zip che contiene il codice sorgente completo di ASP.NET MVC qui. Una volta estratto il suo contenuto, trovate una Soluzione Visual Studio 2008:

Aprite la soluzione ed ecco il contenuto di MVC:

Ogni volta che compilate il progetto, verrà rilasciato una nuova versione di System.Web.Mvc.dll nella cartella bin del progetto. A questo punto potete copiare la nuova versione nei vostri progetti web.

Nota: la licenza non vi abilita a ridistribuire la vostra versione di ASP.NET MVC ( non vogliamo che nella rete girino una miriade di versioni personalizzate di ASP.NET MVC). Ma vi consente di apportare migliorie al Framework stesso su problemi che per ora sono bloccanti per i vostri progetti.

Passo successivo

Il nostro progetto è quello di apportare modifiche e migliori in continuo. Realizzeremo un nuovo sorgente ogni volta che verrà rilasciata una nuova release. Inoltre rilasceremo anche i sorgenti tra una release e l' altra cosi' da poter seguire dal vivo le varie modifiche apportate di volta in volta.

Stiamo inoltre cercando di rilasciare anche la parte di test per ASP.NET MVC nel futuro (già adesso viene usato un Framework interno di test, e stiamo cercando di refractarlo per distribuirlo nelle prossime versioni).

Spero questo aiuti,

Scott

Modulo Bit Rate IIS 7.0

Add Comment | Mar 18, 2008

Condividere Video del web è una delle pratiche attualmente ricorrenti che gli utenti usano per incrementare visite e visibilità nei siti (video di prodotti, tutorial, pubblicità, contenuti personali e testimonianze).

Una delle prime difficiltà che si puo' incontrare, è quella di poterli pubblicare ma senza spendere una fortuna. La banda concessa normalmente costa un una fortuna e quindi condividere video di alta qualità puo' incrementare i costi di parecchio.

In questo post vi illustro alcune delle possibili soluzioni che potete usare per ridurre i costi di pubblicazione su web di Video. Vi parlo anche di un nuovo Download - IIS 7.0 Bit Rate Throttling Module - che è appena stato rilasciato e vi permette proprio di distribuire video tramite un server IIS. Qualsiasi tipologia di video (Silverlight, Media Player e Flash).

Opzione 1: Usare un Servizio di Host per Video

Un approccio puo' essere quello di ridurre la banda usata tramite un servizio di host per video come YouTube o quello gratuito Microsoft Silverlight Streaming Service. Con questo meccanismo usate la rete di terzi per distribuire contenuti video, e non dovete sopportare il costo della banda usata.

Se non conoscete questo servizio, potete caricare piu' di 10 Gbyte di video e scaricare piu' di 5 TeraByte al mese gratuitamente. Potete inserire qualsiasi player SilverLight da includere per visualizzare i vostri video. In questo modo non siete obbligati ad usare un player specifico o un Logo particolare. In qeusto modo potete integrare i vostri video, nel vostro sito con qualsiasi UI volete usare.

Opzione 2: Host Video sul vostro server

A votle non ha senso usare un servizio di hosting per video (ad esempio se volete integrare una autenticazione personalizzata o magari distribuire solo spezzoni di video e inserire anche della pubblicità). In questo caso dovete distribuire i video tramite un vostro Web Server.

In questo soluzione, ci sono due strade percorribili: usare un approccio di streaming o di scaricamento dinamico.

Opzione di Server di Streaming

In questo caso il client (Silverlight, Media Player, Flash o Real Player) si connette ad un server per stream. Il server invia il video al client, e l' utente puo' anche controllare la riproduzione del video stesso. Nel momento in cui la pagina viene chiusa o cambiata, il server stream smette di fornire il video.

Windows Media Services (WMS) è un server stream gratuito per Windows, e distribuisce video sia per Windows Media Player che per Silverlight. Normalmente è una delle soluzioni piu' economiche e scalabili per fornire stream video, e fornisce sia stream on-demand (.wmv files) che stream in diretta (come ad esempio eventi sportivi).

Windows Media Services puo' essere usato con qualsiasi versione di Windows server - compresa la versione Windows Server 2008 Web Edition (che costa circa 469 $, con 4 processori e fino a 32 Gb di Ram, supporta IIS, ASP.NET SarePoint e Windows Media Services).

Opzione di DOwnload progressivo

In questo caso il client (Silverlight, Media Player, Flash o Real Player) scarica direttamente il video dal web server e inizia ad eseguirlo non appena il download lo consente.

La caratteristica principale è che è molto facile da configurare. Basta copiare i files sul Web Server tramite copia/ftp, ottenere l' URL di destinazione e inserirlo nel video player. Non richiede nessuna personalizzazione del web server e nemmeno un server per lo stream.

La parte negativa è che di norma un web server è configurato per scaricare i files nel modo piu' veloce consentito. QUindi quando un utente clicca per visualizzare il video, il vostro server cercherà di fornire tale video nella modalità piu' veloce possibile. Questo è molto utile se l' utente vuole visualizzare tutto il video. Ma quando il video viene fermato a metà, si sarà comunque scaricato una quantità di video non necessaria, che non sarà mai visualizzata.

Se la parte rimanente sono diversi megabyte, andrete  a spendere soldi inutili in Banda non utilizzata.

IIS 7.0 Bit Rate Throttling Module

La settimana scorsa il gruppo di IIS ha rilasciato gratuitamente IIS 7.0 bit-rate throttling module che consente una opzione di Download Progressivo molto economica.

Questo modulo vi consente con molta facilità, di configurare la banda e regole personalizzate per ogni tipo di file (compresi .WMV, .MOV, .FLV and .MP3).

In compenso, questo modulo, consente di scaricare velocemente la prima parte di filmato. Le impostazioni predefinite sono legate al mime-type e al bit-rate del file, e consente lo scaricamento veloce per i primi 20 secondi di filmato. Una volta che sono stati garantiti i primi 20 secondi di filmato, IIS trasmettera i restanti secondi in base al bit-rate del filmato stesso. Inoltre continua a controllare che il player nel client non sia stato chiuso o impostato su un altro video, e comunque blocca il restante download se l' utente ha cambiato idea.

Per esempio, se state visualizzando un filmato di 35 Mbyte con un bit-rate di 500 Kbps, IIS invierà 20 secondi di video (20 secondi a 500Kbps sono circa 1.25 Mbyte di contenuto) il piu' possibile veloce, e il restante contenuto con un bit-rate di 500 Kbps (in questo modo l' utente avrà sempre 20 secondi di cache di video cosi' chè non verrà mai bufferizzato).

Se dopo circa un minuto l' utente si stufa e ferma il video o naviga su un' altra pagina, IIS si accorge del cambiamento e smette di trasmettere il restante contenuto di 35Mbyte. Se in questo caso IIS ha inviato circa 80 secondi di video (60 secondi visti dall' utente + 20 di cache) solamente 5Mbyte dei totali saranno stati inviati. In questo caso circa 30 Mbyte di video saranno stati risparmiati, il che si trasforma in soldi non sprecati in banda.

IIS 7.0 Bit Rate Throttling Module Scaricamento e Installazione

Potete scaricare e apprendere su questo componente per IIS 7.0 qui.

Una volta installat, basta cliccare su "Bit rate trottling"

E impostare il bit-rate per ogni tipo di video.

In questi documenti trovate maggiori dettagli a riguardo:

Inoltre potete controllare i Posts di Mike qui e Vishal qui e qui per maggiori dettagli.

Spero questo serva per aiutarvi negli scenari dove i video hanno un effettivo costo,

Scott

Collegamenti del 14 Marzo, ASP.NET, ASP.NET AJAX, ASP.NET MVC e .NET

Add Comment | Mar 14, 2008

Sto pian piano rimettendo insieme l' idee dell' ultimo MIX, e di tutte le mails e note ricevute.  Questo fine settimana cerchero' di completare gli utlimi commenti nel mio blog - mi scuso a priori per non aver risposto a tutti.

Per ripartire alla grande ho creato una nuova lista di collegamenti.  Quella di oggi è molto legata ad ASP.NET principalmente. Ma presto produrro' anche molti post per Silverlight e WPF.

ASP.NET
ASP.NET AJAX
  • Nuova release dell' ASP.NET AJAX Control Toolkit: David Anson illustra la nuova versione dell' Ajax Control Toolkit presentato al MIX. In questa versione ci sono diverse Patch (compresi i bachi segnalati dagli utenti) con parecchi miglioramenti in diverse sezioni.

ASP.NET MVC
  • Tra ASP.NET MVC Preview 2 e paraggi: Phil Haack che fa parte del Team di ASP.NET ha fatto un ottimo articolo su questa preview, inoltre illustra alcune caratteristiche che verranno rilasciate nella prossima. Una delle maggiori migliorie della Preview 3 sarà proprio la parte di Testing.

  • Sicurezza nelle azioni dei  Controller: Rob Conery spiega come usare l'  ASP.NET MVC ActionFilterAttribute per applicare sicurezza dichiarativa nei controllers.  Inoltre guardate anche i post di David Hayden's qui per avere ulteriori esempi.

  • Url Routing Debugger: Phil Haack ha inviato un interessantissimo Url Debugger per ASP.NET MVC framework.

.NET
  • Graffiti: La gente di Telligent ha appena rilasciato un CMS per ASP.NET che è molto semplice da installare, e che fornisce diverse interessanti novità nella configurazione.  Dateci uno sguardo se siete interessati all' argomento.

  • Beta of LINQ to LLBLGen Pro Released: Frans Bouma annuncia la prima beta di LINQ to LLBLGen Pro (un famoso ORM per NET). Frans ha prodotto una bella serie di 14 articoli che discute come costruire supporto con LinQ (un ottimo articolo tecnico).

Spero questo sia di aiuto,

Scott

La mia presentazione in Arizona questo Mercoledi'

Add Comment | Mar 09, 2008

Questa settimana visitero' Scottsdale in Arizona e andro' a presentare in uno evento UserGroup nel pomeriggio. Ci saranno due sessioni che parleranno di :

1) Sviluppare applicazioni con Silverlight 2: Questo sarà uno sgurado generale alla nuova versione di Silverlight 2 Beta1 , e come sia possibile costruire applicazioni usando VS2008 e Blend.  Andrete via da questa sessione con delle buone infarinature di base di Silverlight e come programmarlo.

2) Sviluppare applicazioni con ASP.NET MVC: Questa sessione sarà invece uno sguardo generale al  Model-View-Controller framework proposto da Microsoft. Andrete via da questa sessione con delle buone basi per poter iniziare a lavorare con questo nuovo Framework.

Oltre a queste due sessioni, ci saranno anche altre sessioni interessanti, come ad esempio: "Consuming Web Services with Microsoft Silverlight", "Encoding Video for Microsoft Silverlight", e "Serving Applications with Microsoft Silverlight Streaming". 

Potete registrarvi e seguire gratuitamente le sessioni.  Qui per maggiori info sugli eventi, e qui per la registrazione on-line. 

Spero di vedere qualcuno di voi,

Scott

Un primo sguardo a SilverLight 2.0

Add Comment | Feb 22, 2008

Lo scorso Settembre abbiamo rilasciato SilverLight 1.0 per Mac e Windows, e abbiamo annunciato la prossima uscita di una versione per Linux.  Silverlight 1.0 è impostato sulla creazione di contenuti interattivi per il web, e supporto per la programmazione a oggetti con JavaScript/AJAX.

Stiamo per rilasciare la prima beta di SilverLight 2, che sarà un aggiornamento principalmente legato allo sviluppo RIA (Rich Internet Application). Questo sarà uno dei primi post di una serie, che parleranno nel dettaglio di questa tecnologia.

Sviluppo .NET Multi-Piattaforma / Multi-Browser

Silverlight 2 contiene una versione di .NET multipiattaforma e multibrowser. Glis viluppatori possono creare applicazioni con i linguaggi NET (compresi VB, C#, JavaScript, IronPython e IronRuby).  Sarà disponibile sia Visual Studio 2008 che Express Studio il supporto per los sviluppo parallelo tra sviluppatore e grafico.

Questa versione Beta1 di SilverLight 2 comprenderà parecchie novità per lo sviluppo di applicazioni internet dinamiche tra cui:

  • WPF UI Framework: Silverlight 2 includes a rich WPF-based UI framework that makes building rich Web applications much easier.  In includes a powerful graphics and animation engine, as well as rich support for higher-level UI capabilities like controls, layout management, data-binding, styles, and template skinning.  The WPF UI Framework in Silverlight is a compatible subset of the WPF UI Framework features in the full .NET Framework, and enables developers to re-use skills, controls, code and content to build both rich cross browser web applications, as well as rich desktop Windows applications.
  • Controlli Interattivi: Silverlight 2 contiene tra l' altro una serie di controlli utente già pronti all' uso. Questa versione Beta1 comprende i controlli classici delle Form (TextBox, CheckBox, RadioButton, etc), pannelli per il layout (StackPanel, Grid, Panel, etc), controlli classici come (Slider, ScrollViewer, Calendar, DatePicker, etc), e controlli per i dati (DataGrid, ListBox, etc).  I controlli preconfezionati consentono comunque una facile personalizzazione, che consentirà una stretta collaborazione tra designer e sviluppatori.
  • Supporto per le funzioni di rete: Silverlight 2 includerà supporto per le funzioni di rete. sarà compreso un supporto per REST, WS*/SOAP, POX, RSS, e i servizi HTTP. Sarà possibile fare CorssDomain (abilitare Silverlight ad accedere a risorse presenti in rete). Anche se questa caratteristica è già presente nella Beta1.

  • Libreria di base: Silverlight 2 cmprende una libreria per le funzioni di base (collezioni, IO, generics, threading, globalization, XML, local storage, etc).  Sono inoltre comprese delle API per l' integrazio