martedì 24 marzo 2015

Di Windows 10 SDK Ora Out come Anteprima

I membri di Windows Insider possono accedere al Software Development Kit di anteprima per la creazione di applicazioni universali sulla prossima piattaforma Windows 10.

By Michael Domingo2015/03/23

Una versione di anteprima di Windows 10 Software Development Kit è ora disponibile per gli sviluppatori che si sono registrati per il Programma Insider di Windows. Che, secondo Cliff Simpkins, Senior Product Manager per Windows Platform Developer Marketing, in un post del blog di oggi.

Microsoft presentato l'App Platform universale in primi di marzo in occasione della Conferenza Mobile World di Barcellona; la parte SDKis delle attrezzature che è stato annunciato con la piattaforma.

Uno degli obiettivi per Windows 10 e l'App Platform Universale è una semplificazione del processo per la creazione di applicazioni che sono, da un punto di vista degli sviluppatori, universale - costruire una sola volta e l'applicazione si adatta al dispositivo su cui sta girando. La capacità è lì adesso, con Windows 8.1 e un po 'di un work-around. Con Windows 10, è fatto un po 'più facile con l'incorporazione della UX Adaptive e la sua interfaccia utente singolare. La capacità di interfaccia utente controlla per configurarsi in fase di esecuzione in base all'interazione dell'utente con l'applicazione è anche una chiave per la nuova piattaforma, e così è il riconoscimento di API utilizzata (tramite contratti API).

Per gli sviluppatori, la salsa segreta sarà in Windows 10 SDK che è stato rilasciato in anteprima oggi. S. Somasegar, Microsoft Corporate Vice President della Divisione Developer, blog separatamente i dati degli strumenti di sviluppo per la piattaforma di Windows 10. Ha detto che gli sviluppatori possono utilizzare qualsiasi versione di Visual Studio 2015 dello strumento di programmazione di scelta, e le applicazioni dovrebbero essere in grado di funzionare su qualsiasi dispositivo Windows 10 con nessuna configurazione specifica per dispositivo aggiuntivo. L'SDK fornisce strumenti per l'utilizzo di caratteristiche che sono specifiche del dispositivo; è tutta una questione di scrivere applicazioni per verificare la presenza così API o estensioni SDK specifici.



Ha detto che questa anteprima contiene anche gli strumenti per testare le applicazioni su un test di PC con Windows 10, con emulatori per Windows 10 Phone e Xbox a venire. Somasegar chiama anche gli strumenti di debug e test che sono disponibili in anteprima che sono stati annunciati nelle settimane da MWC: " strumenti nuovi di diagnostica , XAML debug UI , e tutti gli strumenti di profiling "in varie fasi di sviluppo possono essere testati.

Somasegar scrive anche che le applicazioni potranno beneficiare di miglioramenti delle prestazioni, come applicazioni saranno compilati in .NET nativo all'interno del Windows Store prima che gli utenti li installa in Windows 10 dispositivi.

Si può leggere su altre funzionalità di Windows 10 SDK sul blog di Somasegar; per scaricare l'SDK, andate qui (dove si può anche leggere sui requisiti software prima di scaricarlo).

Chi l'Autore
You Tell 'Em, lettori: Se avete letto fino a questo punto, sapere che Michael Domingo, Visual Studio Magazine Editor in Chief, è qui per servire voi, cari lettori, e vuole ottenere le informazioni che così riccamente meritano. Che notizie, contenuti, temi, problemi non si vuole veder trattati in Visual Studio Magazine? Ha ascolto a mdomingo@1105media.com .

giovedì 5 marzo 2015

Come semplificare il temuto compito di Documentazione Pubblicazione con Pages GitHub

Non è necessario reinventare il sito Web di pubblicare alcuni documenti per il vostro progetto. Approfitta delle pagine GitHub per costruire quasi point-and-click siti doc.

Con Terrence Dorsey2015/03/04

Documentazione progetti software non deve essere difficile. La parte di scrittura è difficile da evitare (se avrò alcuni suggerimenti su che più tardi). Si può prendere cura della parte dell'editoria abbastanza facilmente, tuttavia, senza cadere nella tana del coniglio di scrivere il proprio framework CMS o Web - anche se questi continuano ad essere le strategie di procrastinazione popolari per gli sviluppatori che preferisce scrivere il codice che la documentazione.

Ecco il trucco: Se si sta utilizzando il tuo codice GitHub repository di origine, è possibile usufruire del servizio di built-in Pages GitHub dispongono di pubblicare, di accoglienza, e anche costruire e rendere la documentazione Web-based.

Basta che ospita il sito della documentazione di per sé non è una tale impresa incredibile. In questi giorni di solito è un processo semplice per far girare un server e spingere il tuo sito. Solitamente, ma non sempre. Ci sono i costi di tempo e denaro per impostare e gestire un server Web, anche se si sta lavorando da soli. E questa è la migliore delle ipotesi. Prova la navigazione del big-società la burocrazia per ottenere un server approvato ... e questo è prima di navigare il big-processi aziendali IT per ottenere installato e funzionante.

D'altra parte, se si dispone di un account di GitHub, GitHub pagine si presenta come parte del pacchetto. Se si dispone di depositi privati, come ad esempio attraverso un conto GitHub aziendale, è possibile anche sfruttare le funzioni di autenticazione e autorizzazione organizzazione built-in per limitare chi può vedere e contribuire alla documentazione pubblicata con GitHub Pages.

GitHub ha i wiki, ma sono fortemente limitato di funzionalità rispetto a GitHub Pages, che ha accesso a praticamente qualsiasi cosa si potrebbe impiegare per un sito Web normale compreso CSS personalizzato, JavaScript, framework Web, la compilazione automatica e più.

Così come funziona tutta questa magia? Prendiamo GitHub Pages per un giro con due semplici progetti che dimostrano le basi.

HTML statico
La versione più semplice di un progetto GitHub Pagine coinvolge tre elementi: un repository, un ramo GH-pagine per il progetto in file di progetto e HTML che di pronti contro termine nel ramo gh-pagine spinto al repo. Questo è tutto.



GitHub prende tutti i file HTML nel ramo GH-pagine e serve come un sito Web presso l'URL http: // [accountName] .github.io / [repoName]. Così, per esempio, ho creato un progetto di esempio che vive al http://tpdorsey.github.io/simple-docs/ . Ecco una breve passeggiata attraverso il processo per la creazione di un sito come questo.

In primo luogo, se non siete già lavorando con Git e GitHub, controllare il mio aprile 2014 articolo, " controllo del codice sorgente di Git e Mercurial , "per i collegamenti al software e tutorial. Per questo primo esempio, avrete solo bisogno Git e un account GitHub. Il Git sito ha un download per Windows che include Git Bash e Git Gui, e vi posso assicurare che sia il lavoro bene anche su Windows 10 Technical Preview.

Sulla macchina, creare una cartella per un nuovo progetto, quindi inizializzare il repository Git:

git init
Prima di fare qualsiasi altra cosa, creare e passare al ramo gh-pagine. Non c'è davvero alcun motivo per lavorare in master per questi file:

git checkout -b gh-pagine
Creare una pagine Web coppia. Ho creato un file index.html e una pagina secondaria, page1.html. Per questo progetto le pagine devono essere pagine Web reali, proprio come ci si crea per qualsiasi altro sito. La mia semplice file è in Listato 1 .

Listing 1: Il mio file index.html semplice

Può essere semplice o complicato come volete, ma devono essere file HTML statici.

Commit i file:

add git.
git commit -m "Guardate ma! Documentation"
Ora vai a GitHub e creare un repository per la documentazione. GitHub vi mostrerà un esempio del comando per impostare questo nuovo repo come il telecomando, che farete per il vostro repo doc locale:

GIT aggiungere remota origine [posizione repo]
Ora è possibile spingere i file dal repo documentazione locale di un ramo gh-pagine su GitHub:

git origine spinta gh-pagine
E questo è tutto! GitHub elabora automaticamente file validi nel ramo gh-pagine. Con pagine statiche come quello in figura 1 , le modifiche dovrebbero essere disponibili immediatamente sul sito GitHub Pages. Come ho detto prima, l'URL del sito segue un modello comune, utilizzando il nome dell'account e il nome repo. È inoltre possibile trovare l'URL nella pagina Impostazioni per il repo GitHub.


[Clicca sull'immagine per ingrandirla.] Figura 1. GitHub Renders file HTML in un GH-Pages Branch come Pages GitHub sito
Vuoi includere CSS o JavaScript? Battere se stessi fuori.

Basta ricordarsi di spingere le modifiche al ramo gh-pagine del vostro repo remoto per averli visualizzati nelle pagine ospitate. Inoltre, le pagine sono visibili agli stessi utenti che hanno accesso al tuo repo: repos pubblici hanno siti pubblici, mentre i pronti contro termine privati ​​hanno siti visibili solo agli utenti a cui hai dato accesso repo.

Utilizzando Jekyll
Un'opzione più sofisticato per la creazione di siti per le pagine GitHub è usare Jekyll (vedi figura 2 ), un rubino , su modelli generatore sito web statico basato. Jekyll è stato scritto da Tom Preston-Werner, un co-fondatore di GitHub, ed è nativamente supportato da Pages GitHub.


[Clicca sull'immagine per ingrandirla.] Figura 2. predefinito Jekyll Site
Con Jekyll, il contenuto è scritto in Markdown file di testo formattato per, insieme ad alcuni YAML metadati e configurazione. Jekyll utilizza anche il Liquid motore di template.

Quando si crea un sito Jekyll, Jekyll prende i tuoi contenuti Markdown e modelli di liquidi, insieme a tutti i CSS, script, immagini o altri contenuti che hai specificato, e costruisce un sito HTML statico che è possibile ospitare ovunque. L'aspetto interessante della relazione GitHub-Jekyll, tuttavia, è che non spingere il vostro sito al repo GitHub. Invece, il contenuto di origine e la configurazione viene spinto al repo. GitHub gestisce la costruzione del HTML e spingendolo verso il sito di hosting.

Ottenere Ruby e Jekyll impostati su sistemi Linux o Mac è semplice. "Apt-get rubino," se necessario, poi "gem install Jekyll."

Su Windows, dell'installazione e della configurazione richiede un po 'più di sforzo. La migliore guida in questo momento è di Julian Thilo " Run Jekyll su Windows . " Ho seguito questo su una macchina con Windows 10 Technical Preview e, ancora una volta, assicuro che funziona.

Una volta che tutto è impostato, aprire un prompt dei comandi con Ruby, passare alla cartella in cui si desidera impostare il progetto, ed eseguire "Jekyll nuova" seguito da un nome di cartella per il sito:

Jekyll nuovi Jekyll-docs
cd Jekyll-docs
Quando il sito è stato creato, è già impostato come un repository Git locale. Aggiungere un progetto GitHub per esso, controlla un ramo gh pagine localmente, impostare il telecomando per il vostro repo GitHub, e si è pronti a spingere tutte le modifiche fino a GitHub:

git checkout -b gh-pagine
Avanti, _config.yml aperto in un editor di testo e personalizzare i dettagli di configurazione. La documentazione Jekyll copre tutte le opzioni qui. Un dettaglio importante per i siti ospitati su GitHub Pagine sta definendo la tua "baseurl" per il nome del repository. Ad esempio, se il progetto su GitHub si chiama "Jekyll-docs," l'impostazione URL di base in _config.yml è:

baseurl: "/ Jekyll-docs"
Questo e altri suggerimenti sono spiegati nel Jekyll GitHub pagine di documentazione.

GitHub riconosce il ramo gh-pagine del progetto come progetto Jekyll e ricostruisce automaticamente ogni volta che si preme modifiche. Questo processo richiede un po 'di più di un semplice spingendo verso l'alto HTML, in modo da dare qualche minuto per riflettere i cambiamenti nel vostro sito attuale.

Jekyll Docs Template
Jekyll è un passo in avanti, ma è in realtà concepito come un motore di blog. Si può certamente usare fuori dalla scatola, ma una serie doc bel sta andando a prendere un po 'Giochi per bambini con i modelli, e ho detto questo sarebbe stato facile e veloce.

Di Byron Ruth Jekyll Docs Template (vedi figura 3 ) è un modello di progetto Jekyll personalizzato ottimizzato per flessibilità, documenti multi-pagina. Ha un built-in, tavolo sidebar completamente personalizzabile di contenuti.


[Clicca sull'immagine per ingrandirla.] Figura 3. Jekyll Docs Template è ottimizzato per Documentation Project
Per utilizzare Jekyll Docs Modello, clonare il progetto in una cartella per il progetto:

git clone https://github.com/bruth/jekyll-docs-template.git mio progetto
Dopo che funziona più o meno come qualsiasi altro progetto Jekyll, con due eccezioni. In primo luogo, il progetto include uno script per la creazione di nuovi posti, con la configurazione YAML corretta. Si usa in questo modo:

lunedì 2 marzo 2015

Storie di trincee: Dimensionamento e avarizia con i siti web Azure

Quanta capacità avrete bisogno per la vostra applicazione?

Oppure, ha chiesto un altro modo se indossare il cappello vendor, quanti soldi ya got?

Siamo generalmente schifoso a valutare i requisiti di capacità delle infrastrutture e anche quando è preso un approccio più scientifico (e non è frequente), siamo ancora schifoso a valutare il comportamento degli utenti in situazioni del mondo reale e l'impatto che avrà sulle prestazioni del sistema.

Ora, mettere la situazione in un ambiente cloud e ha il potenziale per andare un paio di modi. Uno è che avete sottovalutato e per gentile concessione del glorioso capacità di aumentare risorse molto rapidamente, la bolletta impazzisce. Un altro è che hai sopravvalutato e si finisce per pagare per le risorse che davvero non servono. Recentemente ho passato attraverso le sfide di scala sia con il sito web e il database SQL Azure su sono stato pwned? (HIBP). Per me, non è mai di avere accesso a sufficienti scala (che è più o meno limitata dal vostro portafoglio), piuttosto si tratta di cercare di entrambi mantenere il costo basso e la perf e francamente, non voglio davvero scendere a compromessi su entrambi! Ecco quello che ho fatto con il sito e scriverò di più database un'altra volta.

Il sito web
Sono stato in esecuzione su una singola piccola istanza di un sito web Azure fin dal primo giorno. 95% del tempo, va bene e l'altro 5% del tempo o scale automaticamente o ... pause. Mi spiego:

Recentemente ho scritto su Capire sito Azure auto-scala magia e ho mostrato come stavo sostenendo circa 4k richieste al minuto, mentre qualcuno martellava l'API:

Le richieste al minuto picco di oltre 5k

Questo è stato, con due istanze piccolo server web:

Chart utilizzo della CPU

Ho provato scala fuori per tre piccole istanze e ... la velocità effettiva bloccato a 4k per min. Ok, quindi il consumatore del servizio è maxing la loro capacità di trasmettere ed elaborare le richieste, giusto? Voglio dire aumentando la capacità da parte mia non migliorerà le cose, quindi deve essere colpa loro. Pensiero Sound, o almeno così pensavo ...

Per un capriccio, ho scalato fino a una dimensione di server media e quindi in modo che non ci solo uno di loro e non due ero. Questo è esattamente lo stesso costo - due Smalls equivalgono a un medio - e in test di carico prima (si sa, il genere in cui tutte le condizioni sono semplicemente perfetto ...) questa comportato esattamente la stessa velocità. Ma questa volta, è raddoppiato - sono andato a 8K richieste al minuto. Il tempo di elaborazione per ogni operazione anche andato fino in fondo da circa 60ms a circa 30ms. Chiaramente, questo è stato un miglioramento significativo. Anche chiaro era che ottenere destra scala era difficile:


Allora, perché è questo? Rob Moore ha fatto un buon punto che la piccola istanza è solo 1 core e che la raccolta .NET garbage piace avere una seconda (o più), ma su questa base, se il collo di bottiglia è una singola macchina poi due macchine deve raddoppiare la velocità (anche se potrebbe spiegare i 60ms a 30ms drop). Qualcun altro ha suggerito che era legato a obiettivi di performance del piccolo esempio macchina, ma ancora una volta, non c'è niente da suggerire che due piccole istanze non possono raddoppiare la velocità di uno, che è il punto di scalare fuori! Ma a prescindere dal flusso totale, la premessa che una macchina di medie dimensioni in grado di elaborare ogni richiesta significativamente più veloce di una piccola macchina rimane e che 60ms fino a 30ms è certamente un guadagno molto positivo.

Ma ecco ciò che veramente mi ha fatto in termini di perf: la mia soluzione è attualmente questi in esso:

Tre WebJobs nella soluzione di Visual Studio

Ecco tre WebJobs separati che vengono eseguiti come processi in background. Su ogni rilascio, devono essere compilati e distribuiti , nonché il sito schierato - allora tutti hanno bisogno di essere licenziato troppo. Schiero da GitHub sul check-in modo Kudu entra in gioco, che gestisce anche sulla stessa macchina. La linea di fondo è che quando voglio schierare, mentre io sto usando un piccolo esempio, questo accade:

Web operazione volta a chiodare 2,500ms su deploy

Whoa! Ciò significa che la mia Apdex soffre e ricordate, questo è ciò che è stato osservato nel browser:

Immersione Apdex in rosso su deploy

La velocità va anche a zip per un po ':

Throughput andare a zero su deploy

E la CPU, beh, alcuni dati è stato perso del tutto, ma chiaramente sta avvicinando l'utilizzo del 40%:

Utilizzo della CPU i dati mancanti e quasi il 40%

Questo è un periodo di carico leggero troppo (solo circa una richiesta di secondo), quindi immaginate cosa che fa una volta i pali di carico su. Perdo il traffico. Potrei cambiare il mio flusso di lavoro per la distribuzione solo per l'ambiente di gestione temporanea e quindi utilizzare gli slot di distribuzione in scena per passare il traffico (e lo faccio che a volte), ma mi piace di mantenere l'applicazione in un perpetuo stato di implementazione pronto e spingere un sacco di cambiamenti frequentemente. Utilizzando Kudu in questo modo e con il numero di progetti e aumentare la base di codice sempre più grande, ero causando un'interruzione.

Ora proviamo che ancora una volta con una media istanza di un sito web:

Medio esempio sito chiodare tempo transazione 1,000ms

Quel 2,5 secondi picco è ora 1 secondo. Sei ancora intenzione di ottenere un picco sulla distribuzione, ma chiaramente è neanche lontanamente così significativo.

Il Apdex rimane molto più felice troppo - ho brevemente immerso in "tollerare" (giallo) e non "frustrante" (rosso):

Apdex andare giallo, ma non rosso

E la velocità non azzera out, infatti non perde un colpo:

Throughput rimanendo a circa 50 richieste al secondo

E l'utilizzo della CPU rimane così in basso:

immagine

Questi risultati sono tutti chiaramente solo da una prova di campione, ma quello che posso dire con forza è che di volta in volta, mi piacerebbe vedere latenza elevata sui tempi di risposta, le connessioni caduto e anche un'interruzione totale - a volte per più di un minuto - quando si distribuisce su un piccolo esempio. Non ho mai visto la perdita di un servizio o di qualcosa di più di una leggera e momentanea degrado del servizio su un'istanza di media. Non una sola volta.

Vorrei aggiungere qualcosa penetranti per gli altri interessati a perfezionare la loro scala:

Non trattare i server come animali domestici, li trattano come bestie
Questo è per gentile concessione di Richard Campbell RunAs Radio e quello che sta dicendo è che a volte potrebbe essere necessario battere solo una tantum per il miglioramento della ascoltato. Potete farlo con Azure - flick un server con un altro e vedere come va. Non ottenere un allegato ad esso come se fosse un cane, si tratta di un servizio disponibile lì per servire voi e quando si avvia la visualizzazione come una risorsa altamente transitorio, si può fare un sacco di roba impressionante, come capire qual è la migliore scala per voi sulla base di prove ed errori.

Per me, è stato il gesso e il formaggio e il percorso in avanti è stato chiaro - ho dovuto andare da piccole a medie:

Piccolo esempio è 74,40 $ / m, medio è 148,80 dollari

Sì, è un extra di $ 74,40 al mese - letteralmente doppia - ma non è un pò e ci sono altri aspetti positivi finanziari troppo. In primo luogo, l'elaborazione di tali richieste al doppio della velocità (che è mai sarà una costante, ma è ragionevole prevedere per lavorare con base all'esperienza) ha enormi pregi per i consumatori al volume di traffico. In questo caso particolare, il consumatore stava controllando circa 10 milioni di identità (qualcosa scriverò su un altro tempo) e l'istanza medio riduce la durata di che, molte, molte ore.

L'istanza di media significa anche meno notifiche vanno a me quando rampe di carico CPU fino come lo fa a metà della velocità per gli stessi volumi di traffico. Francamente, la pace e la tranquillità è abbastanza prezioso! Ma significa anche che le scale più tardi - mi sia permanentemente in esecuzione un'istanza di media, ma ci sono un sacco di momenti in cui stavo correndo due Smalls e pagando lo stesso importo così quei periodi si annullano a vicenda.

Ma di gran lunga il più grande guadagno è che questo significa che posso lavorare in modo più attrito. Non ho per incidere intorno ai modi che rilasciare il software e non c'è bisogno di spendere tempo a cercare di mantenere le cose stabili durante il processo. Spingo di GitHub, magia accade, quindi il sito di produzione è in funzione la nuova versione e tutti sono felici. Che vale la pena di un paio di dollari al giorno!