Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1906, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

gennaio 2017 Blog Posts

Xamarin.Forms e OnIdiom con le Grid

Sempre a proposito dell'uso di OnIdiom lato XAML, per adattare la UI a seconda del tipo di device, c'è da fare attenzione a quando si usa con i layout Grid. Se per esempio volessimo adattare l'altezza delle RowDefinition e la larghezza delle ColumnDefinition, saremmo portati ad usare il tipo Double, che connota il loro valore. In realtà questo solleverebbe un'eccezione, poiché in questo caso specifico Xamarin.Forms si aspetta un tipo GridLength. Ecco un esempio:   <Grid>     <Grid.RowDefinitions>       <RowDefinition>         <RowDefinition.Height>           <OnIdiom x:TypeArguments="GridLength">             <OnIdiom.Phone>20</OnIdiom.Phone>             <OnIdiom.Tablet>30</OnIdiom.Tablet>           </OnIdiom>         </RowDefinition.Height>       </RowDefinition>     </Grid.RowDefinitions>   </Grid> Alessandro

posted @ martedì 31 gennaio 2017 23:00 |

Xamarin.Forms: adattare la UI da XAML a seconda del device

Sapete che Xamarin.Forms espone la classe Device, che ha due metodi OnPlatform e OnIdiom. Il primo consente di eseguire azioni o adattare lo XAML a seconda del sistema (iOS, Android, Windows) mentre il secondo consente di sapere se l'app sta girando su telefono, tablet o desktop (solo UWP). Entrambi possono essere utilizzati anche in modalità dichiarativa. OnPlatform è ben noto, OnIdiom un po' meno. Ecco un esempio che stabilisce il padding di una pagina in modo diverso a seconda che l'app sia su telefono o tablet:   <ContentPage.Padding>     <OnIdiom x:TypeArguments="Thickness">       <OnIdiom.Phone>20</OnIdiom.Phone>       <OnIdiom.Tablet>30</OnIdiom.Tablet>     </OnIdiom>   </ContentPage.Padding> Chiaramente si può fare anche da C#. Alessandro

posted @ lunedì 30 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - Celebrity recognition

Dopo aver parlato di OCR nel post precedente, sempre nell'ambito dei Microsoft Cognitive Services utilizzati con Xamarin.Forms, stavolta parliamo dell'ultima area di Computer Vision, ossia quella nota col nome di Celebrity recognition. Come il nome lascia intendere, questo servizio consente di riconoscere celebrità in una foto. Ma è solo l'inizio. Considerazioni sul Domain-specific Model Ciò che abbiamo visto finora sull'analisi di immagini è un qualcosa di alto livello, inteso come analisi generica dei contenuti. Microsoft sta lavorando su un sistema di analisi più specifico, attraverso i c.d. domain-specific model, che consentiranno di eseguire analisi specializzate su categorie ben precise di immagini e/o persone....

posted @ domenica 29 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - OCR

Nel post precedente abbiamo iniziato a parlare di Computer Vision API nell'ambito dei Cognitive Services di Microsoft, sfruttati all'interno di un'app multi-piattaforma scritta in Xamarin.Forms per il riconoscimento di ciò che ci circonda. Computer Vision include anche un servizio dedicato all'OCR (Optical Character Recognition) e che serve per il riconoscimento di testo all'interno di immagini. Riprendiamo quindi il progetto iniziato la volta precedente, non dobbiamo fare aggiunte di librerie perché abbiamo già tutto e va bene ancora la stessa subscription key. Gli oggetti con cui lavoriamo La classe VisionServiceClient espone un metodo chiamato RecognizeTextAsync, che riconosce il testo su un'immagine passata come Stream....

posted @ mercoledì 25 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - Computer Vision API

Dopo aver parlato, nell'ambito dei Microsoft Cognitive Services, di Face ed Emotion API nei post precedenti, iniziamo a parlare delle Computer Vision API. Cosa ci permettono di fare? Per capirlo bisogna distinguerle in tre parti, ognuna delle quali occupa anche un post specifico: Vision. Analizza una foto ed è in grado di descriverne il contenuto producendo un testo in linguaggio naturale, oltre a rilevare la tipologia di contenuto (offensivo, razziale), i colori più evidenti e di generare automaticamente una serie di tag per categorizzare il contenuto stesso. OCR. Data un'immagine con del testo, restituisce...

posted @ martedì 24 gennaio 2017 08:18 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - Emotion APIs

Nel post precedente abbiamo parlato delle Face API, utilizzandole in un'app cross-platform creata con Xamarin.Forms per il riconoscimento visivo su Android, iOS e Windows. Abbiamo visto come le Face API consentano di riconoscere tratti somatici e caratteristiche di un viso, inclusa l'età (approssimativa), genere, barba e baffi. In questo post parliamo del naturale corollario alle Face API, ossia le Emotion API. Come il nome lascia intendere, le Emotion API consentono di rilevare le emozioni che una persona sta provando a partire da una foto o un video. Se non lo avete già fatto, dovete chiaramente attivare la sottoscrizione per queste API...

posted @ domenica 22 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Able2Extract Pro versione 11

Vi ho parlato di Able2Extract della Investintech in passato, oggi vi segnalo il rilascio della versione 11. Able2Extract è un potente strumento di conversione e analisi OCR di documenti tra PDF, Word, Excel, immagini e nella nuova versione vengono introdotte alcune funzionalità veramente interessanti. La mia preferita è sicuramente quella che consente di rimuovere dati sensibili da un documento PDF: Altra interessante possibilità è quella di poter annotare i documenti PDF in fase di visualizzazione: Non meno interessante è il miglioramento a come è possibile rendere sicuri i propri documenti PDF specificando utente e proprietario, oltre ai normali sistemi di protezione: Ulteriori miglioramenti anche alle...

posted @ domenica 22 gennaio 2017 11:15 | Filed Under [ Varie ]

Xamarin.Forms e i Cognitive Services di Microsoft - Face APIs

Nel post precedente abbiamo introdotto i Microsoft Cognitive Services, facendo una panoramica dei servizi che vengono offerti. Da questo post cominciamo a fare degli esempi pratici di alcuni servizi a disposizione e inizieremo dalle Face API. Cosa sono? Le Face API consentono di riconoscere i tratti fisici e caratteristici dei visi nelle immagini e nei video, inclusi quelli "live". Tra le numerose informazioni, ci consentono di rilevare la posizione di tratti come la bocca, il naso, gli occhi, le orecchie attraverso 27 punti del viso. Grazie a questi punti, le Face API ci consentono di rilevare altre informazioni come la...

posted @ mercoledì 18 gennaio 2017 19:22 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - Introduzione

Nei numeri di ottobre e novembre di MSDN Magazine, sono stati pubblicati due miei articoli relativi allo sviluppo di app per Android, iOS e Windows con Xamarin.Forms e i Cognitive Services di Microsoft, nei quali ho descritto il riconoscimento visivo e delle emozioni e la descrizione di ciò che circonda l'utente. L'argomento non solo mi appassiona molto, ma ho iniziato a studiarlo fin dall'annuncio a //Build 2016, ma avendo degli accordi di univocità con MSDN Magazine, riesco a farne dei post solo ora (e in italiano, certamente ). Inizio quindi una mini-serie di post dedicata ai Cognitive Services con Xamarin.Forms per vedere...

posted @ martedì 17 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms, ListView ed effetti indesiderati

Ancora su Xamarin.Forms e la ListView, in binding a una collection. Su un progetto Android che sto seguendo mi è capitato di avere un data template XAML abbastanza articolato, ma in realtà con pochissimi elementi da visualizzare eppure con un problema di rendering. Nel mio caso, i vari elementi della lista dovevano espandersi e richiudersi al touch. Il problema è che, una volta chiusi, rimanevano disegnati sul display alcuni elementi della visualizzazione "aperta". Sparivano solamente ad un successivo tocco sul display e anche forzare un refresh della UI non portava beneficio, con un pessimo effetto visivo per l'utente. Il codice non...

