mercoledì 18 settembre 2013 #

Windows 8.1 Enterprise RTM

La build RTM di Windows 8.1 Enterprise è disponibile per il download per gli abbonati MSDN .

Buon download

posted @ mercoledì 18 settembre 2013 8.54 | Feedback (5)

lunedì 9 settembre 2013 #

Windows 8.1 RTM e Visual studio 2013 RC

Finalmente disponibili per il download per gli abbonati MSDN Windows 8.1 RTM , Windows Server 2012 RTM e Visual studio 2013 RC Buon download a tutti :)

posted @ lunedì 9 settembre 2013 20.42 | Feedback (7)

giovedì 20 giugno 2013 #

Windows Phone Toolkit June 2013 update

E' disponibile un nuovo aggiornamento per il Toolkit di Windows phone . Ulteriori informazioni disponibili qui

posted @ giovedì 20 giugno 2013 15.56 | Feedback (6)

venerdì 3 maggio 2013 #

Nuova release disponibile : Windows Azure SDK 2.0

E' disponibile una nuova versione dell'sdk di Windows azure è possibile reperire maggiori informazioni sul blog di Scott link

Tags : Windows Azure SDK 2.0,Windows Azure ,Release

posted @ venerdì 3 maggio 2013 8.38

mercoledì 3 aprile 2013 #

Nuova release disponibile dei WCF Data Services

E' disponibile una nuova release dei WCF Data services siamo arrivati alla release 5.4.0 . Qui è possibile reperire maggiori informazioni sulle novità introdotte e i bug fixes .

L'installazione del pacchetto è NuGet only maggiori info sono disponibili qui .

Tags : WCF Data services

posted @ mercoledì 3 aprile 2013 14.59 | Feedback (10)

lunedì 25 marzo 2013 #

Template per la creazione di applicazioni Windows 8

Qui troviamo ben 55 template open source per la creazione di applicazioni Windows 8 .

Tags : Windows 8 , Template

posted @ lunedì 25 marzo 2013 19.19 | Feedback (8)

giovedì 28 febbraio 2013 #

Tips : Ricavare informazioni dal caller di un metodo in C# e VB.net

Usando gli attributi CallerInfo possiamo avere informazioni sul chiamante di un metodo  le informazioni che possono essere recuperate sono:  il percorso del file sorgente, il numero della riga nel file sorgente e il nome del caller , informazioni molto importanti in scenari di debug .

Possiamo accedere agli attributi importando il namespace System.Runtime.CompilerServices  e sono rispettivamente

 

Attributo

Descrizione

Tip restituito

CallerFilePathAttribute

Il percorso assoluto del file sorgente dove è definite il caller

String

CallerLineNumberAttribute

Il numero della riga dove viene richiamato il metodo

Integer

CallerMemberNameAttribute

Il nome della proprietà o del metodo chiamante                       

String

Questi sono gli esempi di utilizzo estratti direttamente da MSDN

C#

public void DoProcessing()

{

    TraceMessage("Something happened.");

}

 

public void TraceMessage(string message,

        [CallerMemberName] string memberName = "",

        [CallerFilePath] string sourceFilePath = "",

        [CallerLineNumber] int sourceLineNumber = 0)

{

    Trace.WriteLine("message: " + message);

    Trace.WriteLine("member name: " + memberName);

    Trace.WriteLine("source file path: " + sourceFilePath);

    Trace.WriteLine("source line number: " + sourceLineNumber);

}

 

 

Vb.net

 

Private Sub DoProcessing()

    TraceMessage("Something happened.")

End Sub 

 

Public Sub TraceMessage(message As String,

        <CallerMemberName> Optional memberName As String = Nothing,

        <CallerFilePath> Optional sourcefilePath As String = Nothing,

        <CallerLineNumber()> Optional sourceLineNumber As Integer = 0)

 

    Trace.WriteLine("message: " & message)

    Trace.WriteLine("member name: " & memberName)

    Trace.WriteLine("source file path: " & sourcefilePath)

    Trace.WriteLine("source line number: " & sourceLineNumber)

