ComputerLand

Tu sei qui: Articoli MSDN

Notizie dal web

Aiutare le nuove idee a diventare imprese: Microsoft BizSpark e i servizi in Italia

E-mail Stampa PDF

 

image

Oggi stiamo vivendo una vera e propria rivoluzione digitale. Una rivoluzione che tra i tanti effetti prodotti sta forgiando una nuova serie di imprenditori e professionisti del digitale capaci di trasformare un’idea in un prodotto per milioni di potenziali clienti in un lasso di tempo impensabile fino a pochi anni fa. Imprenditori, professionisti che oggi si chiamano più comunemente: startupper!

Una startup non è altro che un esperimento, un tentativo di trasformare un’idea in un prodotto profittevole in un lasso di tempo molto limitato. Concettualmente nulla di nuovo. Infatti, già a cavallo tra l’800 e il 900 lo scrittore statunitense Mark Twain diceva:

“Un uomo che ha un’idea nuova è uno svitato finché quell’idea non ha successo”.

Un aforisma molto attuale anche oggi e molto ricorrente tra gli startupper che potremmo riformulare come:

“Un uomo (o una donna) che ha una startup è uno svitato/a finché quella startup non ha successo”.

Ebbene, con il programma BizSpark cerchiamo di aiutare tutti coloro che hanno un’idea imprenditoriale, che ovviamente contempli qualche aspetto digitale, a dimostrare non solo di non essere degli “svitati” ma soprattutto che vale la pena provarci. Infatti, nel mondo imprenditoriale di oggi, nei nuovi paradigmi digitali, il vero fallimento è solo ed unicamente il non provarci affatto! Sbagliare, capirne i motivi e rielaborare una nuova strategia è il vero fulcro e motore dell’innovazione. E noi siamo qui per aiutarvi a renderlo reale!

 

Il Programma BizSpark

image

Microsoft BizSpark è un programma triennale, interamente gratuito per tutti coloro che hanno un’idea d’impresa che abbia anche in minima parte una componente digitale.

I criteri di eleggibilità di BizSpark sono:

  • La startup deve sviluppare del software (anche se non come core business).
  • Se la startup è formalmente costituita, deve avere meno di 5 anni oppure può essere un progetto d’impresa (quindi senza partita iva).
  • Non deve essere a partecipazione pubblica.
  • Non deve fatturare più di 1 milione di $ all’anno.

Il programma è pensato unicamente per tutti coloro che vogliono un aiuto nel realizzare e proporre la propria idea in un mercato globale (una startup, appunto) mentre non lo è per chi ha adottato un modello di business basato sulla consulenza; anche se la società è stata appena costituita.
Quindi, se avete un’idea di impresa o una startup già avviata che soddisfa i quattro criteri appena descritti potete iscrivervi subito qui.

Una volta accettati nel programma (c’è un controllo con breve intervista telefonica) avete subito a disposizione tutti i principali servizi del nostro programma di accelerazione di tipo tecnologico, marketing e di accesso agli investitori a supporto della vostra idea imprenditoriale.
Tutte le attività le svolgiamo online o presso la rete dei nostri partner (sono più di 60 in tutta Italia) mentre non facciamo incubazione fisica presso i nostri uffici. Per questo motivo i nostri servizi possono essere sfruttati al meglio da tutti i team italiani indipendentemente dalla loro locazione fisica.
Ma vediamo nel dettaglio quali sono questi servizi:

 

I servizi tecnologici

Ogni startup all’interno di BizSpark può profilare fino ad un massimo di 8 persone, dove ad ognuno viene associato un MSDN Ultimate rinnovabile ogni anno fino all’uscita dal programma. Tramite l’MSDN Ultimate avete quindi a disposizione tutto il software Microsoft scaricabile in formato ISO (con licenze) e l’uso di Microsoft Azure per un totale di 150$ al mese. Tutto questo moltiplicato per otto e per tre anni!

Inoltre, sul tema cloud, avete la possibilità di richiedere delle Online Architecture Review via Skype per parlare del vostro progetto con i software architect di Microsoft.

Infine, le startup possono accedere agli esclusivi BizSpark Camp ovvero eventi fisici dove i tecnici Microsoft lavorano insieme alle startup sulle loro architetture applicative.

 

I servizi di marketing

Una volta che la startup ha realizzato una versione stabile del proprio prodotto ed è pronta per spingerlo sul mercato, il team BizSpark cercherà di capire, insieme al CEO della startup, quali canali Microsoft possono essere utilizzati per far conoscere la soluzione.
In questo contesto non esiste ovviamente un unico processo perché molto dipende dal tipo di startup e di mercati che si vogliono raggiungere. Per questo motivo la startup avrà a disposizione un insieme di opzioni e supporto a seconda delle necessità.

Se la startup fa un uso massivo di Azure si potrà valutare, insieme ai partner, l’ingresso all’interno di un programma dedicato, chiamato BizSpark Plus, che oltre al pacchetto base aggiunge fino a 60.000$ di crediti Azure da utilizzare in un anno. Tramite BizSpark Plus il nostro intento è quello di supportare la startup nella fase di maggiore espansione dopo aver validato il proprio modello sul mercato per massimizzare quanto più possibile la customer acquisition.

I servizi di networking con gli investitori

Quando una startup ha lavorato insieme a noi sugli aspetti tecnologici e di marketing non solo avrà la possibilità di essere presentata ai nostri partner investitori ma potrà anche sfruttare la rete dei partner di BizSpark (i principali acceleratori e incubatori d’impresa) di tutto il mondo e di Microsoft Ventures per entrare in programmi dedicati di mentorship ed incontro con aziende in tutto il mondo.

 

Oltre ai 3 pilastri del nostro programma di accelerazione appena descritti abbiamo anche diverse risorse online esclusive ed attivabili tramite la nostra Community Online BizSpark Italy:

 

  • Un forum con area di discussione per avere un colloquio quanto più diretto e informale tra di noi.
    Qui si parla di tutti gli aspetti del programma...dagli aspetti tecnici a quelli business e marketing.
  • Webinar BizSpark Unplugged. Ogni 2 mesi eroghiamo un evento online unplugged per spiegare I nuovi servizi e rispondere a voce a tutte le domande e dubbi!
  • Webinar BizSpark Onboarding. Ogni settimana spieghiamo ai nuovi entrati (e non solo) come profilare tutte le persone nella startup per associare gli MSDN, come attivare Azure, come sfruttare al meglio le review architetturali e più in generale come usufruire di tutti i servizi che BizSpark vi mette a disposizione gratuitamente.