posted @ lunedì 16 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms, ListView e ObjectDisposedException

Con particolare riguardo ai progetti Android, se in Xamarin.Forms avete una ListView in cui c'è un DataTemplate che visualizza immagini in binding, molto probabilmente otterrete una ObjectDisposedException durante lo scorrimento della lista, con conseguente crash dell'applicazione. Si tratta di un problema noto, peraltro non ancora risolto. Si verifica perché Xamarin istanzia uno stream per ciascuna immagine, ne fa il dispose, ma poi non lo riapre al ritorno su un'immagine precedentemente visualizzata. Dovreste risolvere, almeno nel mio caso ha funzionato, impostato la caching stategy della ListView per memorizzare in cache locale i contenuti. In questo modo:     <ListView ItemsSource="{Binding}" CachingStrategy="RecycleElement" > L'enumerazione CachingStrategy ha due valori, RecycleElement...

posted @ domenica 15 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Video: code generation in C# con Roslyn e VS Code su Linux, Mac e Windows

Ne avevo fatto un post qualche tempo fa, ma se vi piace guardare video, ho pubblicato su Channel9 una registrazione (in inglese) relativa alla tematica che dà l'oggetto al post. In realtà si tratta di un primo video, in quanto lunedì prossimo ne uscirà un secondo che mostra come ottenere lo stesso risultato utilizzando Visual Studio for Mac e la sua strumentazione. Alessandro

posted @ giovedì 12 gennaio 2017 16:01 | Filed Under [ Visual Studio Code ]

Visual Studio Code: installazione offline di estensioni

Come sapete, Visual Studio Code supporta l'installazione di estensioni che ora si trovano nel Visual Studio Marketplace, nell'apposita sezione. L'installazione avviene direttamente dall'Extensions panel: Il fatto è che bisogna essere necessariamente connessi ma si potrebbe avere necessità di installare estensioni al di fuori della rete oppure nonostante un proxy, oppure semplicemente per avere in locale le estensioni desiderate (l'update può avvenire successivamente). In Visual Studio Code, le estensioni sono costituite da file .vsix che però non vanno confuse con l'omonimo formato supportato dal fratello maggiore Visual Studio. Dal Marketplace non è possibile scaricare i .vsix, quindi la documentazione stessa ci viene in aiuto...

posted @ giovedì 12 gennaio 2017 15:56 | Filed Under [ Visual Studio Code ]

Visual Studio Code dietro proxy

Se dovesse capitarvi di utilizzare Visual Studio Code dietro proxy, si può intervenire sulle impostazioni in questo modo: File, Preferences, User Settings Si aprirà il file chiamato settings.json Localizziamo il gruppo di setting chiamato HTTP Nell'area destra dell'editor, quella in cui possiamo ridefinire le impostazioni, scriviamo il seguente markup: {     // The proxy setting to use. If not set will be taken from the http_proxy and https_proxy environment variables     "http.proxy": "http://nomeutente:password@127.0.0.1:8080",     // Whether the proxy server certificate should be verified against the list of supplied CAs.     "http.proxyStrictSSL": false,     //...

posted @ mercoledì 11 gennaio 2017 13:18 | Filed Under [ Visual Studio Code ]

Xamarin.Forms: Roadmap per il 2017

E' stata pubblicata la roadmap per il 2017 relativa a Xamarin.Forms, disponibile a questo indirizzo. Forms sta indubbiamente crescendo molto, ci vuole il suo tempo, ma cresce e finalmente cominciano ad arrivare funzionalità e caratteristiche importanti e interessanti. Non vedo l'ora di avere a disposizione il Picker col supporto al data-binding, cosa che più di tutti mi ha fatto "soffrire" lavorandoci Le prossime versioni sono previste per febbraio e maggio, quindi non manca molto. Alessandro

posted @ giovedì 5 gennaio 2017 18:20 | Filed Under [ Xamarin ]

Powered by:
Powered By Subtext Powered By ASP.NET