Getting Started with Aurelia

Slides:



Advertisements
Similar presentations
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Advertisements

JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
John Culviner johnculviner.com DEMO CODE:
Lesson 12- Unit L Programming Web Pages with JavaScript.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
ASP.NET vNEXT & development tools Marco De
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
CIS 375—Web App Dev II ASP.NET 2 Introducing Web Forms.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Introduction to ArcGIS API for JavaScript
Introducing NativeScript [Pavel Kolev Software Telerik: a Progress company]
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
Canopy walk through Single-Page Apps (SPAs) Benjamin Howarth Freelancer, Code Gecko Umbraco UK Festival, Fri 30 th Oct 2015 CODE GECKO.
Windows 10 UWP MVVM In Depth
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Securing Angular Apps Brian Noyes
Rich Internet Applications 2. Core JavaScript. The importance of JavaScript Many choices open to the developer for server-side Can choose server technology.
Presentation Title Subtitle DSpace UI Prototype 7 Spring, Angular.js, and the DSpace REST API.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Getting Started with Angular 2 and TypeScript Nebraska.Code() 2016 Spencer Schneidenbach Ryvit.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
//liveVirtualacademy2011/ What’s New for ASP.NET 4.5 and Web Development in Visual Studio 11 Developer Preview Γιώργος Καπνιάς MVP, MCT, MCDP, MCDBA, MCTS,
Build Hybrid Mobile Apps with Ionic, Angular, & Cordova Brian
ANGULAR 2. JavaScript is a high-level, dynamic, untyped, and interpreted programming language. JavaScript was originally developed in May 1995 by Brendan.
Solliance ( CTO and Co-founder Microsoft Regional Director Microsoft MVP Pluralsight author
Ramping Up On The SharePoint Framework (SPFx)
Node.js Modules Header Mastering Node.js, Part 2 Eric W. Greene
Angular JS and SharePoint
Building Desktop Apps with Node.js and Electron
SharePoint + CRM Saturday Zurich 2017
Angular 4 + TypeScript Getting Started
What's new in the world of SharePoint development and deployment
Development of Internet Applications jQuery, TypeScript, LESS
Node.js Express Web Applications
Introduction to Redux Header Eric W. Greene Microsoft Virtual Academy
Node.js Express Web Services
The Modern ASP.NET Tech Stack!
TechEd /26/2018 3:42 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Game-Changing Features in ES2015
The Transition to Modern Office Add-in Development
Build Windows 10 UWP MVVM Apps with Prism
SharePoint Bruger Gruppe (SPBG) SharePoint Framework Introduction
3 Things Everyone Knows About Node JS That You Don't
Working with the SharePoint Framework
Build Better Apps with MEAN.
Best Angular 2 interview questions and Answer that have been designed for Angular 2 programmers who are preparing online interviews on Angular 2 interviews question. Visit Website:
SPFx – A modern development tool for SharePoint
Introduction to SharePoint Framework (SPFx)
Angularjs Interview Questions and Answers By Hope Tutors.
SPA Revolution with WebAssembly and Blazor Rainer Stropek | software
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
JavaScript an introduction.
Introduction to SharePoint Framework (SPFx)
SPA Revolution with WebAssembly and Blazor Rainer Stropek | software
Modern web applications
Rich single page applications with SharePoint
Modern web applications
IntroductionToPHP Static vs. Dynamic websites
JavaScript CS 4640 Programming Languages for Web Applications
Angular 2 Michael C. Kang.
An Introduction to JavaScript
The Future is Now with ASP.NET Core 3.0
#01# ASP.NET Core Overview Design by: TEDU Trainer: Bach Ngoc Toan
Running C# in the browser
JavaScript CS 4640 Programming Languages for Web Applications
Modern Front-end Development with Angular JS 2.0
Presentation transcript:

Getting Started with Aurelia Brian Noyes CTO & Co-founder, Solliance Inc (www.solliance.net) brian.noyes@solliance.net, @briannoyes

Visual Studio Connections About Brian Noyes CTO and Co-founder, Solliance www.solliance.net Microsoft Regional Director Microsoft MVP Pluralsight author www.pluralsight.com Web API Insider, Windows Azure Insider, Window Store App Insider, C#/VB Insider t e brian.noyes@solliance.net @briannoyes http://briannoyes.net Updates will be available at http://www.devconnections.com/updates/LasVegas_Fall08/VS

Single Page Applications Browser CSS CSS <HTML/> {JavaScript;} Razor ASP Ruby PHP <HTML/> {JavaScript;} Single Page Applications

Single Page App Architecture Single Page Application Presentation (HTML/CSS) UI Logic (JavaScript) Data/Service Access – Client Services (JS) Server Web API Web API UI Rendering Database

!= = Single Page Web Application Application Web Site or Web Project Customers SPA = Orders SPA Web Site or Web Project Etc SPA Site SPA

Embracing the Modern Web Browser Capabilities Standardization Rendering and JS execution speed Standard more sophisticated

ECMAScript 2015 (ES2015) AKA ECMAScript 6 (ES6) ECMAScript is the standard JavaScript is the implementation of that standard by browsers Approved as a standard in June 2015 Changed to a year-based version number system Most browsers do not fully support yet Can start using today through transpilers and polyfills

Transpiling Compilers Transpilers High Level Language ES2015 ES5 “Machine” Language

Polyfills Application Code Polyfill Library Browser API

Enhanced Object Literals Quick Intro to ES2015/2016 Promises Default parameters Generators Map Arrow functions String templates Modules iterators Rest parameters Symbols Destructuring Classes Enhanced Object Literals const variables Spread parameters WeakSet let variables comprehensions WeakMap unicode Set Proxies

Building Aurelia Applications Aurelia itself is written with ES2015, TypeScript, and a couple ES2016 features You could use ES5 to write Aurelia applications But you shouldn’t! Embrace ES2015 or TypeScript. You will have better productivity by going with the Aurelia flow and using ES2015/TypeScript and possibly a couple of ES2016 features

Package Management NPM JSPM ? Bower ? ? NuGet

NPM vs JSPM Installed with NodeJS Download module dependencies for Node app development Download packages used as command line tools Server libraries and frameworks Installed with NPM Download libraries and frameworks for client app development Does client module loading ES2015, CommonJS, or AMD Uses SystemJS Transpiles your code Babel, Traceur, or TypeScript

Aurelia Client App Framework Any client platform/ Current browsers Any server backend Any editor or IDE

Aurelia Overview Rich interactive client JavaScript application (aka Single Page Application) Run in the browser Use the Model-View-ViewModel (MVVM) pattern Convention over configuration Leverage the power of the modern browser

Aurelia Features Modular Architecture Pub-Sub Messaging Dependency Injection Two-Way Data Binding UI Composition (MVVM) Routing / Navigation Task Queues Pub-Sub Messaging HTML Templating Custom Elements Custom Attributes Logging

Browser Compatibility Evergreen Chrome Internet Explorer 11 Safari 8+ Firefox Microsoft Edge

Setting Up an Aurelia Project Two paths From scratch yo aurelia npm install jspm (+ some sort of web server – i.e. express or http-server) jspm init – choose Babel for last option (which transpiler) jspm install aurelia-framework aurelia-bootstrap Yeoman scaffolding tool Lays down skeleton-navigation sample app Full build, unit test, end to end test, serve, watch etc Gulp tasks

Building an Aurelia App Add SystemJS and JSPM config.js to page Add aurelia-app attribute on root element (body or div in body) Import aurelia-bootstrapper Build out root View/ViewModel (app.html/app.js by convention) Build out child Views/ViewModels and use composition or navigation to present them Data bind to ViewModel properties and methods from views Consume client services in ViewModels

Model-View-ViewModel (MVVM) Architecture for structuring your client side code Based on the Model-View-Controller pattern Ongoing interaction between View and ViewModel Data flow and communications primarily through data binding View Data Binding ViewModel Model Model Object Model Object Model Object Client Services / Repositories

MVVM Approaches in Aurelia compose Element Routing & Navigation Custom Elements

Hierarchical MVVM / Navigation Page Root View Root ViewModel List View Details View Item ViewModel Item View Item ViewModel Item View List ViewModel Details ViewModel

Data Binding Key feature for doing MVVM Supports one-way, two way, and one-time bindings Adaptive binding - multiple observation strategies with fallback to dirty checking if (rarely) needed Easy and intuitive to use No special/strangle syntax in html Add .bind to any property on a HTML element Use string interpolation bindings for rendering values into DOM Handle looping over collections with repeat.for Conditionally render with show, if bindings

Routing and Navigation Add configureRouter method to any ViewModel Add router-view element(s) to the View Define routes in configureRouter Navigate with links in the page or programmatically by calling navigate() on router Supports multiple view ports in a single View Supports nested navigation (child View that has its own router) Manages the view activation lifecycle Extensible pipeline architecture

Dependency Injection in Aurelia Done using the @inject(type[,type2,…]) decorator on the class Instance(s) of type(s) is passed to the constructor of the class import {SomeService} from 'someService'; import {inject} from 'aurelia-framework';   @inject(SomeService) export class App { constructor(someService) { this.taskName = ''; this.someService = someService; } startTask() { var taskNo = this.someService.startTask(this.taskName); …

Dependency Injection in Aurelia Alternate (non-ES2016): use static inject property instead of decorator import {SomeService} from 'someService';   export class App { static inject = [SomeService]; constructor(someService) { this.taskName = ''; this.someService = someService; } startTask() { var taskNo = this.someService.startTask(this.taskName);

Please use Event Board to fill out a session evaluation. Questions? Please use Event Board to fill out a session evaluation. Thank you!