Arjen de Blok. Senior Technical Consultant bij ICT Groep ( sinds 1995 Programmeren sinds 1990 Technologiën. Links

Similar documents
Angular 2 and TypeScript Web Application Development

Advance Mobile& Web Application development using Angular and Native Script

Chapter 1 - Development Setup of Angular

Frontend UI Training. Whats App :

Comprehensive AngularJS Programming (5 Days)

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

"Charting the Course... Comprehensive Angular. Course Summary

Web Development for Dinosaurs An Introduction to Modern Web Development

Angular 2 Programming

Angular 4 Syllabus. Module 1: Introduction. Module 2: AngularJS to Angular 4. Module 3: Introduction to Typescript

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

55249: Developing with the SharePoint Framework Duration: 05 days

Full Stack boot camp

Developing ASP.NET MVC Web Applications (486)

Enterprise Web Development

Front End. Presentation Layer. UI (User Interface) User <==> Data access layer

WebStorm, intelligent IDE for JavaScript development

Index. Elad Elrom 2016 E. Elrom, Pro MEAN Stack Development, DOI /

Modern and Responsive Mobile-enabled Web Applications

Etanova Enterprise Solutions

Basics of Web Technologies

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

AngularJS Fundamentals

Evolution of the "Web

Advanced React JS + Redux Development

Angular 2 and TypeScript Web Application Development

JavaScript and MVC Frameworks FRONT-END ENGINEERING

MEAN Stack. 1. Introduction. 2. Foundation a. The Node.js framework b. Installing Node.js c. Using Node.js to execute scripts

Introduction to Sencha Ext JS

React(.js) the Domino Way High-Performance Client for Domino. Knut Herrmann

"Charting the Course... Comprehensive Angular 6 Course Summary

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

Ten interesting features of Google s Angular Project

Building mobile app using Cordova and AngularJS, common practices. Goran Kopevski

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

70-486: Developing ASP.NET MVC Web Applications

Modern SharePoint and Office 365 Development

Website Designing Training

Full Stack Web Developer

Course Outline. ProTech Professional Technical Services, Inc. Comprehensive Angular 7 Course Summary. Description

Introduction to the SharePoint Framework Bob German Principal Architect - BlueMetal. An Insight company

Web UI. Survey of Front End Technologies. Web Challenges and Constraints. Desktop and mobile devices. Highly variable runtime environment

August, HPE Propel Microservices & Jumpstart

One Framework. Angular

DECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE

Index. Bower, 133, 352 bower.json file, 376 Bundling files, 157

MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M

FRONT END WEB. {< Course Details >}

POWER BI BOOTCAMP. COURSE INCLUDES: 4-days of instructor led discussion, Hands-on Office labs and ebook.

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

Integrating Angular with ASP.NET Core RESTful Services. Dan Wahlin

Stencil: The Time for Vanilla Web Components has Arrived

Angular 2: What s new? Jonas Bandi, IvoryCode GmbH

Full Stack Web Developer

Index LICENSED PRODUCT NOT FOR RESALE

Smashing Node.JS: JavaScript Everywhere

Welcome. Quick Introductions

Angular 4 Training Course Content

Decoupled Drupal with Angular

Static Webpage Development

Lab 1 - Introduction to Angular

Software Architecture Documentation for the JRC MYGEOSS app for Invasive Species project

Course 1: Microsoft Professional Orientation: Front-End Web Developer

Open Source Library Developer & IT Pro

Simple AngularJS thanks to Best Practices

Finally JavaScript Is Easy, with Oracle JET! Geertjan Wielenga Product Manager Oracle Developer Tools

Web Premium- Advanced UI Development Course. Duration: 08 Months. [Classroom and Online] ISO 9001:2015 CERTIFIED

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu

Overview of Web Application Development

a Very Short Introduction to AngularJS

P a g e 1. Danish Tecnological Institute. Developer Collection Online Course k Developer Collection

Extending Blue Ocean Keith Zantow

Index. Bootstrap framework ASP.NET MVC project set-up, default template, 223

Pro JavaScript. Development. Coding, Capabilities, and Tooling. Den Odell. Apress"

Practical Course: Web Development Angular JS Part I Winter Semester 2016/17. Juliane Franze

Course 1: Microsoft Professional Orientation: Front-End Web Developer

CodeValue. C ollege. Prerequisites: Basic knowledge of web development and especially JavaScript.

Ten good practices for ASP.NET MVC applications

TYPESCRIPT. Presented by Clarke Bowers

PHP WITH ANGULAR CURRICULUM. What you will Be Able to Achieve During This Course

Course 20480: Programming in HTML5 with JavaScript and CSS3

Production Registration System 2.0

WEB DESIGNING COURSE SYLLABUS

International Research Journal of Engineering and Technology (IRJET) e-issn: Volume: 05 Issue: 06 June p-issn:

COURSE 20480B: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

When learning coding, be brave

Homework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise)

