DarioSantarelli.Blog("UgiDotNet");

<sharing mode=”On” users=”*” />
posts - 176, comments - 105, trackbacks - 3

My Links

News


This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights.




Tag Cloud

Archives

Post Categories

My English Blog

domenica 2 novembre 2008

Windows Live Tools for Visual Studio (November 2008 CTP)

Ho installato da poco i Windows Live Tools for Microsoft Visual Studio (November 2008 CTP). Le novità introdotte da questa versione sono le seguenti:

  • All the controls are now compatible with trust policy of Windows Azure
  • New templates - Windows Live Web Application and Windows Live Web Role. Windows Live Web Role works for creating web sites web role in a Windows Azure Cloud Project.
  • SilverlightStreamingMediaPlayer Control upgraded to Silverlight 2.0 Tools.


L'installazione integra tre nuovi template di progetto per Visual Studio:

  • ASP.NET Windows Live Web Site
  • Windows Live Web Application
  • Windows Live Web Role (template for Windows Azure Cloud Projects)


Provando a creare un progetto ASP.NET Windows Live Web Site, automaticamente vengono aggiunti al progetto i riferimenti alle library

  • Microsoft.Live.ServerControls.dll (Controlli Live e Virtual Earth)
  • System.Web.Silverlight.dll (Controlli Silverlight)

Per curiosità mi sono subito messo a studiare le potenzialità dei nuovi controlli Windows Live. Ecco una loro breve presentazione:

  •  IDLoginStatus : permette di integrare il login di Windows Live nella nostra applicazione web. Per un corretto utilizzo è necessaria una procedura di registrazione (Getting Your Application ID for Web Authentication) su Azure Services Developer Portal in modo da ottenere una coppia [ApplicationID,SecretKey] da impostare nella sezione <appSettings> del web.config (di default troviamo già due apposite keys: wll_appid e wll_secret). Tali valori vanno obbligatoriamente specificati rispettivamente nelle proprietà ApplicationIDConfigKey e ApplicationSecretConfigKey del controllo. Ad esempio:
     <live:IDLoginStatus ID="IDLoginStatus1" runat="server" ApplicationIDConfigKey="wll_appid"ApplicationSecretConfigKey="wll_secret"/>
  • IDLoginView : estende le funzionalità del controllo LoginView di ASP.NET e fornisce dei template aggiuntivi per gestire sia la singola autenticazione Windows Live (LoggedInIDTemplate) che entrambe le autenticazioni Windows Live / ASP.NET (LoggedInAllTemplate). I metodi di questo controllo ci permette inoltre di associare un MembershipUser della nostra Web application ad un Windows Live ID in modo da realizzare un meccanismo vero e proprio di single sign-on. Addirittura impostando a true la proprietà AutomaticallyAssociateAuthentication è possibile effettuare tale associazione automaticamente.
  • MessengerChat : abilita l'accesso WLM in una nostra pagina web. Anche in questo caso l'aspetto interessante è la possibilità di associare una Messenger Chat ID (CID) ad un MembershipUser di ASP.NET (se autenticato). Qua sotto ho riportato un esempio a riguardo.
  • Contacts : permette l'integrazione delle funzionalità Windows Live Contacts tramite un set di API client-side / server-side. Praticamente consiste nella versione ASP.NET del corrispondente controllo Javascript http://dev.live.com/contacts.
  • SilverlightStreamingMediaPlayer: estende il controllo Silverlight Media Player permettendo la riproduzione di video anche da un account Silverlight Streaming. In fase di design si possono specificare le credenziali di accesso e scegliere i video che si vogliono visualizzare.
  • Map: versione ASP.NET del corrispondente controllo Javascript http://dev.live.com/virtualearth/sdk/.


Vediamo ora un semplice esempio di utilizzo dei controlli Contacts e MessengerChat:

Il controllo MessengerChat offre diverse possibilità di personalizzazione, soprattutto per quanto riguarda il layout. Anzitutto, tramite la proprietà View possiamo impostare 3 diverse possibilità di visualizzazione (Window (default), Icon, Button).
La proprietà PrivacyStatementURL invece va valorizzata con l'URL della pagina Web contenente l'informativa sulla privacy da visualizzare all'utente al momento dell'accesso a WLM. Questa proprietà è OBBLIGATORIA.

<live:MessengerChat ID="MessengerChat1" runat="server" PrivacyStatementURL="~/privacyPolicy.htm" Height="400px" 
Market="it-IT" SignUpLinkText="WLM SignUp!" View="Window" onmessengerchatsignup="OnMessengerChatSignUp"> <ColorTheme Name="Default"></ColorTheme> </live:MessengerChat>


Il controllo espone un evento OnMessengerChatSignup che possiamo sfruttare per l'associazione della Chat (CID) all'utente ASP.NET correntemente "loggato":

 protected void OnMessengerChatSignup(object sender, MessengerChatSignupEventArgs e)
 {
if (Page.User.Identity.IsAuthenticated) MessengerChat1.SetUserAssociation(Page.User.Identity.Name, e.CID); }


Per quanto riguarda il controllo Contacts, allo stesso modo possiamo scegliere diverse View: List, Tile, TileList(default). Per la modalità List in particolare possiamo valorizzare la proprietà DataDesired specificando una lista di informazioni separate da virgola (es. name, email, phone, firstname...) che vogliamo rendere visibili.

<live:Contacts ID="Contacts1" runat="server" DataDesired="name,email..." 
               Height="400px" View="Tile" Width="250px" Market="it-IT" Message="ciao" 
               PrivacyStatementURL="~/privacyPolicy.htm" />


Infine, l'enanchement questo controllo permette ora l'aggiunta e la rimozione di Live contacts server-side :

using Microsoft.Live.ServerControls;
List<Contact> myContacts = new List<Contact>();
Contact myContact = new Contact();
myContact.EmailPersonal = abc@xyz.com;
myContact.FirstName = "Dario";
myContact.LastName = "Santarelli"; myContacts.Add(myContact); ContactsControl.CreateContacts(myContacts); ContactsControl.CommitContacts();


N.B.: Il metodo CommitContacts() applica effettivamente ciascun cambiamento apportato, scatenando l'aggiornamento del contact store dell'utente.

 

Riferimenti utili:


Technorati Tag: ,

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0) |

Powered by:
Powered By Subtext Powered By ASP.NET