Agosto 2015

Volume 30 numero 8

Il presente articolo è stato tradotto automaticamente.

Il lavoro programmatore - come essere media: Guida introduttiva

Da Ted Neward | Agosto 2015

Ted NewardUniversi paralleli sono tutti i rabbia, soprattutto se seguirete le storie a fumetti. Chiaramente, ho varcato uno anch'io. Quando ho iniziato a leggere questa rivista, è stato chiamato Microsoft Systems Journal (MSJ in breve). Le lingue di scelta erano C++ e Visual Basic. La piattaforma tecnologica sottostante era una piattaforma gestita (COM) scritta con entrambi i linguaggi come C++ non gestiti e linguaggi gestiti come Visual Basic. Il sistema operativo di scelta era chiaramente, immancabilmente, senza dubbio e senza esitazione Windows. Forse è stato Windows 3.0, 3.1, Chicago o NT — ma sempre Windows.

Guarda dove siamo oggi. Chiaramente non è un "Microsoft" mondo in piu ', anche all'interno del mondo Microsoft. Dimenticare, per un attimo, i "concorrenti" contro cui Microsoft combatte, come Java o Ruby. L'azienda vanta collaborazioni con le lingue e anche li supporta in modo nativo sulla piattaforma Microsoft Azure di prossima generazione. Dimenticate le lingue che Microsoft "possiede," come C# o Visual Basic o F #. Sono stato fatto tutti opensource. Come ha il suo quadro di Web e il suo quadro di accesso ai dati. E la nuova versione di Visual Studio verrà fornito con un emulatore di Android.

E proprio quando pensavamo che non potrebbe essere più diverso, Microsoft ancora andato e ha fatto qualcosa di completamente diverso. Momento in cui scriviamo, Microsoft ha appena annunciato una partnership con Cyanogen, un distributore di Android. Per favore qualcuno può dirmi quale portale ho varcato?

Nei fumetti, ogni volta che un eroe passi in un nuovo universo, c'è un momento in cui l'eroe è di abbracciare il mondo nuovo o rischiano di essere identificato come l'outsider — e possibilmente rinchiuso in un manicomio. Se non avete voglia di sanitarium, probabilmente dovrebbe abbracciare questo nuovo mondo.

Ottenere media

Parliamo di node. js. O, più precisamente, parliamo di uno degli stack software favorito per la piattaforma di node. js: DIRE (MongoDB, Express, AngularJS, node. js). Sta rapidamente diventando uno dei giocatori chiavi nel mondo della nuova tecnologia. Supporto di Microsoft per node. js e MongoDB su Azure (per non parlare del fatto che è possibile eseguire facilmente questi su una standard Windows macchina on-premise) significa — se ti perdono il gioco di parole — è qualcosa che deve sapere ogni sviluppatore di Microsoft.

Si può fare dire un paio di modi, compreso l'uso di Visual Studio. Iniziare "abbracciando il nodo modo." Utilizzare solo il set preferito di strumenti Node-ish: un editor di testo, la riga di comando e (se si dispone di uno in giro) un Mac. Che è quello verrà utilizzato per avviare, anche se la maggior parte dei comandi della riga di comando sarà abbastanza regolabile a Windows senza difficoltà, sarà diverso.

Prima di arrivare troppo lontano in questo universo parallelo, date un'occhiata alle principali attori. Lo stack medio è un quartetto di "stack completo", significato che copre front-end, back-end e deposito. A partire dall'estremità anteriore, AngularJS fornisce un completo framework pagina singola applicazione Web client, completo di astrazioni di Model-View-Controller e associazione bidirezionale per l'interfaccia utente. AngularJS risiede interamente sul front-end, però e richiede un back-end con cui comunicare. Questo in genere utilizza chiamate API di Web. Questi sono anche conosciuti in alcuni ambienti come gli endpoint RESTful, anche se quello può condurre alla zelanti dibattiti su ciò che è il resto, quindi cerchiamo di lasciarlo come Web API per ora.

Tali endpoint Web API sono costruiti con il quadro di Express che si siede in cima alla piattaforma di node. js. Si tratta di molto allo stesso modo ASP.NET Web API si siede in cima la pipeline ASP.NET e Microsoft .NET Framework. Queste API Web di back-end dovrà chiaramente un database per l'archiviazione, che è dove MongoDB entra in gioco. MongoDB è un archivio di dati senza schema, orientati al documento (in contrasto con SQL Server, che è un schemaed, archivio dati relazionali orientati) con alcuni partizionamento incorporato e mappa-ridurre le capacità.