Spero con questo breve post di avervi incuriosito ed invogliato a sfruttare al massimo il programma BizSpark anche solo per provare a portare una propria idea sul mercato! Chissà, potrebbe essere la volta buona…. perchè le idee le possono avere in molti, ma vince solo chi per primo riesce a realizzarle!

Mario Fontana
Microsoft BizSpark Lead – Italia
@mariofontana


read full article

Guest post: Una giornata all'Azure Open Day in compagnia di una nuova Microsoft

E-mail Stampa PDF

 

Questo articolo è stato scritto da Nicola Iarocci, sviluppatore, esperto di MongoDB e autore di alcuni progetti open source in Python e .NET

Ammetto di essere partito per questo Azure Open Day di Milano con grande curiosità. Avevo due obiettivi ben precisi: farmi un'idea dello stato di maturazione e affidabilità della piattaforma Azure, e dare un'occhiata da vicino a questa nuova Microsoft finalmente aperta al mondo esterno.

 

Premessa

La mia storia con Microsoft è simile, immagino, a quella di altri. Praticamente una intera carriera passata a testa bassa dentro l'ecosistema Microsoft (ho qui davanti a me il manuale del Microsoft Professional BASIC 7.0, A.D. 1989) fin a quando, più o meno cinque anni fa, si consuma il tradimento: Python, JavaScript, git, OSX, Linux, Postgres, MongoDB, Vim. Il passaggio insomma all'Open Source, che a quel tempo era davvero l'altro mondo.

Sul fronte cloud già nel 2007 abbiamo adottato Amazon, praticamente l'unico player presente all'epoca. Ci serviva un'applicazione di backup per i dati gestionali dei nostri clienti, e pensammo che salvarli in remoto sarebbe stata una buona idea. All'epoca S3 era in ancora beta, e venne poi fuori che pochissimi avevano tentato qualcosa del genere, tantomeno in Italia qualcuno sapeva cosa fosse poi "il cloud", cosa che rese l'esperimento un'esperienza piuttosto interessante... ma questa è un'altra storia. In seguito abbiamo passato parte dell'infrastruttura su Heroku, scelto per la sua eccellente e allora unica integrazione con git e anche perché, onestamente, non amiamo troppo la parte DevOps del mestiere: siamo pigiatasti nel cuore.

Oggi in azienda ci troviamo in una situazione di equilibrio in cui il prodotto principale è .NET, così come lo sono le applicazioni mobili grazie a Xamarin. L'infrastruttura web è su tecnologie alternative. I web service, per esempio, girano su istanze di Eve, un mio progetto Python open source che si appoggia a MongoDB e Redis, rispettivamente per storage e caching.

 

Azure Open Day

Confesso di non aver seguito Azure con la dovuta attenzione. Ogni volta che usciva una nuova feature, oppure che qualcuno ne accennava su twitter, finivo per ripromettermi di darci un'occhiata più approfondita ma, come spesso succede con le buone intenzioni, non seguivano i fatti. L'invito all'Azure Open Day è dunque giunto a proposito: ecco l'occasione, mi sono detto, di mettermi in pari.

In generale gli speaker che si sono succeduti sul palco hanno offerto una buona panoramica sulle possibilità e i vantaggi offerti dall'adozione del cloud, soprattutto in termini di rapidità nel prototyping, A/B testing e deploy. Grazie a queste piattaforme è davvero facile per chiunque, anche per lo sviluppatore puro che, come il sottoscritto, poco o nulla sa di DevOps e sistemi, mettere in linea un sistema affidabile, sostenibile e, al bisogno, facilmente scalabile.

Avrei forse gradito un po' più di dettagli sul funzionamento e sulle feature specifiche della piattaforma Azure. Ho apprezzato per esempio la presentazione di Ivan Fioravanti che ha dimostrato come sia facile configurare, istanziare e gestire solo via command line un intero Replica Set MongoDB di discrete dimensioni, ottenendo prestazioni di tutto rispetto. Nel suo test è andato sul sicuro usando macchine G, che sono le più grandi VM oggi disponibili sul mercato pubblico, ma conosco bene MongoDB e sono certo che le prestazioni sarebbero state simili anche su macchine meno stellari.

Nel corso della sua presentazione Ivan ha anche accennato al deploy via git, cosa che ha immediatamente destato il mio interesse. Sono poi andato a verificare e in effetti qualcosa di simile a quel che oggi possiamo fare su Heroku è possibile anche su Azure, perlomeno per quanto riguarda il deploy dei siti web. Il deploy delle nostre REST API avviene via Git e mi riprometto di testare se lo stesso risultato è già ottenibile su Azure, anche perché ad un primo esame mi pare di poter dire che Azure sia senz'altro più conveniente rispetto alla concorrenza.

 

Open Source

Una cosa che balza all'occhio nell'offerta Azure; la ricchezza di supporto per i tool non-Microsoft, in particolar modo per quelli open source: git, Linux e quant'altro. Certo, col senno di poi, non c'è nulla di strano vista la rivoluzione che sta avvenendo col .NET Framework, cuore pulsante delle tecnologie Microsoft. Eppure ancora oggi non faccio che ripetermi: chi l'avrebbe detto solo un paio d'anni fa che avremmo visto Linux girare su una piattaforma Microsoft? E che dire della release non solo Open Source, ma addirittura multi piattaforma del prossimo .NET Core, di ASP.NET 5 e di tutto il resto che, c'è da scommetterci, arriverà poi?

Microsoft vuole essere ovunque, e ha capito che questo obiettivo non può essere raggiunto rimanendo focalizzata unicamente sulle tecnologie proprietarie né tantomeno costringendo gli sviluppatori su una piattaforma chiusa e limitata a Windows. Poteva arrivarci prima e certo ha ben corso il rischio di perdere il treno, ma a quanto pare ora siamo sulla giusta strada e l'intenzione di percorrerla a spron battuto.

Sia parlando direttamente con gli Evangelist sia seguendo la frenetica attività dei core developer su GitHub si ha la netta percezione di un grande entusiasmo per questo cambio di direzione. Pare di avvertire che questo fosse un evento atteso con trepidazione da lungo tempo.

 

Considerazioni finali