"Charting the Course... Comprehensive Angular 5. Course Summary

Programming in HTML5 with JavaScript and CSS3

Is your JavaScript ready for the Enterprise? What does that even mean?

Lab 6: Testing. Software Studio DataLab, CS, NTHU

Getting started with Tabris.js Tutorial Ebook

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx

This tutorial has been prepared for beginners to help them understand the basic functionalities of Gulp.

Qiufeng Zhu Advanced User Interface Spring 2017

A JavaScript Framework for Presentations and Animations on Computer Science

From Browser Wars to Framework Wars How to survive the next generation of Web development battles. Dr. Michael Evans Codernetic Ltd untangled.

Modern Web Application Development. Sam Hogarth

Transcription:

Arjen de Blok Senior Technical Consultant bij ICT Groep (www.ict.eu) sinds 1995 Programmeren sinds 1990 Technologiën Links Visual C++ met Microsoft Foundation Classes.NET WinForms & WPF Silverlight ASP.NET WebForms, MVC, Web API Microsoft SharePoint KnockoutJS, PagerJS, TypeScript, SASS AngularJS, TypeScript, SASS Aurelia, WebPack, TypeScript, SASS Github: https://github.com/arjendeblok

Agenda 1. Basics for every web developer 2. Road to the Client Side 3. Putting it all together 4. Aurelia 5. Demo RecipeWeb Pauze 6. Back to the Server Side with ASP.NET Core 7. Testing your Aurelia App

Part 1 Basics for every web developer

Web Development Everywhere For the browser Web Sites Web Apps For mobile Apache Cordova For desktop Windows 10 UWP Electron For smart watch Samsung Tizen

HTML 5 Previous version 4.01 released in 1999! Draft since 2007 Finalized in 2014 Internet Explorer support 9+ New document type Consists of many features Check for browser support! http://html5test.com/ Works in conjuction with CSS 3 and JavaScript

Semantic HTML HTML5 tags <header>, <footer> <article> <nav> <aside> List tags <ul>, <ol>, <li> Use them in CSS Less class selectors

HTML 5 Additional Features New Input Types Number, Date, Time, Range Graphics Vector - SVG Bitmap - Canvas 3D - WebGL Video & Audio Native Tag Streaming Storage Web Sockets

CSS 3 Extension of CSS 2 Additional CSS Selectors like attribute and child selectors. Border styles like border-radius and box-shadow. Text effects like text-shadow 2D/3D Transformations Animations Transitions

JavaScript Specification: ECMAScript Version ES5 supported on all browsers ECMAScript 2015 or ES6 partially supported on Edge, Chrome, FireFox ECMAScript 2016 or ES7 partially supported on Edge, Chrome, FireFox Transpilers for compiling ES 2015/2016 to ES5 Babel TypeScript 2.1 Traceur https://kangax.github.io/compat-table/es6/ Important: ES6 Promise pattern.

TypeScript Superset of JavaScript Transpiles to JavaScript (Transpiler); ES5 or ES2015 Not all can be transpiled to ES5! Can make variables typed => Type checking and intellisense. Type any also exists for unknown types Integrated with Visual Studio (2015 or Code) Does not make JavaScript an OO language! Definitions from DefinitelyTyped Typings NPM repository

Responsive Web Design Past Modern Web site has a fixed with of 960px with spacing left and right. Designer provides PhotoShop picture of 960px wide. Seperate site for mobile devices. Signle web sites that adapts layouts to resolution of device Responsive Web Design. More interaction Designer and Developer. Frameworks ZURB Foundation Twitter Bootstrap MaterializeCSS

Part 2 Road to the Client Side

Web Development Options Server Side ASP.NET (4.6) ASP.NET Core (1.1) NodeJS Client Side ES5 KnockoutJS Angular 1 Client Side ES2015/2016 Angular 2 React Aurelia

Client-side versus Server Side Server Side Server produces HTML with data from database. Browser renders HTML When a user sorts or filters data then new HTML is requested from the server. Client Side Server serves HTML with placeholders. Server serves data in JSON/XML format with data from the database. Browser renders HTML Browser executes JavaScript that receives data from server Browser executes JavaScript that replaces the placeholders with the data When a user sorts of filters data then JavaScript performs sorting or filtering or browser requests new data.