End Sub

Per informazioni dettagliate è possibile far riferimento alla documentazione tecnica qui

posted @ giovedì 28 febbraio 2013 11.55 | Feedback (32)

mercoledì 13 febbraio 2013 #

Windows 8 tips : Recuperare informazioni sull’utente

La classe UserInformation contenuta nel namespace Windows.System.UserProfile espone proprietà generiche dell'utente permettendo così il recupero dell'immagine del profilo e informazioni come nome e cognome, consente infine di modificare l'avatar del profilo

Di seguito riepilogo i metodi e la relativa descrizione (Fonte MSDN)

Method

Description

GetAccountPicture

Gets the account picture for the user.

GetDisplayNameAsync

Gets the display name for the user account.

GetDomainNameAsync

Gets the domain name for the user.

GetFirstNameAsync

Gets the user's first name.

GetLastNameAsync

Gets the user's last name.

GetPrincipalNameAsync

Gets the principal name for the user. This name is the User Principal Name (typically the user's address, although this is not always true.)

GetSessionInitiationProtocolUriAsync

Gets the Uniform Resource Identifier (URI) of the session initiation protocol for the user.

SetAccountPictureAsync

Sets the picture for the user's account using an IStorageFile object.

SetAccountPictureFromStreamAsync

Sets the picture for the user's account using an IRandomAccessStream object.

SetAccountPicturesAsync

Sets the pictures for the user's account using an IStorageFile object. Supports adding a small image, large image, and video.

SetAccountPicturesFromStreamsAsync

Sets the pictures for the user's account using an IRandomAccessStream object. Supports adding a small image, large image, and video.

Nell'esempio che segue recupero l'immagine del profilo e il nome completo dell'utente, sul metodo OnNavigatedTo della pagina

protected async override void OnNavigatedTo(NavigationEventArgs e)

{

IRandomAccessStream imageStream = await Windows.System.UserProfile.UserInformation.GetAccountPicture(Windows.System.UserProfile.AccountPictureKind.SmallImage).OpenReadAsync();

BitmapImage UserBmp = new BitmapImage();

UserBmp.SetSource(imageStream);

UserImage.Source = UserBmp;

TbkUserName.Text = await Windows.System.UserProfile.UserInformation.GetDisplayNameAsync();

 

}

Il codice XAML della pagina è il seguente

<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">

<Image Width="100" Height="100" x:Name="UserImage" />

<TextBlock Margin="5,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="TbkUserName" Text="Loading..." />

</StackPanel>

 

posted @ mercoledì 13 febbraio 2013 19.03 | Feedback (11)

venerdì 8 febbraio 2013 #

Windows 8 tips : Recuperare una nuova licenza sviluppatore tramite PowerShell

Con PowerShell possiamo acquisire , rinnovare , visualizzare lo stato e disinstallare una licenza sviluppatore. Per acquisire una nuova licenza è necessario un window live id .La licenza abilita l’utente ad eseguire sulla macchina locale applicazioni metro non ancora certificate dallo store .

Con il comando Show-WindowsDeveloperLicenseRegistration possiamo acquisire o rinnovare una nuova licenza . Attenzione perché il comando deve essere eseguito con privilegi di amministratore

 Con Get-WindowsDeveloperLicense ci viene restituito un oggetto con 2 proprietà
   - ExpirtaionTime di tipo DateTime e indica la data di scadenza della licenza per l’utente in uso
   -
IsValid di tipo boolean indica se la licenza è ancora valida

Utilizzeremò invece il comando Unregister-WindowsDeveloperLicense per rimuovere una licenza esistente .Attenzione perché il comando deve essere eseguito con privilegi di amministratore

Tags : Windows 8  , Developer license

posted @ venerdì 8 febbraio 2013 15.27 | Feedback (102)

martedì 5 febbraio 2013 #

Windows 8 : Gestione dei file e cartelle utilizzati di recente

Nelle applicazioni Windows 8 è possibile tener traccia degli elementi utilizzati di recente mediante la classe MostRecentlyUsedList (Windows.Storage.AccessCache), il sistema gestirà in modo automatico l'ordinamento degli elementi in base all'ultima data di accesso ed eliminerà, superato il limite di 25 items, quelli meno recenti. La classe MostRecentlyUsedList consente di aggiungere nuovi elementi che implementano IStorageItem tramite la procedura Add, la quale ha due overload, uno che accetta solo un oggetto IStorageItem e l'altro che accetta anche uno string, quest'ultimo può essere utilizzato per memorizzare lo scopo di utilizzo del file .

Aggiunta di un elemento ai contenuti recenti

Dopo aver ottenuto il riferimento al file è possibile aggiungerlo alla lista dei contenuti recenti nel seguente modo:

//Seleziono una immagine dalla picture library

FileOpenPicker flop = new FileOpenPicker();

flop.ViewMode = PickerViewMode.Thumbnail;

flop.FileTypeFilter.Add(".jpg");

var selectedFile = await flop.PickSingleFileAsync();

 

// Aggiungo il file alla lista degli ultimi file utilizzati recuperandone il corrispettivo token

var token = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.Add(selectedFile,"Purpose");

Come è possibile notare, il metodo Add restituisce un token che potrà essere impiegato in un secondo momento per recuperare l'istanza del tipo IStorageItem che si vorrà ottenere.

// Dal token recupero il file specificato

var usedFile = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.GetFileAsync(token);

Vi sono 3 metodi per il recupero degli elementi che accettano come parametro il token del file :

  • GetFileAsync, consente di recuperare uno specifico file
  • GetFolderAsync, mediante il quale è possibile ottenere il recupero di una specifica cartella
  • GetItemAsync, permette il recupero di un elemento IStorageItem generico

E' possibile recuperare tutti gli elementi utilizzati di recente tramite la proprietà Entries la quale restituisce un oggetto AccessListEntryView, una collezione di elementi AccessListEntry contenente il token del file e l'eventuale descrizione dello scopo.

// Recupero di tutti i token dal contenitore

foreach (AccessListEntry entry in Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.Entries) {

String recentToken = entry.Token;

}

 

Per approfondire l'argomento è possibile consultare la relativa documentazione tecnica al seguente indirizzo
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh972344.aspx

posted @ martedì 5 febbraio 2013 19.16 | Feedback (20)

martedì 17 aprile 2012 #

Abilitare la compressione GZip su di una response WCF Ria Services

Avendo la necessità di diminuire il peso del traffico di dati utilizzando i Ria Services e migliorarne cosi le performance ,abbiamo la possibilità di abilitare la compressione del traffico HTTP . Su IIS7 e versioni successive lo scenario può essere abilitato facilmente senza l'installazione di plugin di terze parti .

In Windows Vista o Windows 7  è possibile procedere all'installazione cosi

Dal pannello di controllo selezioniamo la voce " Programs and features " e poi "Turn Windows Features on or off " .

A questo punto sulla lista delle features windows abilitiamo le voci “Dynamic Content Compression” e “Static Content Compression” presenti in “Internet Information Services->World Wide Webservices->Performance Features "

 
Su Windows Server 2008/2008 R2 invece dopo aver aggiunto il ruolo "Dynamic Content Compression " se non presente , basterà navigare tramite IIS manager nel sito di interesse o sull'intero server selezionare la voce Compression tra le opzioni e selezionare le voci “Dynamic Content Compression” e “Static Content Compression” .

Per maggiori e dettagliate informazioni sull'abilitazione delle rispettive opzioni su Windows 7 e Windows Server 2008/R2 è possibile far riferimento alla guida di su iis.net http://www.iis.net/ConfigReference/system.webServer/httpCompression

Una volta che le opzioni sono state abilitate tutte le normai richieste HTTP sarannò compresse utilizzando GZip . Per poter abilitare questa feature sulle nostre applicazioni che fanno uso dei Ria services è necessario  aggiungere il mime-type  alla lista di mime che devono essere compressi , in questo caso " application/msbin1 " . Per fare questo apriamo il prompt dei comandi "cmd.exe" (Come amministratori)

Navighiamo nella cartella Inetsrv presente in c:\windows\System32
CD C:\Windows\system32\Inetsrv\
Eseguiamo il seguente comando
appcmd.exe set config -section:system.webServer/httpCompression /+”dynamicTypes.mimeType='application/msbin1',enabled='True']” /commit:apphost

