node.js development with apache netbeans

44
Node.js Development with Apache NetBeans Ryan Cuprak

Upload: ryan-cuprak

Post on 17-Mar-2018

489 views

Category:

Software


15 download

TRANSCRIPT

Page 1: Node.js Development with Apache NetBeans

Node.js Development with

Apache NetBeansRyan Cuprak

Page 2: Node.js Development with Apache NetBeans

AboutTwitter: @ctjava

Email: [email protected] / [email protected]

Blog: cuprak.info

Linkedin: www.linkedin.com/in/rcuprak

Page 3: Node.js Development with Apache NetBeans

Why Apache NetBeans?

1. Sublime Test

2. Visual Studio Code

3. Brackets

4. Atom

5. Komodo Edit

6. Notepad++

7. BBEdit

8. TextMate

9. Emacs

10.Vim

https://goo.gl/MNyMMA

Page 4: Node.js Development with Apache NetBeans

Beating Emacs

Problem: Only Java Developers know about NetBeans!

Page 5: Node.js Development with Apache NetBeans

NetBeans MisconceptionsFollowing statements are NOT TRUE:

• JavaScript support is secondary

• JavaScript integration is just for Java web apps

• Projects must be created with NetBeans

• Projects must be refactored to use NetBeans

• NetBeans can’t deal with framework x and/or build tool y

etc.NOT TRUE

Page 6: Node.js Development with Apache NetBeans

Agenda• Overview

• Setup

• Live Code Examples• Simple Node.js

• Node.js + Express

• Gulp Integration

• Angular & Webpack

• Unit Testing

• AWS Lambda Testing

Page 7: Node.js Development with Apache NetBeans

Overview

Page 8: Node.js Development with Apache NetBeans

JavaScript Features• Natively supports HTML5 projects.

• CSS3, HTML5, ECMAScript 6 & 7

• Support for HTML5 JavaScript libraries.

• Features

• Syntax highlighting, auto-completion, code folding, etc.

• Full-fledged debugger

• Breakpoints on DOM, line, event, and XMLHttpRequests.

• Call stack, variables, watches

• JavaScript unit testing

• Grunt Support

• SASS/LESS Support

• Apache Cordova (mobile HTML5 development)

Page 9: Node.js Development with Apache NetBeans

Supported Frameworks

More…

Note: Integrated support for Oracle Jet

Page 10: Node.js Development with Apache NetBeans

File TemplatesCategory File Types

HTML5/JavaScript HTML File, JavaScript File, CSS, Sass File, Less

file, JSON File, react.js, Jade File, package.json,

Gruntfile.js, gulpfile.js, bower.json, .bowerrc, JET

modules, Knockout JET Module

Selenium Tests Protractor Configuration File, Selenium Mocha Test

Case, Selenium Jasmine Test Case

Unit Tests Karma Configuration File, jsTestDrive Config File

Web Services RESTful JavaScript Client

Custom editor provided for each file type.

Page 11: Node.js Development with Apache NetBeans

Project Templates

Page 12: Node.js Development with Apache NetBeans

Code Completion

Page 13: Node.js Development with Apache NetBeans

Code Analysis

Page 14: Node.js Development with Apache NetBeans

CSS3 Editing

Popup for adding

new properties

Page 15: Node.js Development with Apache NetBeans

LESS Support

Generated CSS

Page 16: Node.js Development with Apache NetBeans

JavaScript Debugging + Chrome

Page 17: Node.js Development with Apache NetBeans

DOM Debugging

Page 18: Node.js Development with Apache NetBeans

Customizable Palette

• Drag HTML elements from Palette into HTML Window (Wizard appears)

• Drag selections from HTML document to Palette to create new HTML

snippets.

Page 19: Node.js Development with Apache NetBeans

Dependency Management

Three different approaches:

• npm

• Bower

• CDNJS

Page 20: Node.js Development with Apache NetBeans

Gulp Integration

Page 21: Node.js Development with Apache NetBeans

Gulp Integration

Page 22: Node.js Development with Apache NetBeans

Node.js Integration• Fully integrated support for Node.js

