Ammy al posto dello Xaml?

L’altra notte, complice un po’ di insonnia e tensione, non riuscivo a dormire. Mi sono svegliato ed ho cominciato a sfogliare dal telefono la mia timeline di Twitter.

Fino a quando trovo questo:

image

Un certo Miguel da Icaza mi porta a conoscenza dell’esistenza di Ammy. Di cosa si tratta? Lo riassumo in qualche punto per chiarire le idee:

  • il sito di riferimento è il seguente: https://www.ammyui.com/
  • è un linguaggio json-like da utilizzare al posto dello XAML per descrivere la UI
  • è un package da scaricare via NuGet: solo 59Kb
  • rispetto a XAML presenta dei vantaggi: è più compatto (ma va?), supporta nativamente la capacità di modificare a run-time la Window o la Page, implementa il concetto di mixin, l’Intellisense nei file .ammy in Visual Studio funziona a meraviglia
  • ci sono anche svantaggi: essendo json, non è possibile in questo momento collassare/espandere porzioni di view, tecnica che io utilizzo molto per nascondere parti di Window o di Page che non mi interessano in quel momento. Al momento supporta solamente WPF e non UWP. Non ho ancora utilizzato Ammy in produzione (è uscito il 22/12/2016), quindi non ho esperienze dirette

Ad esempio, una porzione di XAML come questa:

   1: <StackPanel>

   2:     <TextBlock Text="A story to tell" />

   3:     <TextBlock Text="{Binding Story}" Style="{StaticResource StoryStyle}" />

   4: </StackPanel>

 

Diventa il seguente blocco Ammy:

   1: StackPanel {

   2:     TextBlock { "A story to tell" }

   3:     TextBlock {

   4:         Text: bind Story

   5:         Style: resource "StoryStyle"

   6:     }

   7: }

 

Più compatto, è vero, ma Ammy supporta delle feature davvero molto interessanti, come il poter definire una sorta di “funzione” (mixin) da richiamare dove serve per generare controlli più o meno complessi. Ammy è da provare senz’altro, tanto più che è possibile mischiare tranquillamente view implementate in XAML con altre in Ammy. Le view implementate in Ammy sono salvate in file con estensione .ammy, che all’atto della compilazione vengono tradotte e convertite in XAML. Il team di sviluppo afferma che qualsiasi cosa fattibile con XAML è fattibile anche con Ammy.

CharMapMe 1.2 supporta già adesso Ammy!

Ho subito adattato il mio CharMapMe affinchè possa generare Label, TextBlock e TextBox in linguaggio Ammy. La versione 1.2 è già online, pronta per essere installata via ClickOnce.

Ho scritto al team di sviluppo di Ammy, giusto per metterli al corrente del mio tool, mi hanno risposto entusiasti ed hanno capito il valore di CharMapMe.

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.