Client Side - MVVM Model contains objects and operations in the business domain. can be exchanged in JSON or XML format with the server ViewModel contains code representation of the data and operations on the UI is bound to the HTML via client side binding View is a visible, interactive UI representing the state of the view model contains the HTML with declarative bindings Model ViewModel View

Retrieve Data from Server XMLHttpRequest IE10 of higher has full support Native browser support Support for Cross-Origin Resource Sharing $.ajax / $.getjson Supported in all browsers Support for JSONP Easier syntax Fetch API Supported in lastest browsers Polyfill available for older browsers Used in Aurelia Http Client!

Single Page Application Legacy Web site consists of many pages Example: Modern http://website.com/default.aspx http://website.com/login.aspx http://website.com/article3.aspx Browser must load multiple scripts / css for each page Web site consist of a single (full HTML) page (and many partial pages) Example http://website.com/ http://website.com/#login http://website.com/#article3 Browser loads every script/style sheet only once.

Part 3 Putting it all together

Important Design Patterns Dependency Injection Not new View(new ViewModel(new HttpFetch(new HttpClient)) But Container.Create<View>() With interfaces loosely coupled Perfect for unit testing

Important Design Patterns Modular Programming Use a set of highly decoupled, distinct pieces of functionality stored in modules Not big frameworks or applications but loosely coupled modules Options Async Module Definitions (AMD) (define/require) CommonJS (exports/require) SystemJS (register) ES2015 modules (export) Bundling and minification HTML5 templates with combined JS and CSS!

Important Design Patterns Convention over Configuration Don t ask yourself why it works! Asynchronous programming Every async function should return a Promise.

Module Package & Build Management Packaging Ruby - Gem.NET NuGet JavaScript - Bower NodeJS NPM Building MSBuild Grunt Gulp NPM scripts

Bundling & Minification ASP.NET MVC with WebGrease Visual Studio 2015 Plugin: bundling & minification Via build system, e.g. Gulp WebPack

NodeJS Run JavaScript on server side Can be used as a web server Can be used for development tooling NPM package manager package.json TypeScript (2.0+) support for definitions!

WebPack

WebPack Bundling, optimizing and minification Uses package.json from NPM Dependency checking via package.json Modules AMD, CommonJS, ES2015 (>2.0) Plugin model Versions 1.4 HTML CSS SASS/LESS And many others 2.1.beta27 WebPack Development Server

Part 4 Aurelia

Aurelia New SPA framework 1.0 version released 27-6-2016 Consists of many libraries and plugins you can only use want you want Dependency Injection at the heart Retrieve via NPM NPM registry hold the dependencies between Aurelia libraries Component based Consist of View/ViewModel pairs

Aurelia - Build Build Systems CLI Own CLI: au JSPM Started with JSPM, many issues Still compatible WebPack 2 Added as alternative to JSPM Build on ES2015 Babel TypeScript

Aurelia - Parts Dependency Injection Components Routing Convention over configuration Router and routing parameters Data binding ${} Templates Validation Aurelia Validation

Part 5 RecipeWeb Demo https://github.com/arjendeblok/receptenweb

Part 6 Back to the Server Side

(ASP).NET Core Completely new development stack Multi-platform Windows Linux Mac 1.1 version just released Use Visual Studio versions or command line dotnet.exe Uses same design patterns as Aurelia: DI, modules, convention over configuration. Independent of IIS. Runs on Kestrel web server. All requests run through the ASP.NET pipeline. Integrates MVC and Web API.

ASP.NET Core JavaScript Services Extends.NET with running JavaScript Calls NodeJS from ASP.NET pipeline Usages Server-side data-binding for SEO Development tooling like WebPack Any other tool that runs under Node For Aurelia with WebPack WebPack development integration Web API and Web Site on same URL

Part 7 Testing

Testing Unit Testing Test Runner Karma Test Runner Test Framework Jasmine Mocha Stubbing Sinon 2: only in alpha

Testing End to end testing Protractor

Aurelia Menu Voorgerechten HTML5 CSS (SASS) Responsive Web Design JavaScript, ES 2015 REST, Web API, CORS Dependency Injection Convention Based Programming TypeScript Promises Bundling & Minification NodeJS, NPM WebPack Hoofdgerechten Aurelia met CLI en Babel Aurelia met JSPM en Babel Aurelia met WebPack, TypeScript en SASS Nagerechten UI Framework Unit Testing E2E Testing Code Coverage Authentication UI Virtualization Validation Animation Mobile Apps (Cordova) Desktop Apps (Electron)

Links https://nodejs.org/en/ https://www.typescriptlang.org/ http://aurelia.io/ https://webpack.github.io/ https://twitter.com/aureliaeffect http://materializecss.com/ https://github.com/arjendeblok https://github.com/arjendeblok/receptenweb