Questo aggiungerà una nuova entry al file Windows\System32\Inetsrv\Config\applicationHost.config .

Basterà adesso riavviare IIS per rendere effettive le modifiche . Per poterne controllare il corretto funzionamento è ovviamente possibile utilizzare Fiddler . A questo punto una normale richiesta prima dell'apportazione della modifica era cosi

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 583
Content-Type: application/msbin1
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 16 Apr 2012 23:20:41 GMT

Ora

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/msbin1
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 16 Apr 2012 23:20:41 GMT
Content-Length: 336

 Alla prossima

posted @ martedì 17 aprile 2012 10.21 | Feedback (27)

mercoledì 14 marzo 2012 #

Schedulazione di una notifica toast in Windows 8

E’ possibile schedulare una notifica toast affinche venga eseguita in un periodo di tempo prestabilitò .

Per far ciò utilizziamo  ScheduledToastNotification anziche ToastNotification .

Questo tipo di notifica da vita a due possibilità che sono

  • lanciare la notifica dopo un periodo di tempo determinato
  • ripetere la notifica in un intervallo di tempo specificato per un certo numero di volte

Possiamo quindi lanciare una nuova notifica schedulata cosi

Creo una nuova notifica toast

// Seleziono il template 
ToastTemplateType templateType = ToastTemplateType.ToastText02;

