mercoledì 31 luglio 2013

[WP7] Path to BitmapImage

Codice per ottere una BitmapImage a partire da un path.

public static BitmapImage ImageFromPath(string path)
{
    Uri imgUri = new Uri(path, UriKind.Relative);
    StreamResourceInfo imageResource = Application.GetResourceStream(imgUri);
    BitmapImage image = new BitmapImage();
    image.SetSource(imageResource.Stream);
    return image;
}

Il path dovrà essere così composto: <NomeProgetto>;component/Path/NomeImmage

lunedì 29 luglio 2013

Ottenere IP Locale

IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
 
string mioIP = host.AddressList.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork).ToString();

sabato 27 luglio 2013

[WPF-SL-Win8] Modern UI (Metro) Charts per Windows 8, WPF, Silverlight

Progetto open source che ci pemette di creare dei grafici in stile metro nella applicazione per Windows 8, WPF e Silverlight.

Grafici disponibili

  • ColumnChart (ClusteredColumnChart, StackedColumnChart, StackedColumnChart100Percent)
  • PieChart (PieChart and Dognut)
  • BarChart (ClusteredBarChart, StackedBarChart, StackedBarChart100Percent)
  • Doughnut Chart
  • Radial Gauge Chart
E' possibile visualizzare un esempio in Silverlight al seguente link

Sito ufficiale

giovedì 25 luglio 2013

[WP7 - WP8] CarGest (Beta)

Vi segnalo un'app in versione beta: CarGest (per gestire tutte, o quasi, le spese delle vostre auto).


Funzionalità:

  1. Anagrafiche: Tipi rifornimento, Veicoli, Categorie manutenzione, Categorie uscita
  2. Rifornimenti
  3. Manutenzioni
  4. Uscite
  5. Backup/Restore tramite SkyDrive

Link allo store

Mandate una mail a ken_1986@hotmail.it per essere abilitati al download

mercoledì 24 luglio 2013

Programmazione asincrona con Async ed Await in C# 4.5

Piccolo esempio sulla programmazione asincrona con le nuove parole chiave del .Net Framework 4.5: async ed await.

C#

public partial class MainWindow : Window
{
    private int Compute()
    {
        int somma = 0;
        for (int i = 0i < 10000i++)
        {
            somma += i;
            Console.WriteLine(i);
        }
 
        return somma;
    }
 
    private Task<int> ComputeAsync()
    {
        return Task.Run(() => Compute());
    }
 
    public MainWindow()
    {
        InitializeComponent();
    }
 
    private void btnCompute_Click(object senderRoutedEventArgs e)
    {
        Console.WriteLine("Elaborazione in corso...");
        int somma = Compute();
        Console.WriteLine("Elaborazione terminata: " + somma);
    }
 
    private async void btnComputeAsync_Click(object senderRoutedEventArgs e)
    {
        Console.WriteLine("Elaborazione async in corso...");
        int somma = await ComputeAsync();
        Console.WriteLine("Elaborazione async terminata: " + somma);
    }
}

 

XAML

<Window x:Class="TestWPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Async/Await C# 4.5" Height="184.831" Width="346.723">
    <Grid>
        <Button Content="Compute" HorizontalAlignment="Left" Margin="38,53,0,0" VerticalAlignment="Top" Width="97" Name="btnCompute" Click="btnCompute_Click"/>
        <Button Content="Compute async" HorizontalAlignment="Left" Margin="171,53,0,0" VerticalAlignment="Top" Width="97" Name="btnComputeAsync" Click="btnComputeAsync_Click"/>
    </Grid>
</Window>

Nell'esempio abbiamo i due metodi:
  • Compute(): metodo sincrono
  • ComputeAsync(): metodo asincrono (per convezione un metodo asincrono termina col suffisso Async), che restituisce un tipo Task<TResult> (Task<int> nel nostro caso). Se il metodo asincrono non deve ritornare nessun tipo basta mettere solo Task.
Il metodo che richiama ComputeAsync() è contrassegnato dalla parola chiave async ed attende il suo terminamento mediante await.

Per approfondire l'argomento vi rimando al sito ufficiale dell'MSDN

martedì 23 luglio 2013

Testare se una collection è nulla o vuota (IsNullOrEmpty)

Metodo esteso che consente di testare se una collection è nulla o vuota (IsNullOrEmpty).

public static bool IsNullOrEmpty<T>(this Collection<T> collection)
{
    return collection == null || (collection != null && collection.Count() == 0);
}

lunedì 22 luglio 2013

[Kinect] Leggere la lingua dei segni

Mediante la kinect è possibile leggere la lingua dei segni (la lingua dei segni è una lingua che veicola i propri significati attraverso un sistema codificato di segni delle mani, espressioni del viso e movimenti del corpo. Fonte: Wikipedia).




Sito ufficiale