Top Banner
#modernDotNet MODERN WEB DEVELOPMENT WORKFLOW BACKED BY .NET
122

Modern Web Development Workflow backed by .NET

Jan 21, 2017

Download

Software

Jeff Strauss
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Modern Web Development Workflow backed by .NET

#modernDotNetMODERN WEB DEVELOPMENT WORKFLOW

BACKED BY .NET

Page 2: Modern Web Development Workflow backed by .NET

why is change so scary?

Page 3: Modern Web Development Workflow backed by .NET

@JEFFREYSTRAUSS ARANA SOFTWARE

Page 4: Modern Web Development Workflow backed by .NET

C#

Page 5: Modern Web Development Workflow backed by .NET

all the thingsC#

Page 6: Modern Web Development Workflow backed by .NET

Studio is forC# all the things

Page 7: Modern Web Development Workflow backed by .NET

Studio is for all the things

Page 8: Modern Web Development Workflow backed by .NET
Page 9: Modern Web Development Workflow backed by .NET

+ =

Page 10: Modern Web Development Workflow backed by .NET
Page 11: Modern Web Development Workflow backed by .NET

Use the best tools

Page 12: Modern Web Development Workflow backed by .NET

Cis for Studio#

Page 13: Modern Web Development Workflow backed by .NET

Isolate the Client...

Page 14: Modern Web Development Workflow backed by .NET

...for less code.

Page 15: Modern Web Development Workflow backed by .NET

...for better testing.

Page 16: Modern Web Development Workflow backed by .NET

...for better communication.

Page 17: Modern Web Development Workflow backed by .NET

But my boss will...

Page 18: Modern Web Development Workflow backed by .NET

But my client will...

Page 19: Modern Web Development Workflow backed by .NET

But Studio can...

Page 20: Modern Web Development Workflow backed by .NET

But I know Studio...

Page 21: Modern Web Development Workflow backed by .NET
Page 22: Modern Web Development Workflow backed by .NET

our workflow

Page 23: Modern Web Development Workflow backed by .NET
Page 24: Modern Web Development Workflow backed by .NET
Page 25: Modern Web Development Workflow backed by .NET
Page 26: Modern Web Development Workflow backed by .NET
Page 27: Modern Web Development Workflow backed by .NET

Our Workflow

Page 28: Modern Web Development Workflow backed by .NET

getting started

Page 29: Modern Web Development Workflow backed by .NET

! nodejs.org free | MIT license

Page 30: Modern Web Development Workflow backed by .NET

Bower! bower.io free | MIT license " npm install -g bower

Page 31: Modern Web Development Workflow backed by .NET

bower install jquery"

Page 32: Modern Web Development Workflow backed by .NET

bower install jquery#2.1.4

jquery#2.1.4 bower_components/jquery

"

bower install jquery"

Page 33: Modern Web Development Workflow backed by .NET

bower update <package> bower uninstall <package> bower list

"

Page 34: Modern Web Development Workflow backed by .NET

gulp.js! gulpjs.com free | MIT license " npm install -g gulp

Page 35: Modern Web Development Workflow backed by .NET

#

a task: read, concatenate, write

Page 36: Modern Web Development Workflow backed by .NET

#

$

streams from task to task

Page 37: Modern Web Development Workflow backed by .NET

//gulpfile.js

var gulp = require('gulp'); var coffee = require('gulp-coffee'); var concat = require('gulp-concat'); var uglify = require('gulp-uglify');

Page 38: Modern Web Development Workflow backed by .NET

gulp.src('app/js/**/*.coffee')

Page 39: Modern Web Development Workflow backed by .NET

gulp.src('app/js/**/*.coffee') .pipe(gulp.dest('dist/js'));

Page 40: Modern Web Development Workflow backed by .NET

gulp.src('app/js/**/*.coffee') .pipe(coffee())

.pipe(concat('app.js'))

.pipe(uglify())

.pipe(gulp.dest('dist/js'));

#$

Page 41: Modern Web Development Workflow backed by .NET

gulp.task('coffee', function() { gulp.src('app/js/**/*.coffee') .pipe(coffee())

.pipe(concat('app.js')) .pipe(gulp.dest('test/js')) .pipe(uglify()) .pipe(gulp.dest('dist/js'));

});

Page 42: Modern Web Development Workflow backed by .NET

gulp.task('watch', function() { gulp.watch('app/js/**/*.coffee', ['coffee']); });