// Ne carico il contenuto XML e completo le informazioni che mi servono
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(templateType);
           
XmlNodeList Descriptions = toastXml.GetElementsByTagName("text");
            
Descriptions[0].InnerText = "Andrea";
Descriptions[1].InnerText = "Ho una nuova notifica !!!";

In questo caso istanzio un nuovo oggetto ScheduledToastNotification  indicando che deve essere visualizzato dopo 10 secondi dalla creazione .Il primo parametro rappresenta l’xml del template il secondo di tipo DateTime dopo quanto tempo avviare la notifica

ScheduledToastNotification toast = new ScheduledToastNotification(toastXml, DateTime.Now.AddSeconds(10));

In questo caso utilizziamo invece il secondo costruttore

ScheduledToastNotification  toast = new ScheduledToastNotification(toastXml,DateTime.Now.AddSeconds(10),new TimeSpan(0,1,00),2U);

Oltre ai primi due parametri che abbiamo menzionato precedentemente troviamo 2 nuovi parametri

MaximumSnoozeCount (TimeStamp) rappresenta l’intervallo tra una notifica e l’altra. Il valore puà essere compreso tra 60 secondi e 60 minuti .

SnoozeInterval (UInt) rappresenta il numero di volte che la notifica deve essere visualizzata . E’ possibile impostare un valore minimo di 1 ad un massimo di 5 .

E’ possibile scaricare l’esempio BuildToastNotification . La relativa documentazione è consultabile qui .

Tags : Windows 8 Consumer Preview , ScheduledToastNotification

posted @ martedì 20 marzo 2012 20.46 | Feedback (12)

giovedì 8 marzo 2012 #