Sono uscito da questa giornata con l'impressione che Azure sia una piattaforma già sufficientemente matura. C'è ancora qualcosa da fare per colmare il gap con servizi che sono sul mercato da più tempo (il Marketplace, per esempio, è ancora in beta), ma siamo di fronte a una offerta già ricca e production ready.

E' evidente che Azure non è un esperimento, così come non è un'operazione di facciata l'adozione della filosofia open source per le tecnologie per sviluppatori. Per Microsoft si tratta di cambiamenti strategici, probabilmente i principali di questi anni. Attorno ad Azure e al .NET open source di nuova generazione Microsoft sta ridisegnando gran parte della sua offerta, enterprise e non, e ho l'impressione che ciò a cui assistiamo sia solo l'inizio di una strategia di lungo, lunghissimo periodo.


read full article

IoT per makers: le iniziative e i progetti di Microsoft

E-mail Stampa PDF

La domanda sorge spontanea: che cosa c'entra Microsoft con il mondo IoT?!?

Leggendo questo post potrete farvene un'idea!

Sempre più spesso si sente parlare di Internet of Things (IoT), a volte in associazione ad argomenti come Smart City e Smart Home, ma anche quando si parla di piccole schede come Arduino, Raspberry o Intel Galileo.

Ma di fatto, che cos'è l'Internet of Things?

Secondo Gartner, l'IoT è la rete di oggetti fisici che usano tecnologia embedded per comunicare e interagire sia con il proprio stato interno, sia con l'ambiente che li circonda. I sensori sono in grado di raccogliere svariate tipologie di dati, che vengono collezionati, analizzati ed utilizzati per prendere decisioni, eseguire azioni o semplicemente mostrare risultati. La parte fondamentale da sottolineare quando si parla di IoT è appunto l'elaborazione dei dati e l'utilizzo che ne viene fatto. Questa è la ragione principale per cui non è sufficiente connettere la propria board alla piattaforma cloud per creare IoT... Ma è sicuramente il miglior punto di partenza!

Vediamo ora iniziative e progetti di Microsoft dedicati a chi vuole avvicinarsi a questa realtà, sempre più attuale.

clip_image001

 

Windows Developer Program for IoT

Microsoft ha attivato ormai da tempo un programma dedicato ai makers denominato Windows Developer Program for IoT: iscrivendosi qui è possibile ricevere in anteprima tutte le informazioni connesse all'evoluzione del programma che lega Microsoft al mondo IoT.

La prima board per la quale è stata rilasciata un'immagine di Windows dedicata è stata la Intel Galileo di prima generazione, seguita poi dalla Galileo gen 2, il cui annuncio ufficiale è stato fatto durante la Maker Faire che si è tenuta a Roma nell'ottobre dello scorso anno. E' quindi possibile scaricare l'immagine di Windows sulla scheda e cominciare a fare qualche esperimento, magari seguendo uno dei tanti esempi che si trovano sul sito www.windowsondevices.com.

Il 2 febbraio 2015, in occasione dell'uscita di Raspberry Pi 2, è stato inoltre annunciato il passo successivo del programma, che consiste nella prossima pubblicazione di un'immagine di Windows 10 per questa nuova scheda. Per i dettagli vi invito a consultare il link ufficiale.

Da un punto di vista pratico e concreto, sono disponibili gratuitamente su GitHub alcuni esempi per connettere ad Azure non solo le suddette schede, ma anche altri tipi di board, come ad esempio Arduino e Tessel.

Diamo quindi un'occhiata a due progetti particolarmente interessanti.

 

Connect the Dots

Il primo progetto di cui voglio parlare in questo post si chiama Connect the Dots ed è stato realizzato da MS OpenTech. Si tratta di un progetto completamente open source che usa semplici schede per inviare dati su Azure, sfruttando poi servizi quali Event Hubs, Stream Analytics e Machine Learning per analizzare ed elaborare questi dati.

clip_image002

Lo scopo di questo progetto è proprio quello di fornire un punto di partenza semplice e rapido per implementare la vostra prima soluzione IoT utilizzando i servizi di Azure. Lo scenario applicativo è quello di una semplice telemetria per l'analisi dei dati di temperatura e umidità rilevati tramite un Weather Shield.

L'immagine riportata qui sopra mostra lo scenario originale del progetto al momento della prima pubblicazione (dicembre 2014): la prima scheda supportata è stata Arduino (utilizzata in accoppiamento allo shield con il ruolo di sensore) connessa ad una Raspberry Pi (usata come gateway). La porta di accesso al cloud è il servizio Event Hubs di Azure, tramite l'utilizzo del protocollo AMQP. Da qui i dati vengono poi trasmessi a Stream Analytics (attualmente in preview) per poter effettuare analisi real-time e segnalazioni di allarme. Queste informazioni vengono infine rese visibili all'utente tramite un Website.

E' molto importante precisare, però, che il codice sorgente (disponibile a questo link) subisce continue integrazioni. L'idea del team che segue il progetto è infatti quella di ampliare la gamma di schede connesse e servizi utilizzati, in modo da fornire istruzioni step-by-step per nuovi scenari applicativi.

Ad esempio, è sufficiente una rapida occhiata per verificare che è stato introdotto il supporto per .NET MF Gadgeteer e Intel Galileo.

 

Microsoft Developer eXperience: IoT hands-on labs

Un altro progetto interessante disponibile gratuitamente su GitHub è questo. Si tratta di 3 scenari distinti (Lab 1, Lab 2, Lab 3) che possono essere integrati per un comune progetto di Smart Home, convogliando quindi in un'unica visualizzazione su WebSite, descritta nel Lab 4.

clip_image003

Il primo scenario (Lab 1) è di nuovo la classica telemetria di dati provenienti da un sensore di temperatura. Le differenze fondamentali rispetto al progetto Connect the Dots sono due:

  1. Le board supportate: in questo caso potete trovare le istruzioni step-by-step per la scheda Tessel (che prevede il supporto a Javascript) e per Arduino Yun.
  2. Il protocollo usato per la trasmissione dei dati verso Azure: questo esempio prevede l'utilizzo d HTTPS invece di AMQP

