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

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: ,

Print | posted on domenica 2 novembre 2008 12:34 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET