Archivio Autore: acquariusoft

La Mixed Reality è qui

Con l’ultimo aggiornamento di windows 10 (il fall creators update) disponibile da pochi giorni la mixed reality entra nelle case di tutti a prezzi finalmente accessibili,prima d’ora infatti gli unici device a sfruttarla erano gli hololens con un prezzo decisamente proibitivo, adesso invece i nuovi device sono disponibili con prezzi di partenza sotto i 400€ diventano decisamente più interessanti.

Noi italiani (purtroppo succede spesso) siamo stati lasciati indietro per ora visto che i device non sono disponibili nel nostro territorio ma basta recarsi nella versione inglese dello store di Microsoft o di Amazon per poterli comprare e farseli recapitare a casa.

Naturalmente anche io ho approfittato e devo dire che l’esperienza d’uso è decisamente positiva (anche se gli hololens sono e rimarrano per molto un’altra cosa)

mixed_hp

Ma venendo a quello che ci interessa come sviluppatori come possiamo lavorarci?

Ci sono due strade per lo sviluppo:

  • Se vogliamo realizzare delle applicazioni immersive dobbiamo dotarci di Visual Studio 2017 in accoppiata con Unity che ci permetteranno di sfruttare tutta la potenza di questi device (maggiori dettagli qui)
  • altrimenti (e questa è la cosa più interessante) tutte app UWP saranno da subito disponibili all’interno dell’ambiente virtuale senza nessuna modifica e pronte ad essere pinnate sul muro virtuale e fatte partire (maggiori informazioni qui). Naturalmente se vorremmo dare una migliore usabilità nell’ambiente 3d dovremo utilizzare qualche accorgimento nella realizzazione dell’interfaccia e gestire anche le altre forme di input disponibili come la voce o lo sguarda.

Come potete vedere di carne al fuoco ce n’è veramente tanta e questi nuovi device non faranno altro che dare una maggiore spinta alle app UWP che adesso hanno trovato un’ulteriore casa

Vi aspetto nei prossimi articoli dove tratteremo più approfonditamente lo sviluppo sulla Mixed Reality , nel frattempo vi lascio il link dove trovare tutti i dettagli in merito https://developer.microsoft.com/en-us/windows/mixed-reality/development, e come al solito non mi resta altro che augurarvi buon coding 😀

 

 

Tunnling veloce per il debug delle nostre app o siti

Vi sarà sicuramente capitato di trovarvi davanti l’esigenza di dover esporre in rete un servizio presente sul nostro PC ad esempio per poter eseguire un test direttamente da un device esterno prima di pubblicarlo in rete o magari far provare delle versioni di test delle nuove API che state realizzando.

Quello di cui voglio parlarvi è un utile tool che ci permette proprio di creare un

Secure tunnels to localhost

”I want to expose a local server behind a NAT or firewall to the internet.”

come cita la homepage di NGROK che a discapito del nome inpronunciabile fà il suo dovere in modo semplice e veloce oltre ad essere gratuito nella sua versione base e (cosa che non guasta mai) multipiattaforma.

Una volta scompattato il pacchetto per poter iniziare ad utilizzarlo non dovremo far altro che lanciare il comando

ngrok http [port] -host-header=”localhost:[port]”

e subito vedremo in output sulla console l’indirizzo che è stato assegnato al nostro server (nella versione a pagamento è possibile scegliere un nome fisso mentre nella versione free varierà di volta in volta) che potremo utilizzare per richiamare il nostro servizio come se fosse pubblicato in rete e raggiungibile da qualsiasi dispositivo connesso

Vediamo quali possono essere i casi di utilizzo in cui potrebbe tornarci utile:

  • debug di api richiamate da applicazioni installate su device fisici
  • debug di chiamate webhook da parte di servizi terzi (es IPN di paypal)
  • visualizzazione del sito in sviluppo da parte di una persona esterna
  • ecc ecc.

Come sempre non mi resta che augurarvi buon Coding!!

Project Rome e cross device su IoProgrammo

ioprogrammo_july2017

Questo mese su IoProgrammo numero 215 di Luglio troverete il mio nuovo articolo su Project Rome e come utilizzarlo per condividere dati e funzionalità tra le varie piattaforme su cui la vostra applicazione è disponibile.

Una funzionalità disponibile in windows 10 che potrà dare una marcia in più alle vostre applicazioni.

Buon coding!!

 

DotNetAbruzzo su Technet

Grazie ad Emiliano Musso ho avuto modo di fare un’intervista per raccontare quanto abbiamo fatto quest’anno con DotNetAbruzzo

Già qualche giorno fà era stata postata la versione inglese dell’articolo

https://blogs.technet.microsoft.com/wikininjas/2017/06/23/friday-international-update-news-from-dotnet-abruzzo-italian-community/

Da oggi è presente anche quella in italiano.

https://blogs.technet.microsoft.com/wikininjasit/2017/07/09/sunday-special-aggiornamenti-dalla-community-dotnet-abruzzo/

Non posso far altro che ringraziare Emiliano per l’opportunità e consigliarvi di leggere l’articolo in questione 😀

Secondo rinnovo come MVP :D

mvp

Da quest’anno il 1 luglio è diventata una scadenza importate per tutti gli MVP in quanto le riconferme sono state unificate e non vengono più effettuate a scaglioni trimestrali.

Con mia grande gioia quest’anno sono stato riconfermato per la seconda volta e devo dire che è sempre una grande emozione ricevere questa mail che sancisce un riconoscimento di tutti gli sforzi fatti in ambito community sacrificando il proprio tempo per poter riuscire a condividere con gli altri quello che più mi piace, cioè la tecnologia

Quest’anno è stato veramente intenso e proprio qualche giorno fà è il grande Emiliano Musso mi ha contattato ed abbiamo realizzato un post sul blog technet proprio ripercorrendo tutto ciò che la community DotNetAbruzzo (di cui sono veramente onorato di essere il fondatore) ha avuto modo di realizzare durante l’anno

https://blogs.technet.microsoft.com/wikininjas/2017/06/23/friday-international-update-news-from-dotnet-abruzzo-italian-community/

Come al solito l’impegno è stato tanto ma le soddisfazioni non sono mancate e soprattutto devo ringrazione Angelo Gino Varrati e Pierstefano Tucci che in questo anno si sono aggiunti a me e mi hanno dato una mano nell’organizzazione, senza di loro molte cose sarebbero state veramente impossibili 😀

Oltre poi a quanto fatto a livello community ci sono stati anche altre contributi a livello personale, le risposte sui forum, gli articoli su questo blog, quelli sul blog msdn, i podcast con gli amici di DotNetPodcast e gli articoli su ioProgrammo, guardando indietro direi che qualcosa l’ho fatta 😀

Come al solito questo riconoscimento non vuole essere solo un punto di arrivo, ma uno stimolo ad andare sempre avanti ed a cercare di dare sempre di più, quindi passate le vacanze sarà ora di rimboccarsi di nuovo le maniche ed andare avanti.

Buon Coding a tutti!!

Articolo il tuo sito in un’app su ioprogrammo

4-213g

Sul numero 213 di questo mese di ioprogrammo è stato pubblicato il mio articolo su come utilizzare Xamarin per portare il vostro blog wordpress in un’app su Windows, Android e iOS.

Buona lettura 😀

Un nuovo mediacenter per Xbox su ioprogrammo

E’ stato pubblicato su ioprogrammo numero 2012 di aprile 2017 il mio articolo su come scrivere il proprio mediacenter per Xbox utilizzando tutta la potenza delle app UWP

4-212g

Eliminare ogni traccia di visual studio dal sistema

Con l’arrivo di Visual Studio 2017 in versione RTM molti di voi si troveranno nella situazione di voler disinstallare la versione che hanno attualmente e mantenere solo la nuova.

Purtroppo anche procedendo con la disinstallazione molti componenti non vengono rimossi completamente occupando spazio inutile. Esiste però un’applicativo che ci permette di fare una pulizia completa del nostro sistema.

Si chiama ovviamente Visual Studio Uninstaller ed è sviluppato direttamente da Microsoft e come và tanto di moda ultimamente è opensource e potete scaricarlo direttamente dalla pagina github del progetto

https://github.com/Microsoft/VisualStudioUninstaller/releases

Una volta estratto il file vi basterà aprire un prompt dei comandi in modalità amministratore e lanciare l’eseguibile Setup.ForcedUninstall.exe.

Non dovremo poi far altro che rispondere Y per confermare l’operazione.

Sul mio surface l’operazione dopo la disinstallazione normale mi ha permesso di recuperare altri 7 giga che non sono pochi!

Buon coding!!

 

Utilizzare il ProgressRing nell’ActivityIndicator in Xamarin Forms

Su Xamarin forms per le app UWP il componente ActivityIndicator è mappato sulla classe ProgressBar e come è possibile potete vedere nello screen non è un comportamento congruente con le altre piattaforme e la momento non c’è modo di cambiarlo con un ProgressRing.

activityindicatorCon il meccanismo dei CustomRenderer possiamo ovviare a questo problema in modo molto semplice inserendo una semplice classe nel nostro progetto UWP

[assembly: ExportRenderer(typeof(ActivityIndicator), typeof(RingActivityIndicatorRenderer))]
namespace DoGethersApp.UWP
{
    public class RingActivityIndicatorRenderer : ViewRenderer<ActivityIndicator, Windows.UI.Xaml.Controls.ProgressRing>
    {
        private Brush foregroundDefault;
        protected override void OnElementChanged(ElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            if (e.NewElement != null)

            {
                if (Control == null)
                {
                    SetNativeControl(new Windows.UI.Xaml.Controls.ProgressRing());
                    Control.Loaded += OnControlLoaded;
                }
                UpdateIsRunning();
            }
        }

        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);
            if (e.PropertyName == ActivityIndicator.IsRunningProperty.PropertyName)
            {
                UpdateIsRunning();
            }

            else if (e.PropertyName == ActivityIndicator.ColorProperty.PropertyName)
            {
                UpdateColor();
            }
        }

        void OnControlLoaded(object sender, RoutedEventArgs routedEventArgs)
        {
            foregroundDefault = Control.Foreground;
            UpdateColor();
        }

        void UpdateColor()
        {
            Color color = Element.Color;
            if (color == Color.Default)
            {
                Control.Foreground = foregroundDefault;
            }
            else
            {
                Control.Foreground = color.ToBrush();
            }
        }

        void UpdateIsRunning()
        {
            Control.IsActive = Element.IsRunning;
        }
    }

    internal static class ConvertExtensions
    {

        public static Brush ToBrush(this Color color)
        {
            return new SolidColorBrush(color.ToWindowsColor());
        }

        public static Windows.UI.Color ToWindowsColor(this Color color)
        {
            return Windows.UI.Color.FromArgb((byte)(color.A * 255), (byte)(color.R * 255), (byte)(color.G * 255), (byte)(color.B * 255));
        }
    }
}

in questo modo verranno modificati tutti gli ActivityIndicator per utilizzare il ProgressRing, se vogliamo avere però maggior libertà e decidere se  e quando utilizzarlo ci basterà fare nel progetto comune una nuova classe che estende ActivityIndicator e modificare il CustomRender facendo riferimento a quest’ultima classe.

In questo modo potremo decidere su utilizzare una o l’altra a seconda delle esigenze, sulle altre piattaforme sarà visualizzato sempre lo stesso componente mentre su windows verrà visualizzato un tipo di progressbar o l’altra in base alla classe che utilizzeremo.

Buon coding!!!

 

UWP: ricreiamo la funzione ToTitleCase

Come ben sappiamo la piattaforma UWP non dispone di tutte le funzionalità presenti nella versione del .Net Framework versione desktop. Una funzione che può essere utile in alcuni casi è ToTitleCase che come possiamo intuire dal nome converte il testo in parole con iniziali maiuscole come è possibile vedere nella documentazione ufficiale

https://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

La versione standard permette di fare controlli più fini anche in base alla lingua di sistema ma se abbiamo bisogno solo della sua funzione base possiamo utilizzare questo semplice metodo

public string toTitleCase(string value)
{
    if (value == null)
        return null;
    if (value.Length == 0)
        return value;

    StringBuilder result = new StringBuilder(value);
    result[0] = char.ToUpper(result[0]);
    for (int i = 1; i < result.Length; ++i)
    {
        if (char.IsWhiteSpace(result[i - 1]))
            result[i] = char.ToUpper(result[i]);
        else
            result[i] = char.ToLower(result[i]);
    }
    return result.ToString();
}

che converte in maiuscolo l’iniziale di ogni parola ed in minuscolo quelle seguenti.

Una piccola utility che a volte può tornare utile

Buon coding!!!

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi