un tipo neuroso

technical blog

Connettere OneDrive in una Universal App

Con l’Update 2 di Visual Studio 2013 sono state introdotte le Universal App, una nuova tipologia di soluzione che consente di implementare una app sia per Windows Phone 8.1 che per Windows 8.1 contemporaneamente.

Senza entrare nel dettaglio di cosa sono le Universal App (nel caso non sappiate di cosa parliamo potete far riferimento a questo link per una introduzione), nel post di oggi ci focalizzeremo su come implementare al suo interno il collegamento con OneDrive.

Spiegheremo come creare una pagina di “settings” che funzioni sia nel progetto per Windows Phone che nel progetto per Windows Store, centralizzando così il punto di collegamento della soluzione (e degli applicativi) con OneDrive.

Per questo post ho fatto riferimento ad alcuni altri che indicherò di seguito come riferimenti, per poi modificarli e ottenere il risultato voluto.

Componenti da installare

Prima di procedere con la spiegazione, verificate che siano installati i seguenti componenti, necessari per poter eseguire il collegamento:

Ricordatevi che per sviluppare questo tipo di applicazioni, dovete lavorare con il sistema operativo Windows 8.1, altrimenti su altri sistemi (es. Windows Server) non potreste non avere la possibilità di farlo, almeno per il momento.

Nel nostro caso faremo uso della versione Express di Visual Studio 2013, con l’update 2 già installato.

Creazione del progetto

In Visual Studio 2013, bisogna creare una Universal App selezionandola tramite il menù File > New > Projects > Visual C# > Store Apps > Universal Apps > Blank App e dandogli un nome di comodo, ad esempio “OneDriveDemo“. Per la demo la Blank App sarà più che sufficiente.

Associazione del progetto

Per il corretto funzionamento del collegamento, è necessario che la app Windows 8.1 venga “associata” con una app nello Store, in questo modo sarà possibile in alcuni punti accedere alle informazioni dell’utente e del suo Microsoft Account. Del resto questa operazione andrà comunque fatta per poter poi pubblicare la vostra app.
Per eseguire questa associazione è sufficiente che dalla vostra soluzione, facciate Tasto destro sul progetto Windows 8.1 > Store > Associate App with the Store… e seguiate le istruzioni, per utilizzare la vostra app esistente o per farvi riservare il nome per la vostra nuova app.

 

Riferimenti e UI condivisa

Nel progetto shared della nostra soluzione centralizzeremo tutta la logica per poter eseguire il collegamento. In questo stesso progetto creeremo la pagina di settings condivisa tra le app Windows Phone e Windows Store.

Prima di tutto, aggiungiamo le reference al “Live sdk”, dobbiamo farlo sia nel progetto Windows 8.1 che nel progetto Windows Phone 8.1. Nel progetto shared non è possibile referenziare librerie esterne, perchè utilizzerà le reference del progetto per il quale è in esecuzione in quel momento.

Quindi andiamo prima nel progetto Windows 8.1 e poi nel progetto Windows Phone 8.1 e facciamo tasto destro su References > Add Reference > [Windows 8.1 o Windows Phone 8.1] > Extensions > mettiamo il check su Live SDK (version 5.6) > OK


Quindi possiamo procedere con la creazione della porzione di pagina di settings condivisa tra i due progetti. Lo faremo creando, sempre nel progetto shared, uno UserControl che chiameremo OneDriveSettingsUserControl.

Il codice contenuto non è molto complesso, si tratta dello stretto necessario per il login / logout:

 

 

 

 

 

 

 

 

 

 

 

Inizialmente non vedremo nulla nello user control appena creato perchè la label è vuota e i pulsanti sono nello stato Collapsed, il che li nasconde anche nell’editor grafico.

Temporaneamente ci conviene creare, per non avere problemi di compilazione, degli handler per l’evento di click dei bottoni, che dopo sostituiremo con il codice definitivo. Per fare questo andiamo prima sul metodo Click=”SignInClick” e poi sul metodo Click=”SignOutClick” e facciamo su ognuno tasto destro e poi Go To Definition F12, in questo modo Visual Studio creerà per noi degli handler vuoti associati agli eventi di click.

A questo punto possiamo cominciare col codice vero e proprio per la connessione a OneDrive.

Logica di business

Dato che la logica sarà posizionata nel progetto shared, ci conviene creare una classe apposita per contenere la business logic. Nel nostro esempio abbiamo creato una classe OneDriveBL.cs, in cui creeremo i seguenti metodi statici:

  • CheckOrSignIn
    • esegue l’operazione di sign in e/o verifica lo stato di connessione
  • VerifyIfUserCanSignOut
    • verifica se l’utente è connesso e può eseguire il sign out
  • SignOut
    • verifica se l’utente è connesso ed esegue il sign out

Il risultato è quanto segue:

 

 

 

N.B. abbiamo utilizzato in questo esempio il livello di permission “wl_basic”, potete trovare qui i vari livelli disponibili

 

 

A questo punto possiamo cominciare a far funzionare il nostro user control tramite l’utilizzo di questa classe.

Implementiamo nello user control i seguenti metodi:

  • UpdateControls
    • si occupa di gestire lo stato dei control presenti (verrà richiamato da vari punti del codice) ovvero si occupa di visualizzare o nascondere i pulsanti in funzione dello stato di connessione o disconnessione dell’utente
  • ManageStatus
    • si occupa di gestire o verificare lo stato della connessione
    • tramite un parametro Nullable<bool> può eseguire tre azioni differenti:
      • verificare lo stato della connessione
      • avviare il sign in
      • eseguire il sign out
    • richiama proprio il metodo UpdateControls

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Adesso possiamo implementare sul costruttore la verifica dello stato di connessione, e sugli event handlers che prima abbiamo creato vuoti possiamo eseguire le richieste per il sign in e il sign out.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ah, finalmente! Il grosso è fatto (o almeno si spera). Ora “resta solo” da realizzare le pagine di settings. Partiamo con quella per Windows 8.1.

 

Creazione del flyout di settings per Windows 8.1

Dobbiamo aggiungere lo user control creato nei settings della nostra (futura) app per Windows 8.1. Per fare questo creiamo un SettingsFlyout, che altro non è che (banalizzando) una pagina che viene contenuta nel flyout dei settings (ricordiamo che il termine Flyout in Windows 8+ riguarda indica in questo caso un control specifico che viene visualizzato quando eseguiamo lo swipe con il dito dal lato destro dello schermo).

Una volta creata (e registrata opportunamente) questa “pagina”, la ritroveremo tra le “voci” dei settings della nostra applicazione, secondo le linee guida per lo sviluppo di app per Window 8.1.

 

 

Nel SetttingsFlyout dovremo:

  • cambiare il titolo in OneDrive
  • sostituire l’intero contenuto con una istanza dello user control creato

Il risultato sarà questo:

 

 

 

 

 

 

 

 

 

 

 

Ora il flyout va “registrato” nell’elenco di voci da presentare sul settings di Windows, ovviamente per l’app che lo contiene.

Per fare questo dobbiamo agire nella classe App.xaml.cs, ricordandoci una cosa importante riguardante le Universal App cioè che il codice destinato alla sola applicazione Windows 8.1 va incluso in una direttiva di compilazione WINDOWS_APP che indica al compilatore che quel blocco di codice incluso nella parte shared va considerato solo nel momento in cui si compila la Windows 8.1 app. Discorso identico, con la direttiva WINDOWS_PHONE_APP va fatta per le parti di codice che vanno compilate solo per Windows Phone 8.1. Le parti comuni, cioè che vanno considerate sia per la Windows 8.1 app che per la Windows Phone 8.1 app, semplicemente non vanno incluse in alcuna direttiva.

La “registrazione” di cui parlavamo (io uso il termine registrazione solo per convenienza, non è questo un termine della nomenclatura ufficiale) avviene tramite l’override dell’evento OnWindowCreated, tramite il quale indicare che al momento della richiesta dei settings va incluso anche il nostro flyout. Ricordiamoci che, quando necessario, anche le using vanno incluse nelle direttive di compilazione.

Il risultato è quello che segue:

 

 

 

 

 

 

 

 

 

 

 

 

 


Proviamo a lanciare in debug l’app con F5 sulla Local Machine e otterremo quanto segue:

 


 

 

 

 

Creazione della pagina di settings per Windows Phone 8.1

Questa volta ci dobbiamo occupare dei settings per Windows Phone 8.1, in questo caso non è prevista da sistema una modalità di settings specifica, per cui mostreremo come creare una pagina in cui sia presente lo user control che abbiamo realizzato. La decisione sul dove posizionare questa pagina resta al developer dell’app.

Nel nostro esempio utilizzeremo direttamente la pagina iniziale della app per mostrare lo user control che abbiamo creato:

 

 

 

 

 

 

 

 

 

 

 

Il risultato ottenuto sarà questo:

 

 

 

Lanciamo l’app per Windows 8.1

In questo esempio proveremo a lanciare l’app per Windows 8.1, ma lo stesso procedimento vale anche per Windows Phone 8.1.

Andiamo nei settings che abbiamo implementato e premiamo il pulsante di Sign in, ci verranno richieste le credenziali di un Microsoft account:

 

 

 

Una volta completato il sign in, viene mostrata una schermata che mostra le permission richieste per l’accesso a OneDrive:


 

 

 

Ora l’app risulta autenticata con OneDrive e potrà quindi utilizzare le API disponibili per eseguire le azioni disponibili per il livello di permission utilizzato durante il sign in.


 

 

 

A questo link trovate il codice implementato, potrebbe non compilare perchè sono stati rimossi i riferimenti allo store, in ogni caso il codice di questo post c’è tutto.

 

 

 

Riferimenti

 

 

18/07/2014 Posted by | Microsoft | , , , | Leave a comment

Come creare un progetto ASP.NET Web Application con Umbraco 7.1.4

Alcuni giorni fa ho cominciato a dare un’occhiata ad Umbraco, un CMS che esiste ormai da svariati anni e che alcuni siti usano con soddisfazione, e dato che devo rifare il mio sito personale, ho pensato che potesse essere una valida alternativa, anche perchè è open-source, è scritto in C#, e mi sembra abbastanza ben strutturato.

In termini numerici non è un CMS molto utilizzato, specialmente se paragonato ad altri (ad es. JOOMLA) che ormai a livello mondiale hanno una diffusione nettamente superiore, ma per le mie necessità questo sembra più che sufficiente.

Dalla versione 6 in poi (al momento in cui scrivo siamo alla 7.1.4) questo CMS basato su ASP.NET ha “svoltato” passando dalle “vecchie” webform ad MVC, e con esso ha introdotto anche la possibilità di esporre delle funzionalità REST tramite le Web API di Microsoft.

Per capirne meglio il funzionamento, sono ricorso ai video a pagamento disponibili sul sito di Umbraco.tv (eh si, quando è necessario bisogna spenderlo qualche soldino) e quello che viene spiegato è che, per installare Umbraco, la via più semplice è quella di utilizzare WebMatrix 3, uno strumento di Microsoft che consente l’installazione e l’editing di siti web anche a partire da piattaforme esistenti.

Effettivamente è così, l’utilizzo di WebMatrix 3 rende tutto più semplice, solo che il progetto creato è un web site e non una web application, e non pare sia possibile scegliere altrimenti.

Chi sviluppa con ASP.NET sa che ci sono differenze sostanziali tra queste due tipologie di progetto, anche se poi il risultato per l’utente finale non cambia niente. Il problema è che però, dai video di esempio di Umbraco.TV l’esposizione di Web API viene fatta sempre tramite l’utilizzo di web application e non web site. Sfortunatamente tra i tantissimi video presenti, non ce ne era alcuno che mostrasse come installare Umbraco in modalità web application.

Avevo tentato anche di esporre delle chiamate con Web API sul web site ma avevo avuto diversi problemi con controller e model per la mancanza di namespace nel codice. E poi personalmente i web site mi sono sempre stati antipatici, per tutta una serie di motivi che non sto qui ad elencare, per cui mi sono messo letteralmente a smanettare e sono riuscito alla fine a trovare un modo per creare un progetto di tipo web application con Umbraco, capace quindi di poter “ospitare” agevolmente dei servizi REST con Web API. Per farlo sono ricorso all’utilizzo di NuGet.

Di seguito vi elenco tutti i passaggi, nel caso possano essere utili a qualcun altro.

Per lo scopo può essere utilizzato sia Visual Studio 2012 che Visual Studio 2013, per l’esempio di seguito io ho usato il 2013.

  • da Visual Studio, andate nel menù File > New > Project 

    Untitled1

  • scegliete in alto il .NET Framework 4.5.1 e quindi selezionate il template di progetto da Web > Visual Studio 2012 > ASP.NET MVC 4 Web Application e alla successiva richiesta, scegliete la tipologia Empty project 
  • una volta creato il progetto, da Visual Studio andate nel menù Tools > NuGet Package Manager > Manage NuGet Packages for Solution… 

    Untitled2

  • andate su Online e poi in alto a destra nella casella search inserite  umbraco , dall’elenco proposto scegliete  Umbraco CMS e quindi procedete con Install 
  • vi verrà chiesto su quale progetto installare il pacchetto, scegliete il progetto che avete creato (nell’esempio proposto l’avevo chiamato UmbracoWebApp)
  • durante il download e installazione dei pacchetti vi verranno indicati due file come esistenti, il file Web.Config e il gile Global.asax, e vi verrà proposto di sovrascriverli, voi acconsentite con “Yes”, ma rispondete singolarmente alle due domande, non usate il pulsante “Yes To all” 
  • quando il pacchetto sarà installato vedrete un segno di spunta vicino alla voce “Umbraco CMS”, a quel punto premete Close per uscire da NuGet

A questo punto avrete un progetto ASP.NET MVC di tipo web application con Umbraco, non vi resta che premere F5 e divertirvi!

 

Continue reading

25/06/2014 Posted by | Installations, OpenSource | , , | Leave a comment

Using Keepass synced between computers using OneDrive

If you, like me, cannot live without Keepass, well, you maybe need a sync mechanism to always have updated password db over two or more computers.

Since I was not able to find a plug-in to make this sync automatic (I refer to a few years ago, actually I don’t know if there is something new that I could use), I settled the tool to use “triggers” (that is a feature available to execute actions) to implement this sync mechanism.

The sequence of action that I created was:

  • Keepass use a local password db
  • when Keepass opens the local db, first of all sync it with a cloud-based password db copy (in this example I use OneDrive, but you can use Dropbox, Sugarsync, Google Drive, or your favorite cloud space)
  • when Keepass save the local db, it sync again with the could-based copy

To implement this sequence I used Keepass triggers, as I said before.

All steps to reproduce it are explained in the next lines. I would like to share for whom it may be useful.

Files involved are:

  • local_file.kdbx: file to sync on local machine (e.g. C:\CRYPT\MyKeePassFile.kdbx)
  • sync_file.kdbx: file located in a share folder or cloud drive, in a synced local folder on the machine (e.g. C:\User\<username>\OneDrive\MyKeePassFile.kdbx)

Go to Tools > Triggers

  • Enable trigger system => <checked>
  • Add (trigger)
    • Properties
      • Name => “trig-first-open-sync”
      • Enabled => <checked>
      • Initially on => <checked>
      • Turn off after executing action (run once) => <checked>
    • Events
      • Add
        • Event => Opened database file
        • File/URL – Comparison => Equals
        • File/URL – Filter => <local_file.kdbx>
    • Conditions
      • Add
        • Not => <not checked>
        • Condition => File exists
        • File => <sync_file.kdbx>
    • Actions
      • Add
        • Action => Change trigger on/off state
        • Trigger name => “trig-saved-file-sync”
        • New state => Off
      • Add
        • Action => Change trigger on/off state
        • Trigger name => “trig-first-open-sync”
        • New state => Off
      • Add
        • Action => Synchronize active database with a file/URL
        • File/URL => <sync_file.kdbx>
        • IO Connection – User Name => <blank> or username when required
        • IO Connection – Password => <blank> or password when required
      • Add
        • Action => Change trigger on/off state
        • Trigger name => “trig-first-open-sync”
        • New state => On
      • Add
        • Action => Change trigger on/off state
        • Trigger name => “trig-saved-file-sync”
        • New state => On
  • Add (trigger)
    • Properties
      • Name => “trig-saved-file-sync”
      • Enabled => <checked>
      • Initially on => <checked>
      • Turn off after executing action (run once) => <not checked>
    • Events
      • Add
        • Event => Saved database file
        • File/URL – Comparison => Equals
        • File/URL – Filter => <local_file.kdbx>
    • Conditions
      • Add
        • Not => <not checked>
        • Condition => File exists
        • File => <sync_file.kdbx>
    • Actions
      • Add
        • Action => Change trigger on/off state
        • Trigger name => “trig-saved-file-sync”
        • New state => Off
      • Add
        • Action => Synchronize active database with a file/URL
        • File/URL => <sync_file.kdbx>
        • IO Connection – User Name => <blank> or username when required
        • IO Connection – Password => <blank> or password when required
      • Add
        • Action => Change trigger on/off state
        • Trigger name => “trig-saved-file-sync”
        • New state => On

That’s it. Have fun with Keepass :-) 

24/06/2014 Posted by | Uncategorized | , , , , | 3 Comments

Primi test con il Robot Beginner Kit – Netduino 2 (C#)

Qualche giorno fa ho partecipato all’evento IoT organizzato dalla community DomusDotNet. È stato un evento molto interessante, con sessioni tenute da speaker con grandi competenze in materia, in cui l’argomento era appunto l’IoT, ovvero la Internet of Things, cioè l’Internet delle cose .

Personalmente è stata una bella giornata perchè, oltre alle sessioni tutte interessanti e istruttive, ho avuto la fortuna di essere il fortunato vincitore del set Robot Beginner Kit – Netduino 2 (C#) gentilmente offero dai gestori del sito Robot Domestici, cosa che mi ha dato la possibilità già dalla sera stessa ad approcciare a questo mondo per me quasi completamente sconosciuto.

Come potete vedere dalla foto, si tratta di un kit molto ricco (almeno per chi come me è alle prime armi) dato che al suo interno contiene:

  • 1 Netduino 2 (la scheda elettronica nera con i pin blu)
  • 2 motori (quelli gialli)
  • 1 scheda per il controllo motori (la schedina piccola rossa)
  • 1 sensore a infrarossi (sotto la scheda controllo motori)
  • 1 pacco batterie
  • 1 cacciavite calamitato
  • 1 chassis completo di viti e istruzioni per il montaggio
  • 2 ruote grandi
  • 1 ruota a sfera
  • Vari cavi, pin (gli spillini) e connettori

Le istruzioni per il montaggio dello chassis erano molto semplici e ci hanno consentito di montare facilmente lo stesso con i motori, il pacco batterie e le ruote. Sembrava (ed effettivamente lo è stato) talmente facile che mio figlio che non ha ancora compiuto nove anni ha voluto montarlo lui e ci ha messo più o meno un quarto d’ora, e devo dire che si è anche molto divertito J

 

Una volta assemblato lo chassis con i motori e le ruote, ho cominciato a vedere il Netduino. Per uno come me, che non ha mai avuto la possibilità (e devo confessare, la curiosità) di comprare una scheda del genere, è stata una vera sorpresa. Erano anni che sentivo parlare di Arduino e non pensavo avrei mai approcciato questo “mondo”, ma complice il Netduino (che è in pratica una versione della scheda Arduino che ha un suo framework ed è programmabile con il linguaggio C# e Visual Studio di Microsoft) ho capito che si tratta di una cosa interessante e più semplice del previsto.

Sono partito dalla pagina del kit nella quale ho trovato la Guida alla realizzazione, essenziale per la pinnatura e per le istruzioni passo passo per i collegamenti e la programmazione di Netduino.

{ Io in tutta onestà, facendo di mestiere lo sviluppatore, ed essendo ovviamente molto curioso di “capirci qualcosa”, prima di partire con il montaggio dello chassis mi ero già attrezzato per dare un’occhiata al Netduino andando sul sito ufficiale dove avevo trovato degli esempi di codice, che seppur banali erano stati per me molto indicativi di come procedere nella programmazione della scheda. }

Tornando al kit, nel pdf ci sono tutte le istruzioni passo passo, sebbene trattandosi di un documento che faceva riferimento (probabilmente) alla versione 1 del Netduino, non era stato aggiornato in alcuni punti per quello che riguarda Netduino 2. Possono sembrare banalità, ma per me che ero (e sono) alle prime armi, hanno creato qualche dubbio, per cui li elenco qui:

  • nel documento si fa cenno al saldatore che servirà per i pin da saldare sulla schedina di controllo motori, ora fermo restando che un saldatore ci vuole sempre per chi voglia in qualche modo divertirsi a programmare questo tipo di schede, nel kit che ho ricevuto c’erano dei pin “solderless”, cioè senza necessità di saldatura, per cui ad incastro hanno funzionato alla grande; peccato averlo capito qualche giorno dopo J infatti non avendo capito che i pin in dotazione non necessitavano di saldatura ho aspettato qualche giorno perchè volevo prima comprare un saldatore; capito che non ce n’era bisogno ho proceduto senza problemi; un consiglio: i pin sono in 2 strisce da 10, sulla schedina di controllo motori ce ne sono 8 per lato, io ho tolto due pin dalle estremità della striscia e ho inserito i pin con tutta la striscia di plastica nera che li tiene, per farlo ho usato una pinzetta e molta cautela, perchè è comunque una operazione molto pericolosa e potrebbe rovinare la scheda di controllo motori o piegare qualche pin; se volete potete anche procedere con i pin singolarmente, perdete più tempo ma se vi facilita va bene lo stesso, l’unico problema è che poi i pin “escono” troppo sotto, dovrebbero funzinare lo stesso, per quanto mi riguarda il risultato che ho ottenuto (tenendo la striscia nera dei pin) è stato quello che vedete in foto
  • per l’alimentazione della scheda motori viene detto di “tagliare il filo che proviene dal pacco batterie” e collegarli in un certo modo tenendo presente che il rosso va col rosso e il nero col nero… bene nel mio pacco batterie i fili erano entrambi neri e quindi non capivo come procedere, poi ho inteso che il filo rosso e quello nero stanno per il positivo e il negativo e allora ho utilizzato un tester per verificare (con le batterie inserite) quale fosse il “rosso” (positivo) e il “nero” (negativo), potete farlo collegando il filo rosso del tester ad uno dei due fili del pacco batterie (già tagliati ovviamente) e quello nero all’altro, se il risultato è maggiore di zero, il cavo “rosso” (positivo) sarà quello collegato al rosso del tester, altrimenti è l’altro; ovviamente essendo io una capra per tutto quanto riguarda l’elettronica (incluso l’uso di un “banale” tester) non mi soprenderebbe che questo procedimento sia sbagliato, in ogni caso io ho fatto così J se volete procedete diversamente, non mi assumo responsabilità se saltate in aria J
  • il codice linkato sul pdf (che è poi lo stesso presente nella scheda del kit) è risultato non compilabile, perchè fa riferimento ad una versione 4.1.7 del Micro framework di Microsoft, mentre al momento in cui ho provato io a fare il tutto avevo scaricato ed installato la versione 4.2; nessuna paura, sempre nella pagina della scheda del kit, nel tab “File aggiuntivi” vi è il link al codice giusto Robot Beginner Kit – Netduino 2 (C#) (138,05 KB), con questo non avrete problemi di compilazione

     

     

Una volta completati tutti i passaggi indicati potete collegare il pacco batterie al Netduino e vederlo in funzione. Io personalmente ho avuto un “problema” J ovvero il mio robottino andava all’indietro, probabilmente ho sbagliato qualche passaggio nonostante la guida passo passo fosse a prova di stupido (ma non avevano conosciuto ancora me J), in ogni caso ho preferito modificare il codice sorgente per far “invertire” il funzionamento del motore, cioè dove andava avanti ora va all’indietro e dove va all’indietro va in avanti, risultato: ora va benissimo.

A quel punto, visto che c’ero, ho modificato il codice per ottenere il seguente comportamento:

  • al collegamento del pacco batterie al Netduino non parte
  • premendo il pulsante sulla scheda partono i motori
  • premendo nuovamente il pulsante sulla scheda si fermano i motori

Se volete utilizzare il codice che ho fatto io lo trovate qui, ricordatevi solo di mettere a false la variabile INVERTI_MOTORI
in bella evidenza in testa alla classe Program, sempre che non serva anche a voi invertire la direzione di marcia!

 

Il risultato finale è questo:


 

Voglio ancora ringraziare gli amici di DomusDotNet per l’ottimo evento e gli sponsor del sito Robot Domestici che hanno messo in palio questo splendido kit. Non mi fermerò qui, ho già intenzione di fare nuove cose. J

 


6/06/2014 Posted by | Make | , , , | Leave a comment

Evento: DomusDotNet – IoT@Work “Internet of Things”

Il prossimo venerdì 6 giugno 2014, ci sarà un interessantissimo evento ospitato alla sede di Roma della Microsoft, organizzata dalla fantastica community romana DomusDotNet,

Si tratta di un evento in cui si discuterà dell’IoT (Internet of Things) ovvero delle possibili evoluzioni nell’uso della rete, che passa ormai inesorabilmente attraverso device sempre più “intelligenti” e capaci di scambiarsi dati in maniera programmatica.

Si va verso un futuro in cui la tecnologia ci renderà sempre più semplici le operazioni della quotidianità e allo stesso tempo si evolverà per comprendere meglio le nuove evoluzioni che necessitano per operare sempre al meglio.

Non perdete quindi questo evento, utilizzate subito questo link per avere maggiori informazioni, vedere l’agenda della giornata e iscrivervi al più presto!

1/06/2014 Posted by | Communities, Microsoft | , , , | Leave a comment

Screenshot in Windows Phone 8.1

Nella versione 8 del sistema operativo Windows Phone della Microsoft, era possibile eseguire degli “screenshot” del telefono, molto utili in varie situazioni, dalla realizzazione dell’app per lo sviluppatore alla pagina web da voler inviare ad un amico.
In questa versione la combinazione di tasti per poter salvare una schermata era “tasto accensione + Windows button”.

Nella nuova versione 8.1 del sistema, attualmente non ancora resa disponibile pubblicamente ma installabile comunque come preview sui dispositivi “dev” tramite una app (come spiegato qui), la combinazione è cambiata: ora è necessario utilizzare la combinazione “tasto accensione + tasto volume su”.

In ogni caso, qualora dovessimo usare la combinazione precedente, un messaggio ci avviserà del cambiamento e della nuova combinazione.

Gli screenshot catturati vengono salvati, così come avveniva nella versione precedente del sistema operativo, nell’album “Schermate” delle foto.

Probabilmente il motivo di questa variazione è dovuto alla capacità della nuova versione 8.1 di supportare pulsanti virtuali al posto dei tasti fisici Back, Windows e Search.  La presenza fisica di questi tasti dipenderà infatti dal produttore del device, che potrà quindi (come avviene per dispositivi Android di fascia bassa) rinunciare a questi tasti fisici per ridurre il costo di produzione del telefono.

Una nota a margine: la funzionalità di cattura degli screenshot nelle versioni 7.x di Windows Phone non era presente.

10/05/2014 Posted by | Uncategorized | | Leave a comment

Evento: DotNetToscana – Creare App per Office 365 e SharePoint 2013 con ASP.NET MVC 5

La community DotNetToscana ha organizzato questo ottimo evento, in cui verrà illustrato il nuovo “App-Model” introdotto dalla nuova versione di Office 365 e da SharePoint 2013.

Si parlerà anche di com’è possibile sfruttare le conoscenze di ASP.NET MVC 5 e SQL Azure, per scrivere un’App che interagisca con i servizi e i contenuti offerti da SharePoint e che funzioni sul Cloud ed on-premises.

L’evento, della durata di un’ora dalle 17 alle 18 di Lunedì 28 Aprile 2014, sarà curato da Emanuele Bartolesi di DotNetToscana e da Giuseppe Marchi (SharePoint MVP).

Questi sono i link per la pagina dell’evento e per l’iscrizione, mentre qui trovate la pagina Facebook della community.

I posti sono limitati, se siete interessati iscrivetevi (gratuitamente) al più presto.

 

17/04/2014 Posted by | Communities, Development, Microsoft, Mobile | , , , , , , | Leave a comment

Evento: //learn/ Global Community Webcast

//learn/

L’evento in streaming sulle novità e tutto ciò che c’è da sapere per sviluppare applicazioni per Windows Phone 8.1.

Il 24 Aprile 2014 durante tutto il pomeriggio alcuni MVP e Nokia Champion italiani offriranno le sessioni in lingua italiana.

Ecco l’agenda:

14:00-15:00: Introduction to Windows Phone 8.1 di Matteo Pagani
15:00-16:00: Getting started building Windows XAML apps di Nicolò Carandini
16:00-16:30: Page navigation & data binding di Carmine Punella
16:30-17:30: Lists di Corrado Cavalli
17:30-18:00: Adapting UI for different screens di Alessandro Scardova
18:00-18:30: Windows Runtime XAML App Lifecycle di Dan Ardelean
18:30-19:00: Background tasks di Marco Dal Pino
19:00-20:00: Tiles, badges and toasts and Action Center di Michele Locuratolo

Iscrivetevi al seguente link .

Chi partecipa lo faccia sapere sulla pagina Facebook.

A presto!

17/04/2014 Posted by | Communities, Development, Microsoft, Mobile | , , , , , | Leave a comment

Architecting Mobile Solutions for the Enterprise (Dino Esposito, Microsoft Press)

This is not the first book I read of Dino Esposito. And it will not be the last! Dino Esposito is a great author, and any book of him is always a guarantee.

In this book the author share with the reader his experience about architectural topics, explaining with great simplicity the basic and the advanced rules and guidelines we should count on to design and implement a mobile application.

After introductory chapters in which the author illustrates concepts about requirements and strategy for which can be necessary to develop a mobile application, the following chapters begins with the analysis of the context where the app is concerned to exist, to understand tips and techniques to determine the right architecture paradigm to adopt.

Then the book begin its journey to mobile apps implementation. Just to give some references, the reader will understand what are CSS Media Queries and how can be used for responsive design, will learn terms such as DDR and WURFL and understand in deep how can be used programmatically for device capabilities recognition, and will encounter some code examples with ASP.NET MVC, jQuery Mobile, HTML5 and CSS, and so on.

Another great chapter is about patterns for Mobile Application Development, used to explain a lot of patterns about interaction, presentation and behavior for the app to implement. This could be really useful to determine the right approach to design of the app.

Finally book complete the tour making a brief and concise dive into development for different major platforms such as iOs, Android and Windows Phone. Last but not least, an introduction on PhoneGap helps the reader to understand if this framework can be helpful for the development scope.

In conclusion, this is really one the best books I read about mobile development. Its coverage of topics about mobile development topics is almost complete.

I strongly encourage any mobile developer to read this book, because the final quality of a mobile app can be hardly influenced by most of the tips, concepts and guidelines explained in this book.

22/08/2012 Posted by | Book Review, Development, Mobile, Uncategorized | Leave a comment

Mobile Design Pattern Gallery by Theresa Neil

For whom it may concern mobile application development, this singular book can really help to understand how a developer can organize and represent informations inside the implementing app.

In fact, the scope of this book is really just this. To help mobile developer to reduce effort having ideas about templates, allocation and information architecture to create a successful app with a great level of usability.

To implement an app using tips and templates exposed inside this book, any reader should understand how to replicate and adapt his requirements to that idea. Indeed, this book is not limited to design part, but contains patterns definition and a lot of other tips and suggestion of how to create and model own app.

Main mobile platforms treated are, of course, iOs, Android and Windows Phone, but any concept can be easily rearranged to target any mobile platform.

In brief, this is a very good reference guide to have for any mobile developer involved in creating a powerful and “easy to use” app.

Book is available here.

17/04/2012 Posted by | Book Review, Development, Mobile, Uncategorized | 2 Comments

Follow

Get every new post delivered to your Inbox.