Esso potrebbe essersi già verificato a voi queste tre parti — front-end, back-end e archiviazione — sono in realtà abbastanza intercambiabili. Ad esempio, non sarebbe difficile immaginare utilizzando AngularJS parlare ASP.NET Web API che a sua volta parlare con MongoDB. O per utilizzare un'applicazione Windows Form come front-end, rendendo HttpClient chiamate a node. js, che a sua volta comunica con MongoDB. In alternativa, solo per completare la tripletta, AngularJS a node. js per SQL Server.

Questi tre componenti è facilmente "swap," così a lungo come il frontale fine utilizza HTTP (o qualcosa del genere allo stesso modo indipendente dalla piattaforma) parlare al back-end. Il back-end deve inoltre un driver per comunicare a vostra scelta di archivio dati.

Installare Node. js

Node. js è davvero una bestia banale da installare, quando si arriva fino ad esso. Gli sviluppatori che hanno già installato il SDK Azure hanno node. js, ed è probabilmente già sul percorso, per l'avvio. Nodo di tipo solo in un prompt dei comandi per verificare è installato. CTRL + C vi porta fuori la shell interattiva che incendia se node. js è installato, a proposito.

Dovrete installare Node. js in una finestra di Windows fresco-da-la-fabbrica, o una scatola di Mac OS allo stesso modo nuova per quella materia. Su Windows, il modo migliore per farlo è ottenere la Azure SDK oppure visitare il sito Web Node. js per un programma di installazione MSI per node. js, che lo mette sulla strada per impostazione predefinita. C'è anche un programma di installazione per Mac OS, ma l'approccio migliore su Mac è quello di installare un altro pacchetto manager chiamato Homebrew. È disponibile presso brew.sh. Una volta installato, questo diventa il tuo "strumento di go-to" per installare nulla sul Mac, tra cui node. js.

