Ultra-modern web development (for .NET developers)

advertisement
Ultra-modern
web development
(for .NET developers)
https://github.com/pseale/presentation-modern-dotnet-webdev/
@pseale
What you should know about me:
I bring context
“I may be the only author who
has written more books than he
has read”
–Garth Marenghi, author
Ultra-Modern, Cutting Edge Web
Development Demo
Goal: Show you what you can use
Goal: Show you how easy this
stuff is
Goal: Show you how much better
the JavaScript experience is
nowadays
Goal: Show you React.js
Goal: Show you the fads and
trends
Demo: ultra-stable web
development in .NET
Classic web development, in review:
It’s simple
It’s stable
It’s fast*
Ɵ We’ll talk about the
negatives later
Takeaway: if you don’t need AJAX,
don’t*
Demo: jQuery-era web
development (~2006-present)
jQuery-era web development, in review:
 Vast improvement over
raw JavaScript (IE5-era)
 Fast*
Ɵ bad* for complex UI
Ɵ User experience is bad*
Let’s start the talk
Demo: split into a frontend and a
backend
Emphasis: an army of tooling
works with HTML, JavaScript and
CSS
Aside: Defining the term “full
stack developer”
Full stack development:
 Designers and frontend engineers can now
participate in development*
 The web’s huge ecosystem is now ours—this means
more of everything
Demo: adopt the newest
JavaScript
Newest JavaScript:
 Has new, C#-alike syntax
which is particularly good
for C# developers
Ɵ don’t use the “class” keyword*
Demo: add a build system for the
frontend
Building your frontend assets:
 Enables you to apply quality control via ESHint,
“use strict”, unit tests
 Enables transpiling, minifying and packing of
assets,
 Composability (treat build steps as LEGO™ blocks)
Demo: React.js
React.js:
 Small learning surface
(comparable to Knockout.js)
 Fast
 So hot right now*
 One-way databinding plus Flux
is a “pit of success” for complex
apps
Ɵ still in the hype cycle
Final demo: Server-side JavaScript
rendering
Server-side JavaScript rendering:
 Fast*
 Fast*
 SEO-friendly
 No need to manually
harmonize Razor views with
client-side JavaScript
templates
 Even easier in the future*
Ɵ Which JavaScript runs
on the server, and which
runs on the client?*
Ɵ I’m afraid to use this in
production at work*
“Ultra-modern” versus “Ultra-stable”:
 Just as easy*
 As fast on the page load
 Faster (AJAX vs postbacks)
 Enables your frontend
engineers and designers
Ɵ Not as easy*
Ɵ The JavaScript community*
Summary: Tools (Page 1 of 2)
• Babel.js for ES6 (ES2015)
• React.js from Facebook,
• + Redux, the hottest Flux framework*
• Gulp.js for build
• ESHint and “use strict”; for code quality
• Node.js/npm for compiling the frontend
• JSPM for browser modules
Summary: Tools (Page 2 of 2)
• Every text editor, IDE, browser dev tool, and all the
available training for HTML, JavaScript and CSS
• PhantomJS for server-side JavaScript rendering
Summary: Concepts
•
•
•
•
•
•
AJAX-style web development is easy now*
Free your HTML from ASP.NET’s bitter grasp*
Emphasis: don’t blindly accept the ASP.NET default template
Server-side is boring (stable)*
React, Ember, Aurelia, Angular – choose one
Decide whether to bet on TypeScript or not
• If yes, use Aurelia or Angular 2
• If no, use “vanilla JavaScript” solutions such as React or Ember
• Think about what the emergence of “full stack developers” means
• Specialized, high-quality frontend stack developers
• You will have to learn this stuff to remain a “full stack” developer
• You can still build web apps without any JavaScript, or you can build JavaScriptheavy web apps. Either way, stop using jQuery*
AJAX-style web development is
easy now—it’s not as much about
what more you can do, it’s how
little extra effort it is
Free your HTML from ASP.NET’s
bitter grasp*
Don’t blindly accept the ASP.NET
default template – consciously
split into a frontend and a
backend
Restated: Stop writing Razor
templates*
Server-side is boring (stable)*
React, Ember, Aurelia, Angular –
choose one
Decide whether to bet on TypeScript
or not:
If yes, use Aurelia or Angular 2
If no, use “vanilla JavaScript” solutions
such as React or Ember
Think about what the emergence of
“full stack developers” means:
Specialized, high-quality frontend
engineers exist now!
You will have to learn this stuff to
remain a “full stack” developer
You can
EITHER build web apps without any
JavaScript,
OR you can build JavaScript-heavy
web apps.
Either way, stop using jQuery*
Summary: Concepts
•
•
•
•
•
•
AJAX-style web development is easy now*
Free your HTML from ASP.NET’s bitter grasp*
Emphasis: don’t blindly accept the ASP.NET default template
Server-side is boring (stable)*
React, Ember, Aurelia, Angular – choose one
Decide whether to bet on TypeScript or not
• If yes, use Aurelia or Angular 2
• If no, use “vanilla JavaScript” solutions such as React or Ember
• Think about what the emergence of “full stack developers” means
• Specialized, high-quality frontend stack developers
• You will have to learn this stuff to remain a “full stack” developer
• You can still build web apps without any JavaScript, or you can build JavaScriptheavy web apps. Either way, stop using jQuery*
Community discussion: airing of
grievances
Questions?
Thank You!
@pseale
Download