• Node.js project wizard

• Search/find Node modules

• Integrated support Express generator

• Project specific Node.js settings

Page 23: Node.js Development with Apache NetBeans

Setup

Page 24: Node.js Development with Apache NetBeans

NetBeans Setup

1. Install Node.js

2. Download Sources

3. Setup npm/express

Page 25: Node.js Development with Apache NetBeans

Install Chrome Plugin

https://goo.gl/Jc9Tq4

Page 26: Node.js Development with Apache NetBeans

Configure Runtime Environment

Select Browser to use for testing – project specific.

Note testing on connected

devices.

Page 27: Node.js Development with Apache NetBeans

Angular / TypeScript Support

Download plugin: https://github.com/Everlaw/nbts/

Page 28: Node.js Development with Apache NetBeans

Angular / TypeScript Support

Install via Plugin Manager

Page 29: Node.js Development with Apache NetBeans

Deep Dive

Page 30: Node.js Development with Apache NetBeans

Typical Workflow

npm init Edit package.json npm install

NetBeans performs these tasks for us.

Shell commands can be executed at any point

– not locked into the IDE.

Page 31: Node.js Development with Apache NetBeans

Demos• Simple Node.js application & debugging

• Node.js + Express

• Gulp Demo

• Angular 4 Demo with TypeScript & Webpack

• https://github.com/angular/angular2-seed

Page 32: Node.js Development with Apache NetBeans

Unit Testing

Page 33: Node.js Development with Apache NetBeans

Unit Testing• Supported Unit Testing frameworks:

• Karma

• JS Test Driver

• Mocha

• Demo

• Jasmine – JavaScript unit testing framework

• Tests written in JavaScript

• Test synchronous and asychronous JavaScript code

• Karma – JavaScript test runner

• Based on NodeJS

• Launches and executes tests in web browser

Page 34: Node.js Development with Apache NetBeans

Unit Testing Setup• For empty projects:

• Add dependencies in package.json

• Create karma.conf file

• Configure testing

• Implements tests

• For existing projects:• Open project properties and configure

Page 35: Node.js Development with Apache NetBeans

Unit Testing Setup

Page 36: Node.js Development with Apache NetBeans
Page 37: Node.js Development with Apache NetBeans

AWS Lambda Testing

Page 38: Node.js Development with Apache NetBeans

What is AWS Lambda?• Function as a Service (Faas) from AWS

• Stateless function that executes in the cloud

• Executes in response to events (S3, DynamoDB, API Gateway, etc)

• Can be implemented using• JavaScript (Node.js), Java, Python C#

• Billed on executions:• First million executions are free

• $0.20 per each million afterwards

Page 39: Node.js Development with Apache NetBeans

Example Lambda Functionexports.handler = function(event,context) {

context.succeed('Hello ' + event.firstName + ' ' +

event.lastName + ' you are at JavaOne 2017!');

};

{

"firstName": "Ryan",

"lastName": "Cuprak”

}

Handler

Function

Page 40: Node.js Development with Apache NetBeans

SAM – AWS Lambda Testing

https://github.com/awslabs/aws-sam-local

Page 41: Node.js Development with Apache NetBeans

AWS Lambda & NetBeans• NetBeans can test AWS Lambda locally

• Prerequisites:• Install Docker

• Install SAM Local - npm install -g aws-sam-local

• Steps:1. Create a Node.js project in NetBeans

2. Add aws-sdk to project via npm

3. Implement function

4. Add yaml configuration file

5. Add scripts entry to launch SAM

Page 42: Node.js Development with Apache NetBeans

AWS Lambda & NetBeansDebugging steps:

1. Start SAM in debug mode

2. Trigger event for invocation

3. Attach debugger

Page 43: Node.js Development with Apache NetBeans
Page 44: Node.js Development with Apache NetBeans

Q&ATwitter: @ctjava

Email: [email protected] / [email protected]

Blog: cuprak.info

Linkedin: www.linkedin.com/in/rcuprak

Slides: www.slideshare.net/rcuprak/presentations

Get involved! https://netbeans.apache.org !!