Il secondo scenario (Lab 2) descrive il monitoraggio del consumo di energia tramite una scheda Arduino Due. In questo caso il focus è legato all'importanza della protezione dei dati: molti dispositivi (come appunto la Arduino Due) non sono in grado di supportare SSL, ma è possibile risolvere questo problema utilizzando un cloud gateway. In questo modo si può usare un protocollo di comunicazione custom che trasmetta i dati in maniera sicura tra il device e il cloud gateway, poi sarà quest'ultimo ad occuparsi dell'opportuna gestione di questi dati per inviarli ad altri servizi, in questo caso Event Hubs.

L'altra tematica fondamentale affrontata all'interno di questo scenario è legata al concetto di scalabilità, sia in termini di numero di trasmissioni al secondo, sia in termini di bilanciamento delle operazioni di gestione dei dati ricevuti.

Il terzo scenario (Lab 3) prevede la gestione di una comunicazione bidirezionale tra la scheda e il cloud service, con lo scopo di poter controllare la board inviando comandi specifici. Rimanendo in tema Smart Home, si pensi all'utilità di poter inviare comandi ai dispositivi per alzare e abbassare le tapparelle o il riscaldamento. L'architettura è molto semplice ma significativa: una scheda Arduino Uno con un LED (usato semplicemente come indicatore per verificare la ricezione dei comandi), connessa ad una Raspberry Pi con il ruolo di gateway, ed una comunicazione col cloud tramite protocollo AMQP.

Infine, il Lab 4 è legato all'integrazione e alla visualizzazione dei dati raccolti negli scenari descritti in precedenza.

 

Conclusioni

Grazie ad iniziative come il Windows Develper Program for IoT e il rilascio su GitHub del codice sorgente di progetti come quelli appena descritti, sta diventando sempre più semplice per chiunque avvicinarsi al mondo dell'IoT. Ovviamente il quadro fornito non è assolutamente completo in termini di schede considerate e presentazione dei servizi messi a disposizione da Azure per scenari IoT, ma è importante sottolineare che questo genere di progetti è in continua evoluzione.

Lo scopo di questo post è quello di fornire una prima overview del ruolo e dell'offerta di Microsoft rivolta ai makers, alla quale seguiranno ulteriori post di approfondimento.

Nel frattempo cominciamo a divertirci monitorando la temperatura di casa nostra!


read full article

Guest Post - Azure Notification Hub: notifiche push in 5 righe di codice

E-mail Stampa PDF

Questo post è stato scritto da Luca Di Fino, freelance Windows Phone developer

 

Introduzione

Dopo aver lavorato tanto per sviluppare la vostra app, pubblicarla, pubblicizzarla, rimane un solo obiettivo allo sviluppatore: invogliare l’utente ad usarla spesso (soprattutto se i vostri guadagni derivano dalla pubblicità). Nel panorama mobile attuale, dove gli app store contano app nell’ordine di centinaia di migliaia, ogni utente installa decine di app sul proprio smartphone per poi usarne effettivamente solo una manciata. Ci sono studi che indicano come in media le app vengano aperte una decina di volte in un anno e che un quarto delle app scaricate vengano lanciate una volta sola. Oltre all’ovvio consiglio di sviluppare app interessanti, graficamente piacevoli e funzionali, il modo per far sì che l’utente non si dimentichi di avere installato la vostra app e sia invece invogliato ad usarla è implementare un sistema di notifiche push, sistema che vi permette di richiamare l’attenzione dell’utente anche quando questo non avvia l’app. La piattaforma Windows ha in più la caratteristica unica di poter distribuire notifiche visuali che verranno visualizzate sotto forma di Live Tile, il che ha l’effetto aggiuntivo di invogliare l’utente a tenere l’app sulla schermata start.

 

Come funzionano le notifiche push

Le notifiche push permettono infatti di far visualizzare al sistema informazioni relative all’app anche quando questa non è in esecuzione. E’ il sistema operativo a farsi carico di questa attività, in modo da ottimizzare l’uso di risorse ed risparmiare allo sviluppatore di dover implementare processi in background che facciano polling per ricevere le notifiche. L’invio delle notifiche è gestito da una infrastruttura specifica per ogni piattaforma denominata Platform Notification System (PNS). Genericamente l’app si registra sul PNS della propria piattaforma ricevendo handle univoco legato all’app e al device (una uri nel caso di piattaforme Microsoft, un token invece per Apple e Google). Sta allo sviluppatore creare un servizio di backend della propria app che contenga la logica di trigger delle notifiche e la logica di gestione degli handle e dei device, in modo da poter inviare nel momento opportuno le notifiche al PNS che, tramite l’handler specifico, può indirizzare la notifica al device giusto.

clip_image002

 

Criticità

Le criticità nell’implementare un sistema di notifiche push sono principalmente quelle della gestione dei device e dei relativi handle, criticità che peggiorano quando si deve gestire un sistema di notifiche che copra piattaforme diverse. Il vostro backend deve infatti gestire i differenti utenti, i device, gli handle con le loro scadenze e peculiarità che variano di piattaforma in piattaforma. Inoltre deve essere in grado di scalare su grandi numeri mantenendo una tempistica ragionevole (se avete un’app che fornisce i goal del campionato non potete permettere che l’ultimo nella tabella dei device riceva la notifica con 5 minuti di ritardo, diventerebbe un servizio inutile). Inoltre vanno anche gestite notifiche personalizzate (solo le notizie della squadra del cuore oppure solo in determinati giorni e/o orari).

Sviluppare un sistema di backend per gestire le notifiche push richiede dunque molto tempo per lo sviluppo di servizi assolutamente non correlati con la vostra app (e di cui se siete alle prime armi probabilmente non avete nemmeno le competenze).

Azure Notification Hub

Azure Notification Hub è un servizio di Azure che vi permette di creare un servizio di notifiche push multipiattaforma, estremamente scalabile e soprattutto facilissimo da implementare, che si fa carico di tutta la parte relativa alla gestione dei device per lasciarvi liberi di concentrarvi esclusivamente sulla logica di creazione delle notifiche relativa alla vostra app.

clip_image004

Il Notification Hub:

· Gestisce per voi gli handle dei vari PNS, preoccupandosi di interagire con il PNS per eventuali errori, token scaduti, ecc.

· Lavora con device Windows (sia WNS che MPNS), Apple, Google e Amazon

· È in grado di servire push a milioni di device con bassa latenza

· Lavora con ogni tipo di backend (.NET, Node.JS, PHP, Java, REST API, ecc.)

· Ha un efficiente sistema di multicast e routing basato su tag