%

Page 43: Modern Web Development Workflow backed by .NET

gulp coffee watch"

Page 44: Modern Web Development Workflow backed by .NET

Kudu& projectkudu/kudu free | apache license " npm install -g azure-cli

Page 45: Modern Web Development Workflow backed by .NET

azure site deploymentscript"

Page 46: Modern Web Development Workflow backed by .NET

:: 6. Publish to wwwroot call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 --fromDir "%DEPLOYMENT_TEMP%" --toDir "%DEPLOYMENT_TARGET%" --previousManifest "%PREVIOUS_MANIFEST_PATH%" --nextManifest "%NEXT_MANIFEST_PATH%" --ignore ".git;.hg;.deployment;deploy.cmd"

'

'

'

'

'

Page 47: Modern Web Development Workflow backed by .NET

./staging/ β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œ about.html β”œ index.html β”” web.config

Page 48: Modern Web Development Workflow backed by .NET

./staging/ β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œ about.html β”œ index.html β”” web.config

./wwwroot/ β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œ about.html β”œ index.html β”” web.config

∠

Page 49: Modern Web Development Workflow backed by .NET

./staging/ β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œ about.html β”œ index.html β”” web.config

./wwwroot/ β”œβ”€β”€ app_data β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œβ”€β”€ log β”œ about.html β”œ index.html β”” web.config

∠

Page 50: Modern Web Development Workflow backed by .NET

./staging/ β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œ about.html β”œ index.html β”” web.config

./wwwroot/ β”œβ”€β”€ app_data β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œβ”€β”€ log β”œ about.html β”œ index.html β”” web.config

∠

Page 51: Modern Web Development Workflow backed by .NET

./staging/ β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œ index.html β”” web.config

./wwwroot/ β”œβ”€β”€ app_data β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œβ”€β”€ log β”œ about.html β”œ index.html β”” web.config

∠

Page 52: Modern Web Development Workflow backed by .NET

./staging/ β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œ index.html β”” web.config

./wwwroot/ β”œβ”€β”€ app_data β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œβ”€β”€ log β”œ about.html β”œ index.html β”” web.config

∠

Page 53: Modern Web Development Workflow backed by .NET

./staging/ β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œ index.html β”” web.config

./wwwroot/ β”œβ”€β”€ app_data β”œβ”€β”€ bin β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œβ”€β”€ log β”œ index.html β”” web.config

∠

Page 54: Modern Web Development Workflow backed by .NET

:: 6. Publish to wwwroot call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 --fromDir "%DEPLOYMENT_TEMP%" --toDir "%DEPLOYMENT_TARGET%" --previousManifest "%PREVIOUS_MANIFEST_PATH%" --nextManifest "%NEXT_MANIFEST_PATH%" --ignore ".git;.hg;.deployment;deploy.cmd"

'

'

'

'

'

Page 55: Modern Web Development Workflow backed by .NET

deploy"

Page 56: Modern Web Development Workflow backed by .NET

! jetbrains.com $129 | Commercial

Page 57: Modern Web Development Workflow backed by .NET
Page 58: Modern Web Development Workflow backed by .NET
Page 59: Modern Web Development Workflow backed by .NET
Page 60: Modern Web Development Workflow backed by .NET

building an app

Page 61: Modern Web Development Workflow backed by .NET

demo code! queenseight.com & aranasoft/queenseight

Page 62: Modern Web Development Workflow backed by .NET

Visual Studio Solution β”œβ”€β”€ Processor Project β”œβ”€β”€ Processor.Tests Project └── API Project

Page 63: Modern Web Development Workflow backed by .NET

./ β”œβ”€β”€ Processor β”œβ”€β”€ Processor.Tests β”œβ”€β”€ API β”” QueensEight.sln

Page 64: Modern Web Development Workflow backed by .NET

./ β”œβ”€β”€ Processor β”œβ”€β”€ Processor.Tests β”œβ”€β”€ API β”œβ”€β”€ Web β”” QueensEight.sln

Page 65: Modern Web Development Workflow backed by .NET

./ β”œβ”€β”€ Processor β”œβ”€β”€ Processor.Tests β”œβ”€β”€ API β”œβ”€β”€ Web β”” QueensEight.sln

Page 66: Modern Web Development Workflow backed by .NET