Homebrew è un semplice "nodo Installa brew" che tirare giù tutti i bit di node. js, installarli nei posti giusti (senza richiedere l'accesso come root per farlo) e metterlo in modo implicito sul percorso. Ancora una volta, "nodo" nella riga di comando consente di verificare che l'installazione ha funzionato. Una volta lanciato, fornisce la risposta più basso rumore di qualsiasi utilità avrete mai installare (come mostrato Figura 1).

esecuzione di node. js; No, sul serio, è in esecuzione
Figura 1 esecuzione di node. js; No, sul serio, è in esecuzione

Premere Ctrl + C (due volte) per ottenere node. js per uscire. Hai iniziato, ma non hai finito.

Installare il NPM

L'universo di .NET ha NuGet. L'universo Ruby ha gemme. L'universo di node. js ha il nodo Gestione pacchetti. Si chiama npm e viene installato come parte di node. js stesso (npm è in realtà una piccola app di node. js che viene eseguito dalla riga di comando). Senza dover fare nient'altro, una volta installato node. js, si dovrebbe essere in grado di accendere npm utilizzando solo "npm" nella riga di comando, come illustrato nella Figura 2.

il nodo Gestione pacchetti
Figura 2 il nodo Gestione pacchetti

I due comandi che si cura più circa sono npm installazione e aggiornamento di npm. Ognuno può prendere uno o più nomi di pacchetto di npm come parametro. Quando si installa un pacchetto, npm verrà scaricato il pacchetto dal sito Web di npm, proprio come fa NuGet. Quindi si installa localmente sul disco rigido sotto la directory corrente. Così, per esempio, in una directory vuota, dire npm per installare il pacchetto di debug (come mostrato Figura 3).

installare un pacchetto di npm
Figura 3 installare un pacchetto di npm

Lo strumento di npm risponde dicendo che ha scaricato versione 2.1.3 del pacchetto di debug, che a sua volta dipende dalla versione 0.7.0 del pacchetto ms. Più importante, entrambi sono stati installati in una directory locale chiamata node_modules. Si tratta di "archivio locale" di tutti i pacchetti di node. js che userete per questa applicazione. Se per qualche motivo che si desidera un pacchetto di npm installato a livello mondiale (in una directory di node_modules da qualche parte in una posizione condivisa), è necessario utilizzare il debug di npm installare – g.

Una volta che questi pacchetti sono installati nella directory corrente, è possibile consultarli mediante la chiamata "richiedono" in node. js. Accetta una stringa che descrive il nome del pacchetto, quale nodo si aspetta di trovare all'interno della directory node_modules direttamente sotto la directory corrente. Così il codice seguente in un file denominato helloDebug.js, carica il pacchetto di debug, viene assegnato a una variabile dello stesso nome (convenzione di node. js) e viene utilizzato per ottenere un flusso di debug per l'emissione di informazioni di debug (simile a System.Diagnostics.Trace):

var debug = require('debug')('hello');
debug("This should never appear unless DEBUG=hello");

Ora quando si esegue tale codice (nodo helloDebug.js), se c'è una variabile di ambiente denominata DEBUG impostato su "hello", chiamate debug verranno stampato nella console. In caso contrario, non verrà visualizzato. Su un sistema Mac o Unix, è possibile impostare temporaneamente una variabile di ambiente per una corsa di node. js anteponendo l'assegnazione proprio di fronte il comando di nodo (come illustrato Figura 4).

Ciao, mondo di Debug
Figura 4 Ciao, mondo di Debug

Non è molto, ma comincia a dare una sensazione per come funziona lo sviluppo node. js. Più importante, si dovrebbe capire che una chiamata richiedono sta cercando di caricare un pacchetto fuori della directory locale node_modules. Così se una richiesta ha esito negativo, significa che il pacchetto è stato danneggiato localmente o non è stato installato. Nella colonna successiva, parlerò di come tenere traccia di quali pacchetti di npm sono installati in modo non devi ricordare.

Ho dimenticato di menzionare tutto il codice di node. js è JavaScript? Se sei a disagio con JavaScript, ora è un buon momento per pennello. Crockford "JavaScript: Le parti buone"(o ' Reilly Media, 2008) è un ottimo punto di partenza.

Installare MongoDB

Sempre MongoDB su un sistema di sviluppo locale è davvero banale. Scaricare il file. zip appropriato per il sistema dal sito Web di MongoDB (mongodb.org), decomprimerlo e mettere i binari sul vostro cammino. MongoDB è anche disponibile in diversi sapori "as-a-Service", come MongoLab (mongolab.com), che offre un livello gratis per sempre per dati carichi meno della metà un concerto (che è un sacco per molti scopi introduttivi). Installare MongoDB localmente oppure creare un account MongoLab.

Il download di MongoDB ha anche il client della riga di comando "mongo" (simile nello stile e ambito di applicazione per il client della riga di comando di SQL Server ). Questo è utile per accedere a un database MongoDB da script di shell e simili. Se sei più GUI-centric, ci sono alcuni strumenti gratuiti di MongoDB GUI nel mondo. Il mio preferito per il Mac è RoboMongo e MongoVue per Windows.

Per impostazione predefinita, si supponga di Mongo viene eseguito localmente (ovvero il server è "localhost" e la porta predefinita è 27017). Se si ha familiarità con Mongo, è possibile sia il check out mio precedente colonna di MongoDB in msdn.microsoft.com/magazine/ee310029, o trascorrere pochi minuti rispolverando su una qualsiasi delle decine di migliaia di articoli on-line su MongoDB. Bing è il tuo amico qui.

MongoDB l'esecuzione su un computer locale è anche banale. Si supponga la directory bin di MongoDB è sulla strada e basta avviare "mongod." Presupporrà può scrivere per il "/ var" directory per memorizzare i dati. Che di solito è non quello che vuoi, quindi passare una "-dbpath" argomento (nota il doppio trattino) per specificare la directory di scelta in cui memorizzare i dati.

Il sito MongoDB Web propone anche istruzioni su come eseguire MongoDB come un servizio Windows o come un demone su * nix piattaforme. Tuttavia, lancio "a mano" in primo piano ha il vantaggio di essere in grado di vedere i log di MongoDB viene scritti a schermo come accadono.

Conclusioni

Che è tutto lo spazio per questo mese, ma avete i bit core che avete bisogno per iniziare. La prossima volta, io iniziano a girare alcuni degli endpoint HTTP sul server, utilizzare Express, parlare di un po ' più come un'applicazione Node. js è strutturata e come costruire questi endpoint per l'esecuzione in Azure. Potrai anche iniziare guardando alcuni degli strumenti applicazioni node. js viene utilizzato come parte del loro sviluppo. Ma per ora...

Codifica felice!


Ted Neward è CTO di iTrellis, una società di servizi di consulenza. Ha scritto oltre 100 articoli e autore e coautore di una dozzina di libri, tra cui "Professional F # 2.0" (Wrox, 2010). Egli è un F # MVP e parla a conferenze in tutto il mondo. Egli consulta e mentors regolarmente — contattarlo al ted@tedneward.com o ted@itrellis.com se siete interessati.