· È estremamente personalizzabile

· Offre una ricca telemetria

· È gratuito fino a 1 milione di push al mese

· Si implementa in 5 righe di codice

Vediamo ora come implementare le notifiche tramite Notification Hub su un’app universal in tre passi:

1. Creare e configurare il Notification Hub

2. Creare l’app client (universal)

3. Creare il backend

 

1. Notification Hub

Per creare il Notification Hub dobbiamo seguire questi tre passaggi:

· Creare l’Hub su Azure

· Recuperare il SID del pacchetto e la chiave privata client nel Dev Center

· Configurare l’Hub con il SID e la chiave appena recuperati

Creiamo un nuovo servizio hub dalla dashboard di Azure, andando su Nuovo -> Servizi App -> Bus di Servizio -> Hub di Notifica -> Creazione Rapida. Dobbiamo poi solo scegliere il nome del Notification Hub e l’area in cui vogliamo ospitare il servizio.

clip_image006

Azure creerà per noi uno Spazio dei Nomi in cui sarà ospitato l’Hub denominato nomehub-nsclip_image007

Selezionandolo, sotto il tag Hub di Notifica, troverete l’hub appena creato

clip_image008

All’interno dell’Hub, nel tag Configura, si trovano i campi di testo in cui inserire i vari parametri di configurazione per le varie piattaforme supportate. Nel nostro caso andremo a riempire il SID del pacchetto e la chiave segreta del client nella sezione Impostazioni di notifica Windows, usate per app Windows, Windows Phone (Runtime) e Universal.

clip_image009

Per recuperare queste informazioni dobbiamo passare per il Dev Center di Windows, andare nella sezione servizi dell’app e cliccare su sito dei servizi live. Nel caso in cui non abbiate creato ancora l’app dovete almeno riservarne il nome nel Dev Center.

clip_image011

clip_image013

In modo analogo potete recuperare queste informazioni dal Dev Center di Windows Phone.
Da notare che se create un’app universal il SID e la chiave segreta saranno le stesse sia per l’app Windows che per quella Windows Phone.

clip_image015

 

2. App Client (Universal)

Creiamo una Universal App in Visual Studio (oppure usiamo un’app esistente).
Il punto essenziale è che questa app sia già associata allo Store. Se non lo è potete farlo da Project -> Store -> Associate App with the Store. Nel caso di app Universal dovrete eseguire questa operazione sia per l’app Windows che per quella Windows Phone; al termine dell’associazione dovreste trovare nella root del vostro progetto un file denominato Package.StoreAssociation.xml.

Per configurare la vostra app alla ricezione delle notifiche dovete:

· Installare il pacchetto Nuget WindowsAzure.Messaging.Managed

· Abilitare l’app alla ricezione delle notifiche toast dal file .appxmanifest

clip_image017

· Creare un NotificationChannel e registrarlo sul Notification Hub (3 righe di codice):

 

string notificationHubPath = NOME_HUB;

string connectionString = DefaultListenSharedAccessSignature;

 

NotificationHub hub = newNotificationHub(notificationHubPath, connectionString);

 

var channel = awaitPushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

 

await hub.RegisterNativeAsync(channel.Uri);

 

Nel caso di una Universal App, potete inserire queste righe nel metodo OnLaunched in App.xaml.cs all’interno progetto Shared, in modo da far registrare l’app per le notifiche al lancio dell’app stessa.

La connectionString si trova nella dashboard dell’Hub su Azure al link Visualizza stringa di connessione:

clip_image019

Di default, la creazione guidata genera due stringhe di connessione: la prima, denominata DefaultListenSharedAccessSignature, permette solo la ricezione delle notifiche e va inserita nel client. Mentre la stringa denominata DefaultFullSharedAccessSignature permette anche la creazione di notifiche e va inserita nel backend. E’ possibile generare nuove stringhe con diversi criteri di accesso nella sezione Configura dell’Hub.

 

3. App Backend

Per creare un backend per la vostra app useremo un progetto .NET. Può essere una pagina ASP.NET, una Web API, o perché no persino un’app. Tutto ciò che dovete fare è:

· Aggiungere il pacchetto Nuget WindowsAzure.ServiceBus

· Creare l’HubClient:

 

NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString(connectionString, hubname);

 

Dove la connectionString è la DefaultFullSharedAccessSignature di cui abbiamo parlato poco sopra e l’hubname è il nome del vostro hub.
Notate che l’ordine dei parametri è invertito rispetto al client (prima la stringa di connessione e poi il nome dell’hub).

· Inviare una notifica nativa (nel formato della vostra piattaforma)

 

await hub.SendWindowsNativeNotificationAsync(XMLpayload); //WinRT

await hub.SendMpnsNativeNotificationAsync(XMLpayload);       //Silverlight

await hub.SendAppleNativeNotificationAsync(JSONpayload); //iOS

await hub.SendGcmNativeNotificationAsync(JSONpayload);      //Android

 

E’ tutto. Con 5 righe di codice potete inviare notifiche push alla vostra app. A tutte le complicazioni legate alla gestione dei token, dei device, ecc. ci pensa Azure.

Ovviamente resta da implementare la logica che scatena le notifiche, quella di creazione dei payload XML o JSON, non penserete che faccia davvero tutto Azure ;-)

 

Notifiche con Tag

E’ possibile avere un maggiore controllo sulle notifiche, ad esempio creando delle categorie a cui potersi sottoscrivere, utilizzando i tag, che altro non sono che semplici stringhe di testo.

Nel client, in fase di registrazione del canale push, potete aggiungere un array di stringhe, che rappresenta i tag a cui volete sottoscrivervi, come parametro della chiamata RegisterNativeAsync.

 

string[] tagsToSubscribeTo = { "phone", "news" };

await hub.RegisterNativeAsync(channel.Uri, tagsToSubscribeTo);

 

Nel backend dovete invece inserire una unica stringa con uno o più tag combinati tramite espressioni booleane (AND (&&), OR (||), NOT (!)). E’ possibile combinare fino a 20 tag se usate solo OR altrimenti il limite è di 6 tag.

 

await hub.SendWindowsNativeNotificationAsync(toast, "phone");

await hub.SendWindowsNativeNotificationAsync(toast, "phone && news");

await hub.SendWindowsNativeNotificationAsync(toast, "phone || news");

 

 

Siate educati

