Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Windows 8, WinRT API e applicazioni Metro Style

Come creare una semplicissima interazione in stile Metro con C++ come in C#
Come creare una semplicissima interazione in stile Metro con C++ come in C#
Link copiato negli appunti

Abbiamo già avuto modo di parlare di Metro e di programmazione per Windows 8. In questo articolo rivedremo brevemente alcuni esempi fatti nelle sessioni milanesi su Windows 8 Consumer Preview di Giorgio Sardo e cercheremo di prendere dimestichezza con la realizzazione di applicazioni Metro Style.

Gli strumenti

Per iniziare a lavorare possiamo installare una versione beta di Visual Studio 11 su Windows 7, oppure farla girare direttamente su una macchina virtuale equipaggiata con Windows 8 Consumer Preview.

Figura 1. Visual Studio 11 beta
Visual Studio 11 beta

C++ o C#... comunque WinRT

L'aspetto principale da sottolineare è che possiamo realizzare le nostre applicazioni utilizzando praticamente qualunque linguaggio di programmazione.

Figura 2. Linguaggi di programmazione
linguaggi di prpogrammazione

Come si vede in figura, alla base di una applicazione Metro Style (a differenza delle classiche applicazioni desktop) c'è il Windows Runtime, uno strato di API che ci permette di colloquiare in modo diretto con l'hardware della macchina (devices, media, comunicazione).

Proprio grazie al Windows Runtime possiamo creare applicazioni utilizzando le conoscenze che già abbiamo su:

  • HTML/Javascript
  • C#/XAML
  • C++/XAML

Possiamo quindi ottenere risultati analoghi, quanto a performance e capacità, in C++ come in Javascript. Non ci rimane che sperimentare.

Un bottone in XAML e C++

Iniziamo lanciando Visual studio 11 e creando un nuovo progetto. Scegliamo una applicazione Visual C++ vuota:

Figura 3. Visual C++ nuova applicaizone e template vuoto
(clic per ingrandire)


Visual C++ nuova applicaizone e template vuoto

L'interfaccia grafica è in XAML, possiamo inserire un bottone trascinandolo dalla toolbox:

Figura 4. Creare un bottone
(clic per ingrandire)


Creare un bottone

Clicchiamo poi sul bottone e personalizziamo l'handler dell'evento click.

void Application1::BlankPage::Button_Click_1(Platform::Object^ senderm Windows::UI::Xaml::RoutedEventArgs^ e)
{
  auto dlg = ref new Windows::UI:Popups::MessageDialog("Ciao C++");
  dlg->ShowAsync();
}

Una volta lanciato il debugger parte il simulatore di METRO che ci mostra il bottone da premere (con il mouse o con il touchscreen). All'azione sul bottone apparirà una semplice finestra di dialogo con messaggio. Il tutto utilizzando C++ e con pochissimo codice.

Applicazione Metro Style C#

Vediamo ora come utilizzare gli stessi oggetti con C# ed ottenere un risultato analogo, sarà utile poi anche spendere due parole sul fatto che il codice che abbiamo prodotto, anche in C++, è asincrono.

Iniziamo con il riprodurre bottone e finestra di dialogo, creiamo una nuova applicazione vuota C#:

Figura 5. Nuova applicazione vuota C#
Nuova applicazione vuota C#

Trasciniamo dentro il bottone e vi clicchiamo due volte per scrivere il codice che gestisce il relativo click.

private void Button_Click_1(object sender, RoutedEventArgs e)
{
  var dlg = new Windows.UI.Popups.MessageDialog("Ciao C#");
  dlg.ShowAsync();
}

La prima cosa che notiamo è che abbiamo utilizzato gli stessi identici oggetti con entrambi i linguaggi, a conferma che WinRT è invocabile allo stesso modo da C# come da C++.

La seconda cosa da sottolineare è la presenza del suffisso 'Async', nel metodo invocato per mostrare la dialog.

Ti consigliamo anche