./ β”œβ”€β”€ Processor β”œβ”€β”€ Processor.Tests β”œβ”€β”€ API β”œβ”€β”€ Web β”” QueensEight.sln

Page 67: Modern Web Development Workflow backed by .NET

./Web/ β”œβ”€β”€ app β”œβ”€β”€ config β”œβ”€β”€ tests β”œβ”€β”€ vendor β”œ bower.json β”œ package.json β”” gulpfile.js

Page 68: Modern Web Development Workflow backed by .NET

./Web/app/ β”œβ”€β”€ css β”œβ”€β”€ img β”œβ”€β”€ js β”œβ”€β”€ pages └── static

Page 69: Modern Web Development Workflow backed by .NET

./Web/app/ β”œβ”€β”€ css β”‚ β”œ _mixins.scss β”‚ β”œ _variables.scss β”‚ β”” app.scss β”œβ”€β”€ img β”œβ”€β”€ js β”‚ β”œ app.coffee β”‚ β”œ controllers.coffee β”‚ β”œ directives.js β”‚ β”” templates.coffee β”œβ”€β”€ pages └── static

Page 70: Modern Web Development Workflow backed by .NET

./Web/app/ β”œβ”€β”€ css β”‚ β”œ _mixins.scss β”‚ β”œ _variables.scss β”‚ β”” app.scss β”œβ”€β”€ img β”œβ”€β”€ js β”‚ β”œ app.coffee β”‚ β”œ controllers.coffee β”‚ β”œ directives.js β”‚ β”” templates.coffee β”œβ”€β”€ pages └── static

Page 71: Modern Web Development Workflow backed by .NET

gulp build"

Page 72: Modern Web Development Workflow backed by .NET

#

$ )

Page 73: Modern Web Development Workflow backed by .NET

#

$ )

#

*

Page 74: Modern Web Development Workflow backed by .NET

#$ )

#

*β”Œ ─ β””

Page 75: Modern Web Development Workflow backed by .NET

./Web/ β”œβ”€β”€ app β”œβ”€β”€ config β”œβ”€β”€ dist β”œβ”€β”€ generated β”œβ”€β”€ tests β”œβ”€β”€ vendor β”‚ └── components β”œ bower.json β”œ package.json β”” gulpfile.js

Page 76: Modern Web Development Workflow backed by .NET

./Web/ β”œβ”€β”€ app β”œβ”€β”€ config β”œβ”€β”€ dist β”œβ”€β”€ generated β”œβ”€β”€ tests β”œβ”€β”€ vendor β”‚ └── components β”œ bower.json β”œ package.json β”” gulpfile.js

Page 77: Modern Web Development Workflow backed by .NET

./Web/generated/ β”œβ”€β”€ css β”‚ β”” app.css β”œβ”€β”€ img β”œβ”€β”€ js β”‚ β”” app.js β”” index.html

Page 78: Modern Web Development Workflow backed by .NET

./Web/dist/ β”œβ”€β”€ css β”‚ β”” app.css β”œβ”€β”€ img β”œβ”€β”€ js β”‚ β”” app.js β”” index.html

Page 79: Modern Web Development Workflow backed by .NET

gulp run"

Page 80: Modern Web Development Workflow backed by .NET

$*+, !%)

Page 81: Modern Web Development Workflow backed by .NET

$*+, !%)

Page 82: Modern Web Development Workflow backed by .NET

⌘S

β”Œ β”‚ ─┼ β”‚ β””

*$

+% -

β”Œ β”‚ ─┼ β”‚ β””

)

Page 83: Modern Web Development Workflow backed by .NET

LiveReload! livereload.com free | MIT license , browser extension

Page 84: Modern Web Development Workflow backed by .NET

- β”Œ β”‚ ─┼ β”‚ β””

*$

+%

β”Œ β”‚ ─┼ β”‚ β””

!-)⌘S

Page 85: Modern Web Development Workflow backed by .NET

gulp run --proxy"

Page 86: Modern Web Development Workflow backed by .NET

$*+, !%)

Page 87: Modern Web Development Workflow backed by .NET

.

Page 88: Modern Web Development Workflow backed by .NET

$*+, !%)

Page 89: Modern Web Development Workflow backed by .NET

deployment

Page 90: Modern Web Development Workflow backed by .NET

Kudu " deploy

Page 91: Modern Web Development Workflow backed by .NET

:: deploy.cmd

:: 1. Restore NuGet packages "%NUGET_EXE%" restore "%DEPLOYMENT_SOURCE%\QueensEight.sln"

Page 92: Modern Web Development Workflow backed by .NET

:: deploy.cmd

:: 1. Restore NuGet packages "%NUGET_EXE%" restore "%DEPLOYMENT_SOURCE%\QueensEight.sln"

:: 2. Build .NET Project with MSBuild "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\API\API.csproj" /t:Build;pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="%DEPLOYMENT_TEMP%"; AutoParameterizationWebConfigConnectionStrings=false; Configuration=Release; SolutionDir="%DEPLOYMENT_SOURCE%\" %SCM_BUILD_ARGS%

'

'

'

'

'

'

Page 93: Modern Web Development Workflow backed by .NET

:: 3. Restore npm packages call :ExecuteCmd !NPM_CMD! install

Page 94: Modern Web Development Workflow backed by .NET

:: 3. Restore npm packages call :ExecuteCmd !NPM_CMD! install

:: 4. Build Web Client project with gulpJS call .\node_modules\.bin\gulp build

Page 95: Modern Web Development Workflow backed by .NET

:: 5. Consolidate project output call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_SOURCE%\Web\dist" -t "%DEPLOYMENT_TEMP%" -p "%DEPLOYMENT_SOURCE%\Web\generated\manifest" -n "%DEPLOYMENT_SOURCE%\Web\generated\manifest" -i ".git;.hg;.deployment;deploy.cmd"

'

'

'

'

'

Page 96: Modern Web Development Workflow backed by .NET

:: 6. Publish to wwwroot call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_TEMP%" -t "%DEPLOYMENT_TARGET%" -p "%PREVIOUS_MANIFEST_PATH%" -n "%NEXT_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd"

'

'

'

'

'

Page 97: Modern Web Development Workflow backed by .NET

./ β”œβ”€β”€ artifacts β”‚ └── wwwroot β”œβ”€β”€ Processor β”œβ”€β”€ Processor.Tests β”œβ”€β”€ API β”œβ”€β”€ Web β”” QueensEight.sln

Page 98: Modern Web Development Workflow backed by .NET

./artifacts/wwwroot/ β”œβ”€β”€ bin β”œβ”€β”€ css β”‚ β”” app.css β”œβ”€β”€ img β”œβ”€β”€ js β”‚ β”” app.js β”œ Global.asax β”œ index.html β”” web.config

Page 99: Modern Web Development Workflow backed by .NET

your workflow

Page 100: Modern Web Development Workflow backed by .NET
Page 101: Modern Web Development Workflow backed by .NET
Page 102: Modern Web Development Workflow backed by .NET
Page 103: Modern Web Development Workflow backed by .NET
Page 104: Modern Web Development Workflow backed by .NET
Page 105: Modern Web Development Workflow backed by .NET
Page 106: Modern Web Development Workflow backed by .NET
Page 107: Modern Web Development Workflow backed by .NET

future workflow

Page 108: Modern Web Development Workflow backed by .NET
Page 109: Modern Web Development Workflow backed by .NET
Page 110: Modern Web Development Workflow backed by .NET

/ ? 1

Page 111: Modern Web Development Workflow backed by .NET
Page 112: Modern Web Development Workflow backed by .NET

┐ β”‚ β”Ό β”‚ β”˜

Page 113: Modern Web Development Workflow backed by .NET

/ ? 1

Page 114: Modern Web Development Workflow backed by .NET

┐ β”‚ β”Ό β”‚ β”˜

Page 115: Modern Web Development Workflow backed by .NET

┐ β”‚ β”Ό β”‚ β”˜

β”Œ β”‚ β”Ό β”‚ β””

Page 116: Modern Web Development Workflow backed by .NET

learn more! bower.io ! gulpjs.com & projectkudu/kudu

Page 117: Modern Web Development Workflow backed by .NET

demo code! queenseight.com & aranasoft/queenseight

Page 118: Modern Web Development Workflow backed by .NET

walkthrough& aranasoft/todo-azurewebsites

Page 119: Modern Web Development Workflow backed by .NET

try out our workflowNEXT STEPS

Page 120: Modern Web Development Workflow backed by .NET

build your own workflow

Page 121: Modern Web Development Workflow backed by .NET

make awesome

Page 122: Modern Web Development Workflow backed by .NET

@je f f re y s t r au s s #mode rnDo tNe t

[email protected]