Va bene tenere alta l’attenzione dell’utente, basta non esagerare. A meno di casi particolari, inviare troppe notifiche push potrebbe avere l’effetto contrario e portare l’utente a disinstallare l’app nel caso peggiore. In ogni caso è bene offrire una pagina di configurazione in cui far scegliere all’utente quali e quante notifiche ricevere (tramite i tag) ed eventualmente dare la possibilità di disattivarle del tutto.

Per deregistrare le notifiche avete i seguenti metodi per deregistrare una specifica richiesta oppure per disattivare tutte le notifiche:

 

var registration = await hub.RegisterNativeAsync(channel.Uri, tagsToSubscribeTo);

await hub.UnregisterAsync(registration);

await hub.UnregisterAllAsync(channel.Uri);

 

Ora non avete più scuse per non implementare le notifiche push, anche nella vostra app fatta per divertimento.
Prima di lasciarvi vi rimando al mio blog dove sono presenti le slide sull’argomento che ho mostrato durante l’ultimo Mobile Camp a Roma, io intanto corro ad aggiungere le notifiche alle mie app :-P


read full article

Sviluppa la tua App Office365

E-mail Stampa PDF

 

Office365 banner 

Nessuno di noi credo abbia dubbi rispetto al fatto che Office 365 sia la piattaforma leader di mercato per la gestione dei processi collaborativi all’interno delle organizzazioni di qualsiasi dimensione (dalla PMI alla grande Impresa) e per aiutare le Persone ad essere più produttive (sia a casa che in azienda).

“Fortune 500 companies have purchased Office 365 in the last 12 months“

“The number of Office 365 customers with 10K or more seats has doubled Year Over Year”

Definire il valore di Office 365 solo in questo modo sarebbe però troppo restrittivo.

Office 365 rappresenta la Piattaforma Cloud ideale

per realizzare Line of Business Applications

atte alla gestione dei Processi e Dati Destrutturati
e/o Semi-strutturati

 

Con Office 365 (O365) gli sviluppatori, le aziende, gli ISV (Indipendent Software Vendor) possono creare applicazioni che sfruttano i servizi applicativi O365 (es. gestione comunicazione email, gestione documentale, ricerca…) in modo molto semplice ed immediato. Queste applicazioni possono essere viste come soluzioni standalone oppure come vere e proprie estensioni di LOB esistenti.

Prendiamo ad esempio un ISV che sviluppa soluzioni gestionali.

Una soluzione gestionale ha il compito di orchestrare processi strutturati all’interno dell’azienda (es. gestione ordini di vendita) ma le Persone, per svolgere il proprio lavoro, devono comunicare, collaborare, condividere informazioni
L’ISV, con O365, ha quindi l’opportunità di estendere le funzionalità del proprio prodotto, includendo all’interno del gestionale stesso dei servizi nativi di O365 come ad esempio la gestione documentale.

Altro elemento importante è la capacità di creare applicazioni che possano essere fruite da più piattaforme (Microsoft e non) e che quindi garantiscano un elevato livello di interoperabilità.  Prendendo come riferimento sempre lo scenario precedente, possiamo immaginare un tipico venditore che ha la necessità di visualizzare i documenti aziendali (memorizzati all’interno di una Document Library SharePoint) che sono associati ad uno specifico ordine di vendita tramite il proprio smartphone. Con una App O365 questo è possibile.

Ora vi starete domandando …

Da dove devo partire per sviluppare la mia App?

Quali sono le potenzialità della piattaforma?

Quali sono le risorse web che posso utilizzare per accelerare l’apprendimento degli strumenti di sviluppo O365?

Per rispondere a questa domanda, abbiamo deciso di creare un primo corso introduttivo sullo sviluppo Office365 disponibile all’interno della Microsoft Virtual Academy, una piattaforma di eLearning gratuita sulle tecnologie Microsoft (ma non solo).

In questo corso saremo in due: ho avuto infatti l’opportunità di condividere la sessione con Roberto D’Angelo Office 365 Lead di Microsoft Italia che, oltre ad essere un grandissimo professionista, è veramente una persona eccezionale! Ci siamo divertiti molto, a registrare questo training. E’ stato un vero piacere aver avuto l’opportunità di collaborare con lui!

Di cosa vi parleremo?

Dopo una prima introduzione su Office365 e sulle opportunità per gli sviluppatori, vi spiegheremo i principali paradigmi di sviluppo, dalle Contextual App, alle Office365 API, fino ad arrivare ad una breve introduzione dello sviluppo Cross-Platform (Windows, Android, iOS).

O3651

Il corso contiene svariati esempi applicativi e risorse per iniziare a sviluppare da subito.

Siamo convinti che dopo questo primo training, tutto sarà più chiaro. Se non fosse così fateci sapere!

http://www.microsoftvirtualacademy.com/training-courses/introduzione-allo-sviluppo-di-app-office365

#IamOfficeDevReady … e voi?

Roberto


read full article

Windows 10: prime impressioni e come preparare le proprie app

E-mail Stampa PDF

