Autoconfigurare Windows Live Writer
Quando il tempo necessario richiesto a fornire una determinata informazione eguaglia il tempo necessario allo sviluppo di un sistema di risposta automatico, forse è il caso di fare qualcosa :).
Da tale situazione è nata l’esigenza di creare un sistema che configurasse in automatico Windows Live Writer.
In quest’ ultimo periodo, insieme agli altri ragazzi, abbiamo rilasciato diverse versioni di Dexter ed abbiamo lavorato in particolar modo con l’integrazione su Windows Live Writer. Questo ha causato diversi reset della configurazione di WLW da parte di tutti gli utilizzatori (in realtà ora sono solo i beta tester) che, giustamente, mi chiedevano quale API Dexter implementasse e quale fosse la sua url.
Da qui è nata la decisione di creare un qualcosa che fornisse automaticamente a WLW le informazioni necessarie per autoconfigurarsi.
Grazie ad una dritta del buon Alessandro ho scoperto che è possibile fare ciò tramite un file RSD (Really Simple Discoverability 1.0), che non fa altro che esporre le informazioni necessarie dei providers implementati tramite una struttura xml.
La struttura seguente mostra il file del mio blog:
<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
<service>
<engineName>Dexter Blog Engine</engineName>
<engineLink>http://dexterblogengine.codeplex.com/</engineLink>
<homePageLink>http://tostring.it/</homePageLink>
<apis>
<api name="MetaWeblog" blogID="1" preferred="false" apiLink="http://tostring.it/metaweblog.axd" />
</apis>
</service>
</rsd>
Come potete vedere è tutto piuttosto semplice, l’unica nota (oltre al dexter blog engine :P) è il nodo APIs, dove è possibile specificare le varie API esposte dal blog engine (nel mio caso solo i metaweblog API).
Nella home page del sito basta inserire il seguente tag ed il gioco è fatto:
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://tostring.it/MetaWeblogRsd.axd" />
Per quanto riguarda WLW, basta configurarlo specificando la Home Page: lui effettuerà il parser del markup in ricerca dell’apposito tag e si autoconfigurerà.
Di Seguito alcuni screenshots sulla procedura di configurazione
Enjoy your favorite blog engine (dexter)
Ciauz
Verificare se l’applicazione Silverlight in esecuzione è in FullTrust
Posted by imperugo in Silverlight on Tuesday 02 March 2010 at 9:00 AM
Silverlight 4 ha introdotto la possibilità di eseguire operazioni in OutOfBrowser anche in FullTrustMode. Inutile dire che questa è una delle features più interessanti della prossima release di SIlverlight, in quanto ci permette di poter accedere a risorse precedentemente non accessibili come Fotocamere, Hard Drives, Office Documents, etc.
Ovviamente però, oltre a specificare che l’applicazione richiede permessi elevati, è necessario che l’utente autorizzi l’applicazione ad eseguire operazioni anche fuori dalla propria sandbox. Dato che non c’è certezza che l’utente approvi o no tali operazioni è sicuaramente utile capire da codice se ciò è avvenuto e, nel caso, cambiare il comportamento dell’applicazione e/o gestirne eventuali errori.
Come prima cosa è necessario specificare che l’applicazione richiede permessi elevati; questo è possibile dalla finestra delle proprietà del progetto, come mostrato dallo screenshot seguente:
Per la parte codice ci basta verificare tramite l’apposità proprietà se l’utente ha acconsentito il FullTrust mode, come mostrato nello snippet seguente:
if(!App.Current.HasElevatedPermissions)
MessageBox.Show("You have to accept the Full Trust Mode!");
Ciauz
Installare un’applicazione Silverlight sul client via C#
Posted by imperugo in Silverlight on Monday 01 March 2010 at 9:00 AM
Nel post precedente avevo mostrato come verificare se l’applicaizone Silverlight fosse installata o meno sul client. L’idea di questo post è di mostrare come installare l’applicazione tramite un pulsante custom presente all’interno della pagina ed eseguire la procedura di installazione via C#.
Lo snippet seguente mostra l’evento OnClick del button per l’installazione:
private void InstallButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
if (!App.Current.IsRunningOutOfBrowser && App.Current.InstallState == InstallState.NotInstalled)
{
App.Current.Install();
}
}
Come avrete potuto notare, fin’ora tutte le informazioni necessarie per poter lavorare sono state esposte tramite la classe System.Windows.Application; grazie a quest’ultima, nei prossimi post si vedrà come verificare se l’applicazione è in esecuzione in fulltrust mode e, nel caso ne esista una più recente, come aggiornarla.
Ciauz
Ma dove sono finito? al Summit :D
Avevo annunciato una serie di posts che affrontavano un po’ la vita OutOfBrowser di un’applicazione sviluppata con Silverlight 4 ma poi, proprio quando la cosa si faceva più interessante, sono sparito.
Per vari motivi, e devo dire alcuni anche piacevoli, ho dovuto trascurare il blog. Un po’ perchè da questa settimana non sono più in MTV (dove ho passato più di tre anni bellissimi) e mi trovo a lavorare con quel “matto” di Mauro in Gaia, ed un po’ perchè sono stato all’MVP Summit in Microsoft, a Seattle.
Devo dire che quest’ultima è stata un’esperienza stupenda: girare per il Campus, conoscere Scott Guthrie, parlare via Twitter con Scott Hanselman mentre tiene una sessione…è stato emozionante. In più ho avuto l’occasione di conoscere di persona alcuni italiani che lavorano al campus, nello specifico Vittorio, Enzo (aka paperino) e Giorgio, che mi hanno offerto anche il pranzo e sono stati gentilissimi.
Putroppo non posso raccontare molto del Summit (è tutto sotto NDA), ma posso solo dire che l’esperienza è stata sopra le aspettative e che tutti gli Italians Boys (Raf, Alessandro, Alead, Janky, Davide Mauri, Andrea, Davide Zordan, Giorgio, Leone, Valter ed il mio super roommate Gian Maria) sono stati mitici.
Sotto Alcune foto.
Stay tuned!
ASP.NET MVC 2 RC2 – ci siamo quasi.
Causa cambio di lavoro, la scaletta dei posts si è incasinata ed alcune info (come questa) arrivano con alcuni giorni di ritardo; comunque sia Scott Guthrie, tramite il suo blog, ha annunciato il rilascio di ASP.NET MVC 2 RC2.
Essendo in dirittura di arrivo non ci sono grandi novità, ma più che altro bugfixing.
Di seguito i principali cambiamenti:
- Nuovo modello di validazione client side che, a differenza del precedente, non ha il compito di validare soltanto i dati di input provenienti dalla form, ma l’intero model;
- Nuovi helper strongly-typed con supporto alle lambda expression es: Html.EditorFor(m=>m.Orders[i]);
- Un nuovo template per gli editor Html.EditorFor() e Html.DisplayFor();
- L’Accountcontroller inserito nel template di default è stato semplificato;
- Inserita la nuova versione della libreria jQuery 1.4.1;
Come potete vedere le novità non sono numerose (l’elenco completo ed il download sono disponibili qui); la cosa sicuramente interessante è il performance tuning svolto in questa release, che dovrebbe portare ad un sensibile aumento delle prestazioni.
Al momento ASP.NET MVC 2 è compatibile soltanto con Visual Studio 2008 ma, con l’imminente uscita della RC di Visual Studio 2010, sarà possibile utilizzare questa release di MVC senza download aggiuntivi; di fatto Visual Studio 2010 RC avrà incluso ASP.NET MVC 2 RC2.
Ciauz
Verificare se un’applicazione Silverlight è installata sul client
Posted by imperugo in Silverlight on Wednesday 03 February 2010 at 9:00 AM
Continuando il percorso iniziato nel post precedente, oggi vorrei affrontare la parte di setup di un’applicazione Silverlight.
L’installazione può essere effettuata in due modi:
- Menu contestuale di Silverlight;
- Tramite C#;
Qualsiasi approccio si scelga è sempre necessario specificare che il progetto può essere installato sul client (di default le applicazioni Silverlight non posso essere installate sul client). Per far ciò ci basta accedere alle proprietà del progetto (tasto destro sul progetto –> proprietà) ed abilitare la modalità OutOfBrowser, come mostrato dallo screenshot seguente:
Come in ogni setup che si rispetti, prima è necessario verificare che l’applicazione interessata non sia già installata sul client, e questo è fattibile tramite l’apposita proprietà InstallState della classe application, come mostrato di seguito:
if(App.Current.InstallState == InstallState.Installed)
//TODO:Installed
else
//TODO:NotInstalled
Nel prossimo post vedremo cosa scrivere nei TODO per installare l’applicazione sul client tramite c#.
Stay tuned.
Un’interessare feature di Chrome
Non so come faccia, ma il fatto che Google Chrome riesca ad effettuare ricerche all’interno di un sito, sfruttando l’engine di ricerca presente all’interno del sito stesso e non Google search engine, è sicuramente una bella feature!
Un’altra cosa interessante è che in Dexter non ho fatto assolutamente nulla per dire a Chrome come effettuare le ricerche :).
Per provare basta fare: Dominio + Tab + Parola da cercare.
No Bad!
Verificare se l’applicazione è in Out Of Browser
Posted by imperugo in Silverlight on Saturday 30 January 2010 at 3:48 AM
Già da quanto scritto precedentemente (qui) si intuiva l’arrivo di una serie di post su Silverlight 4. Sto infatti studiando la possibilità di utilizzo di Silverlight 4 per un’applicazione Out Of Browser che rispecchi almeno i requisiti descritti nel precedente post.
Per questo motivo oggi mi trovo a rispondere alla prima domanda: “Come faccio a verificare se l’applicazione Silverlight in esecuzione è in modalità OOB”?
Beh, devo dire che è veramente semplice. Quando si crea una nuova applicazione Silverlight, al suo interno è presente un file App.xml che è il file principale dell’applicazione; per effettuare un paragone con il mondo ASP.NET si potrebbe definire il file App.xml un po’ come il Global.asax.
Questa classe, che eredita da System.Windows.Application, espone la proprietà IsRunningOutOfBrowser, che è indispensabile se si vogliono creare interazioni particolari e mostrare oggetti solo in modalità OOB; basta quindi accedere alla proprietà, come mostrato dallo snippet seguente:
bool isOOB = App.Current.IsRunningOutOfBrowser;
Un esempio pratico potrebbe essere il semplice pulsante di setup, che dovrà essere visualizzato soltanto nel caso l’applicazione stia girando all’interno del browser.
Al prossimo giro vedremo come installare un’applicazione Silverlight sul client tramite C#.
Stay tuned!
TFS, i Power Tools ed il Team Explorer
Primo post su TFS, TeamExplorer e famigghia.
Questo non è un cambio di genere e non ho intenzione (anche perchè sarebbe impossibile) fare “concorrenza” al buon Gian Maria ed al buon Lorenzo; molto probabilmente quello che andrete a leggere lo avranno già mostrato, spiegato, decompilato e riscritto loro parecchia anni fa, sta di fatto che lo scrivo lo stesso xchè a qualcuno potrebbe essere sfuggito (tipo a me).
Ormai sono un paio di anni che uso Team Foundation Server in azienda insieme a Visual Studio e al Team Explorer. Lavorando quotidianamente con lo stesso server all’interno della stessa rete, non ho mai avuto nessun problema con il fatto che il Team Eplorer cerchi di connettersi all’ultimo TFS utilizzato ogni volta che si avvia Visual Studio.
Ultimamente però il mio lavoro è un po’ cambiato, e mi trovo a dovermi connettere a diversi TFS sparsi per il mondo e, in casi ancora peggiori, mi ritrovo senza connessione. Queste situazioni vanno di parecchio in conflitto con la feature precedentemente descritta (l’autocollegamento a TFS durante l’avvio di Visual Studio), quindi mi sono deciso a fare una ricerca in rete per capire come risolvere il problema.
Neanche a dirlo già milioni di persone avevano bloggato il problema e mostrato una soluzione, che consiste nel modificare il registro di configurazione di Windows (maggiori info qui).
Soluzione questa sicuramente funzionante e di semplice implementazione. Ma ne esiste una ancor più carina ed elegate.
I ragazzi del team dei PowerTools hanno pensato di fare una comodissima UI per cambiare quest’impostazione. Di fatto, una volta installati i PowerTools (che trovate qui), ci basta digitare il comando seguente dal prompt del DOS:
tfpt tweakui
a questo punto dovrebbe aprirsi una finestra, come quella mostrata di seguito, che ci permette di disabilitare questa opzione.
Ciauz





Archive