Creare una nuova notifica toast in Windows 8 Consumer preview

Requisiti

  • Un'installazione di Windows 8 Consumer preview
  • Microsoft Visual Studio 11 Express beta for Windows 8

In questo esempio vedremo come creare una nuova notifica toast. Il post presuppone che il lettore sappia cos’è una notifica toast e abbia familiarità con la creazione di applicazioni metro style su Windows 8.

L'oggetto principale che permette di lavorare con le toast notification è la classe ToastNotificationManager che troviamo in Windows.UI.Notifications .

I metodi principali che troviamo sono

CreateToastNotifier Crea ed inizializza una nuova istanza del tipo ToastNotifcation permettendo cosi all'applicazione chiamante di creare una nuova notifica toast
CreateToastNotifier(String)
Crea ed inizializza una nuova istanza del tipo ToastNotifcation agganciandola ad un'applicaziobe specifica
GetTemplateContent Recupera il contenuto xml prededinito che rappresenterà il template della nostra toast notification . Accetta come parametro l'enum ToastTemplateType

Per poter scatenare una notifica toast è necessario che sul maniifest dell'applicazione  la proprietà Toast capable  sia impostata a Yes . Per far questo dalla solution explorer apriamo con un doppio click il file Package.appxmanifest  e dal tab Application UI impostiamo la proprieta a true

Il colore di sfondo e il colore del testo che verrànno utilizzati per la visualizzazione della notifica dipendono dalle proprietà  Background color e ForegroundText contenuti nel tab Application UI che abbiamo precedentemente utilizzato .

ManifestEditor

Il primo step consiste nel caricare il template XML che rappresenterà la nostra notifica  , per questo esempio utilizzo ToastText02

// Seleziono il template 
ToastTemplateType templateType = ToastTemplateType.ToastText02;

// Ne carico il contenuto XML e completo le informazioni che mi servono
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(templateType);
            
XmlNodeList Descriptions = toastXml.GetElementsByTagName("text");
           
Descriptions[0].InnerText = "Andrea";
Descriptions[1].InnerText = "Ho una nuova notifica !!!";

//Creo una nuova Notifica e la mando in esecuzione
ToastNotification toast = new ToastNotification(toastXml);

ToastNotificationManager.CreateToastNotifier().Show(toast);

Questo è quello che abbiamo appena creato

demo toast

L’icona che viene visualizzata in basso a destra è l’icona che rappresenta l’applicazione e può essere definita tramite l’application manifest (Small logo).

Nei post che seguirannò

Gestire gli eventi di una notifica toast
Gestione dei suoni associati ad una notifica
Schedulazione di una notifica toast

Tags : Windows 8 Consumer Preview , Toast notification , ToastNotificationManager

posted @ venerdì 9 marzo 2012 11.03 | Feedback (21)

mercoledì 7 marzo 2012 #

Disponibile Bing Maps SDK for Metro style apps Beta

Da poche ore è  disponibile la beta dell'sdk di Bing Maps da usare nelle applicazioni metro style .

E' possibile scaricare l'sdk qui  , potete far riferimento alla documentazione qui

 

posted @ mercoledì 7 marzo 2012 8.27 | Feedback (18)

domenica 4 marzo 2012 #

W8 Tips #01 - "Access denied" durante l'accesso agli SMS

Quando cerchiamo di accedere agli sms nonostante l'aggiunta delle correte capabilities " Text messaging " viene scatenata l'eccezzione " Access denied " perchè nessun messaggio di conferma appare .

E' un problema noto della consumer preview e per agirare il problema è necessario aggiungere questa nuova chiave al registro di sistema

HKLM\Software\Microsoft\Ole\AppCompat\ApplicationSTA DWORD VALUE DefaultEnableApplicationSTA  = 0

Tags: Windows 8 Consumer Preview ,SMS,Access denied

posted @ domenica 4 marzo 2012 18.19 | Feedback (23)