Il 21 gennaio c'è stata la presentazione di Windows 10 in un evento per la stampa e i blogger negli Stati Uniti, e in quell'evento si è parlato tanto delle novità di Windows 10 più legate al mondo consumer, alla nuova interfaccia capace di passare automaticamente (col consenso dell'utente) dall'utilizzo "classico" con mouse e tastiera ad un utilizzo "tablet".

Si è vista anche la convergenza totale della versione di Windows 10 per i telefoni, con un'interfaccia specifica ottimizzata per schermi di piccole dimensioni (< 8 pollici), ma capace di far girare le stesse Universal App del fratello maggiore (dagli 8 pollici in su).

Poi ci hanno mostrato gli HoloLens, degli occhiali olografici "futuristici" in grado di "mixare" la realtà con i contenuti creati dalle app installate sugli occhiali, che sono un "vero" PC con CPU e GPU autonome e che non richiedono hw di supporto come telefoni o tablet per funzionare.

Infine abbiamo visto anche il Surface Hub, un "tablettone" da 82" con schermo 4K e tutta una serie di strumenti per la collaborazione per i meeting e le attività come i brainstorming.

Qualche giorno dopo abbiamo inoltre annunciato che Windows 10 (nella versione per l'Internet of Things) per la nuova versione del Raspberry Pi 2, disponibile gratuitamente (Windows, non il Raspberry :-D).

 

Cos'hanno in comune tutte queste tecnologie? Che si potranno realizzare Universal App che gireranno su tutte queste piattaforme!

Volete saperne di più... non manca molto a Build 2015!


read full article

Guest post: Meetup con Microsoft Open Technologies a Roma

E-mail Stampa PDF

Questo post è stato scritto da Innocenzo Sansone, Microsoft Student Partner Lead

Lunedì 26 gennaio 2015, poco prima delle 18.30 dietro piazza Cavour, nel cuore del quartiere Prati, nel centro storico di Roma raggiungevo il locale “Prati Urbani” dove di lì a poco si sarebbe tenuto l’incontro lanciato via web da Microsoft Italia e rivolto a tutti gli sviluppatori di Roma del mondo Open Source, e non solo.

L’appuntamento era stato presentato come un’occasione per confrontarsi, bevendo un aperitivo insieme, e avere le risposte a tutte le domande sul cambiamento storico che Microsoft sta vivendo.

Ospite dell’incontro sarebbe stato Gianugo Rabellino, Senior Director of Open Source Communities in Microsoft Open Technologies a Redmond, di passaggio in Italia per qualche giorno, con cui discutere di temi quali interoperabilità, standard aperti e Open Source.

Sono stato uno dei primi ad arrivare. Il locale scelto per trascorrere la serata è un ambiente polivalente, dallo stile italiano ma di respiro internazionale, ideale per questo tipo di incontri. Presto il posto si è riempito di sviluppatori, eravamo oltre 40, e siamo scesi nella saletta adibita all’incontro.

La serata è stata introdotta da Roberto Andreoli, Director of Technical Evangelism in Microsoft Italia, che dopo averci dato il benvenuto e spiegato che l’obiettivo della serata era quello di iniziare un confronto, che certamente continuerà, ha passato subito la parola a Gianugo che, insieme a Roberto, è stato molto disponibile a rispondere a tutte le domande degli sviluppatori intervenuti.

La storia di Gianugo Rabellino è molto significativa. Prima di approdare in MS Open Tech a Redmond, presso il quartier generale di Microsoft, ha lavorato per oltre vent’anni, in Italia e in Europa, nel mondo dell’Open Source, partecipando a molti progetti e utilizzando molteplici linguaggi e tecnologie. In Italia, ha co-fondato, nel 1994, la prima associazione ufficiale di Linux aiutando Linux e l’Open Source a diffondersi. Grazie al suo impegno e partecipazione, ha ottenuto la membership, sin dal 1999, in Apache Software Foundation, dove attualmente ricopre il ruolo di vice presidente del Comitato di gestione del progetto Apache XML, assiste una serie di progetti dell’Apache Incubator come mentore e parla di sviluppo aperto nelle principali conferenze mondiali. Gianugo è stato, inoltre, il fondatore e CEO di SourceSense, uno dei principali system integrator europei di tecnologie Open Source, che ancora oggi gode di ottima salute. Proprio attraverso SourceSense è avvenuto il primo contatto con Microsoft in quanto le due aziende lavoravano ad un progetto Open Source di librerie per la lettura e scrittura di alcuni formati di Office. Con la sua decennale esperienza in community Open Source, Gianugo ha portato in MS Open Tech, nel 2010, una profonda conoscenza di tecnologie e piattaforme aperte e il suo ruolo è quello di coinvolgere il più ampiamente possibile il suo team con le community di sviluppatori per creare nuove opportunità di business attraverso l’uso di tecnologie Microsoft e non-Microsoft, mantenendo sempre il massimo rispetto delle community Open Source e del loro contributo.

Microsoft Open Technologies, Inc. è una società interamente controllata da Microsoft Corporation fondata per concretizzare ancora di più l’impegno della società nel campo dell’openness. E’ stata creata, ci racconta Gianugo, per essere più liberi di utilizzare le stesse pratiche ingegneristiche proprie delle community Open Source, in maniera estremamente agile, per rendere possibili certi scenari che sarebbe stato difficile ottenere, da un punto di vista ingegneristico, con i processi di sviluppo software di Microsoft.

In questo modo, MS Open Tech riesce molto bene a promuovere gli investimenti di Microsoft nell’apertura. Lo scopo è quello di fornire agli sviluppatori e ai clienti una maggiore scelta per collegare diverse tecnologie in un ambiente eterogeneo perché il gruppo crede fortemente che l’apertura sia un bene per i clienti, per la community e il business. Il team è composto da ingegneri, professionisti degli standard e divulgatori tecnici che hanno esperienza e passione nel lavorare in una serie diversificata di tecnologie.

In MS Open Tech si sviluppa software Open Source, si gettano le basi per l’interoperabilità tra sistemi diversi e si contribuisce alle specifiche degli standard aperti. I principali organismi di standardizzazione internazionale con i quali si lavora sono: W3C, IETF, OASIS, Ecma, DMTF e non manca la collaborazione con le community Open Source, tra cui: JQuery, MongoDB, Apache Cordova, Redis, Apache, Qpid, .NET Foundation, OpenJDK, Eclipse, Node.JS, Cocos2d, Web Platform Docs, Symfony, Doctrine, WebKit, GitHub, CodePlex. Tra l’altro, quello di MS Open Tech non è l’unico gruppo che lavora all’Open Source in Microsoft; basta ricordare i più recenti contributi a Linux oppure, ad esempio, TypeScript.

Non possiamo poi dimenticare la creazione, lo scorso anno, della .NET Foundation, di cui Gianugo Rabellino è uno dei membri della board, e il rilascio Open Source della piattaforma .NET, che sarà quindi presto disponile e supportata anche su Mac e Linux, oltre che Windows; oppure l’impegno di Microsoft nel campo delle applicazioni HTML5 e il recente rilascio di Visual Studio 2013 Community che offre gratuitamente, al singolo sviluppatore o a piccoli gruppi di lavoro e associazioni senza fini di lucro, le stesse caratteristiche della versione Professional a pagamento e permette di sviluppare per PC, mobile, Web e cloud.

Al centro della rivoluzione di quest’ultimi anni c’è sicuramente Azure, la piattaforma di Cloud Computing Microsoft.
Una piattaforma cloud, dice Gianugo, deve rispondere a determinate caratteristiche per dirsi interoperabile e quindi aperta. Bisogna avere piattaforme in cui sia possibile installare e migrare i tool con facilità, in cui l’utente abbia controllo dei propri dati e in cui sia possibile la scelta degli strumenti da parte degli sviluppatori in quanto il cloud deve parlare il loro linguaggio e non, vice-versa, in cui lo sviluppatore è costretto ad imparare il linguaggio del cloud.

Su Microsoft Azure l’interazione tra sviluppatori e la piattaforma avviene tramite protocolli REST e payload JSON o XML, tutto rigorosamente documentato. E’ possibile, da subito, sedersi al proprio PC e interagire attraverso i protocolli documentati ma se questo non bastasse sono disponibili gli SDK che implementano le interfacce aperte, disponibili in .NET, Java, PHP, Python e in tutti i principali linguaggi. Tutti gli SDK sono Open Source, rilasciati con licenza Apache e si trovano su GitHub: è possibile per le terze parti contribuire, come sta già accadendo, per renderli migliori.

Un cloud basato su standard aperti e con gli elementi di interazione forniti come Open Source è, per Gianugo, un cloud estremamente aperto e interoperabile. Microsoft Azure offre una ricchezza di strumenti e linguaggi di programmazione in grado di coprire qualsiasi esigenza, che sia IaaS o Paas, che sia .NET, Java, Node.JS, PHP, Python, che sia Windows Server o Linux. Proprio a proposito di Linux, MS Open Tech ha lanciato VM Depot, un catalogo di immagini Open Source per Azure che ben presto si è arricchito del contributo delle community e oggi conta centinaia di immagini disponibili per macchine virtuali Linux. Non bisogna, infatti, dimenticare che gli ultimi dati ci dicono che il 20% delle macchine virtuali su Azure sono macchine Linux.

Proprio riguardo l’interoperabilità spiccano i Mobile Services di Azure, disponibili per tutte le principali piattaforme (Windows Phone, iOS e Android), tramite i quali gli sviluppatori di app possono utilizzare facilmente e con poco sforzo servizi di autenticazione e autorizzazione, memorizzazione dei dati e le notifiche push all’interno delle proprie applicazioni.

Tutto questo fa di Azure una piattaforma per il General Computer perché l’astrazione è sempre più importante, e a  tal proposito, ci ha tenuto a sottolineare Gianugo, i container sono il prossimo passo verso la pura astrazione e Microsoft è molto attenta a quest’aspetto con il supporto per Docker, una piattaforma aperta che automatizza la distribuzione di qualsiasi applicazione attraverso contenitori portatili e autosufficienti che possono essere eseguiti quasi ovunque, incluso Microsoft Azure, su cui è offerto il pieno supporto per le macchine virtuali Linux sin da giugno 2014. Inoltre, ad ottobre 2014, Microsoft ha annunciato che Docker sarà presto supportato anche in Windows Server.

Tanti erano scettici che Microsoft potesse diventare un cloud provider, conclude Gianugo, perché veniva associata solo al software e a Windows. E’ sufficiente, però, pensare a servizi come Bing, MSDN, Skype, Windows Update, Hotmail, Office 365 e XBOX Live, solo per citarne alcuni, i quali dimostrano che gestire servizi in rete è parte del DNA di Microsoft. Da questo punto di vista, la tecnologia che sta alla base di Azure è un vantaggio competitivo; la facilità d’uso è un grosso elemento dovuto al fatto di supportare così tanti linguaggi e l’evoluzione della piattaforma è costante perché Microsoft interagisce con i propri utenti e le community per poter migliorare sempre di più i propri servizi e aggiungerne di nuovi.

L’incontro è così terminato, e siamo tutti saliti al primo piano del locale dove ci aspettava l’aperitivo e abbiamo continuato a discutere con molto interesse degli argomenti appena trattati sia tra noi partecipanti sia direttamente con la divisione DX, Developer Experience, di Microsoft che è stata ben lieta di rispondere a tutti i nostri dubbi e curiosità. La serata è poi continuata piacevolmente per molto tempo ancora.

L’impegno attuale di Microsoft nel campo dell’interoperabilità, degli standard aperti e dell’Open Source è, senza ombra di dubbio, rilevante ed è un’opportunità di crescita per la community degli sviluppatori. L’attenzione della filiale italiana è massima e, sono sicuro, non mancheranno altre occasioni per fare conoscere questo rinnovamento e le opportunità a tutti gli sviluppatori italiani.

Se volete approfondire potete guardare l'intervista a Gianugo su YouTube: “Cloud computing: il punto di vista di Microsoft


read full article

KiPi. Know it. Prove it. 28 giorni di formazione tecnica con Microsoft. Accetti la sfida?

E-mail Stampa PDF

Ciao a tutti!
Prima di tutto mi presento: sono Jessica Tibaldi, nuova Technical Evangelist su Azure. :)

160x600

Molti di voi sicuramente conosceranno il portale Microsoft Virtual Academy. Per chi non lo conoscesse, si tratta di un portale di formazione gratuita, all’interno del quale potete trovare numerosi video e materiali per approfondire la vostra conoscenza sulle tecnologie Microsoft. I corsi presenti sono erogati dai maggiori esperti e contengono non soltanto video lezioni, ma anche slide, laboratori e assessment per valutare le competenze acquisite.

Nel mese di febbraio avrà luogo una nuova e interessantissima iniziativa nell’ambito della Microsoft Virtual Academy: Know it. Prove it.
KiPi non è solo un evento, ma anche una sfida per approfondire la vostra conoscenza della tecnologia!

Si tratta di un percorso di formazione, online e completamente gratuito, della durata di un mese, che avrà inizio il 1° febbraio.
Iscrivetevi scegliendo tra le learning challenge disponibili quella che più vi interessa e gestite liberamente i vostri ritmi di studio nell’arco dei 28 giorni.

Le aree di sfida su KiPi sono le seguenti:

learningchallenge

Ognuna di queste comprende un certo numero di corsi tecnici, avanzando nella sfida riceverete punti e badge a dimostrazione delle competenze acquisite, avrete la possibilità di interagire e confrontarvi con gli altri membri della Community KiPi, nonchè di entrare nella classifica appositamente creata.

Tutto ciò che occorre fare è iscriversi qui http://aka.ms/knowitproveit-ita. Riceverete una comunicazione non appena verranno aperte le registrazioni ai challenge, il 1° febbraio.

Non perdete l’occasione di mettere alla prova le vostre competenze ;)


read full article

Pagina 7 di 49

 
 
 
 
Certificazioni