mercoledì 18 settembre 2013
#
La build RTM di Windows 8.1 Enterprise è disponibile per il download per gli abbonati MSDN .
Buon download
lunedì 9 settembre 2013
#
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 :)
giovedì 20 giugno 2013
#
E' disponibile un nuovo aggiornamento per il Toolkit di Windows phone . Ulteriori informazioni disponibili qui
venerdì 3 maggio 2013
#
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
mercoledì 3 aprile 2013
#
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
lunedì 25 marzo 2013
#
Qui troviamo ben 55 template open source per la creazione di applicazioni Windows 8 .
Tags : Windows 8 , Template
giovedì 28 febbraio 2013
#
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
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
mercoledì 13 febbraio 2013
#
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)
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>
venerdì 8 febbraio 2013
#
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
martedì 5 febbraio 2013
#
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
martedì 17 aprile 2012
#
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
martedì 20 marzo 2012
#
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
venerdì 9 marzo 2012
#
Requisiti
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 .
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
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
mercoledì 7 marzo 2012
#
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
domenica 4 marzo 2012
#
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