JavaScript for Line of Business Applications
606.6K views | +24 today
JavaScript for Line of Business Applications
Keeping track of current JavaScript Frameworks that help design your clientside Business Logic Layers.
Curated by Jan Hesse
Beam to my Inbox:
Your new post is loading...
Your new post is loading...

Popular Tags - Filter using the Funnel

Scoop.it!

Audio Synthesis in JavaScript

Audio Synthesis in JavaScript | JavaScript for Line of Business Applications | Scoop.it

Yes, you can create sound in JavaScript – at least, in some browsers.

So for now, playing with creating sound in JavaScript should be considered something experimental but it is definitely fun to play with, just not for your super, awesome, must-work-in-every-browser game.

I found several sites that had build up complex libraries based on the Web Audio API. These weren’t the greatest things to learn the basics from, but I eventually was able to pare some of the code down to the bare minimum needed to create sounds in the browser. 

There are a few tutorials linked to from there as well, but none really covered what I was interested in, which is why I created this tutorial.

So, to get down to it, let’s create some noise.


No comment yet.
Scoop.it!

Category theory for JavaScript programmers

A YouTube playlist on concepts like Monads and Buritos.

No comment yet.
Scoop.it!

Augmenting JavaScript Core Objects

Augmenting JavaScript Core Objects | JavaScript for Line of Business Applications | Scoop.it

JavaScript defines several objects that are part of its core: Array, Boolean, Date, Function, Math,Number, RegExp, and String. Each object extends Object, inheriting and defining its own properties and methods. I’ve occasionally needed to augment these core objects with new properties and methods and have created a library with these enhancements. In this article, I present various enhancements that I’ve introduced to the Array, Boolean, Date, Math, Number, and Stringobjects.

No comment yet.
Scoop.it!

Angular with typescript architecture

Angular with typescript architecture | JavaScript for Line of Business Applications | Scoop.it

In general, I was really unhappy with a lot of the AngularJS examples I had found on the internet when researching how to structure the application, since they all looked flimsy and poorly constructed. While the examples found online were easy to read and follow, they clearly wouldn’t work with an actual large application.

I had several goals:
* I didn’t want to have to constantly register directives/filters/controllers/etc with Angular everytime I added something
* I didn’t want to have to update my main index.html page with any references to new files as I worked on them
* I wanted to avoid string typing as much as possible by centralizing all string references to angular components
* I wanted everything testable
* I didn’t want to inline directive html templates, I wanted them in in separate html components
* I wanted one file for each class
* I wanted everything strongly typed

Anything less than these requirements, I felt, would compromise maintainability and extensibility for the future, especially if the app had more than one developer working on it.

No comment yet.
Scoop.it!

The JavaScript Event Loop: Explained

The JavaScript Event Loop: Explained | JavaScript for Line of Business Applications | Scoop.it

With JavaScript approaching near-ubiquity as the scripting language of the web browser, it benefits you to have a basic understanding of its event-driven interaction model and how it differs from the request-response model typically found in languages like Ruby, Python, and Java. In this post, I’ll explain some core concepts of the JavaScript concurrency model, including its event loop and message queue in hopes of improving your understanding of a language you’re probably already writing but perhaps don’t fully understand.

This post is aimed at web developers who are working with (or planning to work with) JavaScript in either the client or the server. If you’re already well-versed in event loops then much of this article will be familiar to you. For those of you who aren’t, I hope to provide you with a basic understanding such that you can better reason about the code you’re reading and writing day-to-day.

No comment yet.
Scoop.it!

Hands On Lab: Building a Multiple View Single Page Application (SPA)

Hands On Lab: Building a Multiple View Single Page Application (SPA) | JavaScript for Line of Business Applications | Scoop.it

In this hands-on lab you will learn how to build a simple multiple view Single Page Application (SPA).

You will start by building a simple html page and add jQuery, RequireJS to make it dynamic. Then you will add Durandal and Knockout to extend the single html page into a SPA that has a shell and two additional views and a navigation menu to navigate between the two.

 

 this hands-on lab, you will learn:

How to use RequireJS to bootstrap a javascript module for your html pageHow to configure and use Durandal to provide your javascript application a lifecycle.How to add multiple views, configure the routes and navigation to turn your single html page into a multiple view SPA.
No comment yet.
Scoop.it!

Visto JavaScript Library

Visto JavaScript Library integrates KnockoutJS, JQuery and RequireJS (and TypeScript) to provide the programming model known from .NET XAML and MVVM: It is possible to implement views with "code-behind" and bindings to view models, declaratively load subviews in HTML and navigate between pages - all in a single-page application. 

The main advantages of this library is that it allows to develop component-based and implement reusable views which are composed of predefined programming blocks (view, view model and HTML). These views can be reused as sub views, in dialogs or as page instances. The programming API and paradigm is very similar to the one found in Windows Phone XAML or Windows 8 Store Apps programming (MVVM pattern, view "code-behind", paging/navigation). 

No comment yet.
Scoop.it!

AngularJS vs Knockout - Final Thoughts (9 of 9)

AngularJS vs Knockout - Final Thoughts (9 of 9) | JavaScript for Line of Business Applications | Scoop.it

I started reviewing AngularJS and Knockout because I had some specific projects that I intended to use one of these for and felt the research and comparative examples might prove useful to others. I haven't compared every aspect of the libraries, just enough to give me an idea which will be better for my specific projects.

It's time to make some decisions. You've read this far along in the series and hopefully that means that if one of these frameworks was new to you, you now have a starting point to explore the other and know what constructs map to one another across the two frameworks.

But how would I use them?

Jan Hesse's insight:

Super helpful series of posts on MVC, DataBinding, Modules, Testability, Routing, Templating, Validation and how they compare in both frameworks

No comment yet.
Scoop.it!

Learning AngularJS by Example – The Customer Manager Application

Learning AngularJS by Example – The Customer Manager Application | JavaScript for Line of Business Applications | Scoop.it

In this post I’m going to provide an overview about how the application is organized, back-end options that are available, and some of the features it demonstrates. 

The Customer Manager application certainly doesn’t cover every feature provided by AngularJS (as mentioned the intent was to keep it as simple as possible) but does provide insight into several key areas. Here are a few of the features it demonstrates with information about the files to look at if you want more details:

* Using factories and services as re-useable data services (see the app/services folder)
* Creating custom directives (see the app/directives folder)
* Custom paging (see app/views/customers/customers.html and app/controllers/customers/customersController.js)
* Custom filters (see app/filters)
* Showing custom modal dialogs with a re-useable service (see app/services/modalService.js)
* Making Ajax calls using a factory (see app/services/customersService.js)
* Using Breeze to retrieve and work with data (see app/services/customersBreezeService.js). Switch the application to use the Breeze factory by opening app/services.config.js and changing the useBreeze property to true.
* Intercepting HTTP requests to display a custom overlay during Ajax calls (see app/directives/wcOverlay.js)
* Custom animations using the GreenSock library (see app/animations/listAnimations.js)
* Creating custom AngularJS animations using CSS (see Content/animations.css)
* JavaScript patterns for defining controllers, services/factories, directives, filters, and more (see any JavaScript file in the app folder)
* Card View and List View display of data (see app/views/customers/customers.html and app/controllers/customers/customersController.js)
* Using AngularJS validation functionality (see app/views/customerEdit.html, app/controllers/customerEditController.js, and app/directives/wcUnique.js)
* Nesting controllers
* More…

No comment yet.
Scoop.it!

What you need to know about Angular SEO

Search engines, such as Google and Bing are engineered to crawl static web pages, not javascript-heavy, client-side apps. This is typical of a search engine which does not render javascript when the search bot is crawling over web pages.

This is because our javascript-heavy apps need a javascript engine to run, like PhantomJS or v8, for instance. Web crawlers typically load a web page without using a javascript interpreter.

There are several different ways that we can tell Google to handle indexing our app. One, the more common approach is by using a backend to serve our angular app. This has the advantage of being simple to implement without much duplication of code.

A second approach is to render all of the content delivered by our angular app inside a <noscript> tag in our javascript. We’re not going to cover the second approach

In this article, we’re going to walk through how you can build an SEO toolchain for your workflow, presenting a bunch of different options for you to choose what works best for you.

No comment yet.
Scoop.it!

Google replaces JavaScript with Google Dart

Google replaces JavaScript with Google Dart | JavaScript for Line of Business Applications | Scoop.it
Google is in process of replacing JavaScript with Google Dart. Stating Dart is technically superior to Java Script. But having said that Dart is having some fundamental issues to look at. What will Google now do?
Monika's curator insight, January 16, 2016 7:19 AM

google zastąpi JavaScript Google Dartem!

Scoop.it!

Throttling Input in AngularJs Applications using UnderscoreJs Debounce

There are numerous scenarios to throttle input so that you aren’t reevaluating your filters every time they change. The more appropriate term is “debounce” because essentially you are waiting for the input to settle before you invoke a function, so you stop bouncing to the server. The canonical case would be a user entering input into a text box to filter a list. If your filter involves some overhead (for example, it is implemented using a REST resource that executes a query on a backend database) you don’t want to keep rerunning and reloading the results while the user is typing. Instead, you want to wait for them to finish typing their filter and then perform the task once.

No comment yet.
Scoop.it!

AngularJS vs. Ember.js - Which open source project wins?

AngularJS vs. Ember.js - Which open source project wins? | JavaScript for Line of Business Applications | Scoop.it

tenXer is releasing a series of public dashboards for open source projects to help expose metrics that give insights into the performance of each project. Today, we are releasing AngularJS and Ember.js.

Head to Head Challenge

We compared these two projects head to head across five different categories: commits, net lines of code, commit size, percent of pull requests merged, and average time to close pull requests. Check out the winner in each category.

No comment yet.
Scoop.it!

Mod JS

Mod JS | JavaScript for Line of Business Applications | Scoop.it

Mod JS is a JavaScript framework that allows you to build large scale applications in a modular, scalable, and maintainable way, without tons of bloat or any unneseccary code. By decoupling small sections of the framework and having them work independently of each other. You can be sure your changes and additions won't affect any other portion of the code base. This loose coupling is what allows for the application code base to remain scalable and properly functioning.

No comment yet.
Scoop.it!

Frequently Misunderstood JavaScript Concepts

Frequently Misunderstood JavaScript Concepts | JavaScript for Line of Business Applications | Scoop.it

This book is not designed to teach you JavaScript, but it does recognize that you are likely to have taught yourself JavaScript and that there are some key concepts that you may have missed along the way. This section is particularly important if your primary language is Java as the syntactic similarities between Java and JavaScript belie the differences in their respective designs.

Table of contents:
* JavaScript Objects are Associative Arrays whose Keys are Always Strings
* There are Several Ways to Look Up a Value in an Object
* Single-quoted Strings and Double-quoted Strings are Equivalent
* There are Several Ways to Define an Object Literal
* The "prototype" Property is Not the Prototype You are Looking For
* The Syntax for Defining a Function is Significant
* What "this" Refers to When a Function is Called
* The "var" Keyword is Significant
* Block Scope is Meaningless


No comment yet.
Scoop.it!

For modern development Javascript indeed is a shit language

For modern development Javascript indeed is a shit language | JavaScript for Line of Business Applications | Scoop.it

I'm sorry, but the Crockford arguments do not cut it.

Javascript is so bad, on so many levels - it's not even funny. This is why I am so surprised everyone jumped on the node bandwagon with such excitement - yes, Node is faster than Ruby, but it's unfathomable to me that someone in his clear mind would want to rewrite his app in Node without being 100% focused on the evented model.

JS has inherent, deep issues. They are not solvable by making a new ECMA spec. They are not solvable by wrapping a better syntax around it like Coffeescript does. They are not solvable by standardizing on a require implementation or by introducingclasses. There is an ECMA language with classes - it's called ActionScript and it's just as shitty as JS itself. These warts just are - and as long as the masses accept it as the status quo it's going to be exactly like the PHP framework landscape to this day: everyone and their mother will be spending man-years trying to create an infrastructure of tools around a shit language that will resist those efforts every single second.

Let me explain why I say that JS is awful. Of course, there are nice things in it - but the problem is that their utility is disputable. Prototypal inheritance, for example, is severly limited in utility - because all it offers you are function overrides. The "everything is a function" approach, while also gimmicky (look ma, I can also call this!), is also not particularly useful - because a function is not an object, not a datastructure that can carry data.

And then the real warts begin. Let's simply enumerate...

Scoop.it!

Things that suck in AngularJS

Every once in a while, I find that someone is interested in AngularJS, but not sure if they should stick to their jQuery comfort zone or make the plunge and learn the new thing. It's relatively easy to come across people singing praises to the paradigm shifts that Angular enforces, and there are plenty of tutorials out there showing how to get Angular to do cool stuff without much effort. There's also pretty good explanations out there for some of the more mysterious concepts (like $apply() and transclusions and animations).

The reason I'm writing this is not an attempt to rehash any of those. As it turns out, I've been knee deep doing some pretty neat stuff with AngularJS, RESTful web services, web sockets and other cool HTML5 techs at my job, and I think I've got enough experience to list out some very specific things that aren't that great about Angular. Don't get me wrong, it's a great tool for the stuff I'm doing, but I just feel like complaining a little :)

So, what is sucky in Angular anyways?

No comment yet.
Scoop.it!

What's the Big Deal with Generators?

What's the Big Deal with Generators? | JavaScript for Line of Business Applications | Scoop.it

In this post I'm going to attempt to explain what exactly generators are and why their addition is such a big deal in JavaScript (and more particularly, Node). 

While generators themselves aren't overly complex, some of the concepts relevant to them aren't exactly common knowledge, so bear with me while we set some context.

No comment yet.
Scoop.it!

Tested various Javascript MV* frameworks

Tested various Javascript MV* frameworks | JavaScript for Line of Business Applications | Scoop.it

I wanted to try and compare some other popular Javascript MV* frameworks. I am aware that TodoMVC exists for this, but I wanted to implement the same thing (with encrypted local storage) that previously was created with AngularJS.

What to implement:
* Create a view that has a input[type=text] field
* When the user enters some text in the input, encrypt the text and save it in localStorage
* Instantly display the encrypted text and the decrypted text

 

The following code samples seems to do the right thing / achieve the same results. I have just included the code samples here, with a small summary for every frameworks with my own pros and cons.

 

* KnockoutJS
* VanillaJS (simple)
* VanillaJS (MVC style)
* BackboneJS
* EmberJS
* AngularJS

No comment yet.
Scoop.it!

ExpressWorks - an automated Express.js/Node.js workshop

ExpressWorks - an automated Express.js/Node.js workshop | JavaScript for Line of Business Applications | Scoop.it

ExpressWorks is an automated Express.js/Node.js workshop.

Here is the list of exercises as of now (they’ll be more later!):
* Hello World
* Jade
* Good Old Form
* Static
* Stylish CSS
* Param Pam Pam
* What’s in Query
* JSON Me

Jan Hesse's insight:

classical learning by doing

No comment yet.
Scoop.it!

AngularJS VS ExtJS – through my experience

AngularJS VS ExtJS – through my experience | JavaScript for Line of Business Applications | Scoop.it

Two frameworks with a very different approaches, but both with the same driving force – make the web work for web apps.
The difference in approach is that one, chooses to embrace the the web and it’s standards and significantly improve them while the other layers out on top of it and gives you an awesome layer of abstraction.

When i started working with Ext JS five years ago web development was still pretty hard. Ajax and jQuery along with strong JavaScript advocates like Douglas Crockford, started making JavaScript popular. But two large problems still remained -

1) making the UI look and behave more like a desktop.

 2) creating a solid application structure(MV***) was still a big challenge.

That’s when i met extjs and i was amazed!

No comment yet.
Scoop.it!

Unit Testing with DurandalJS

Unit Testing with DurandalJS | JavaScript for Line of Business Applications | Scoop.it

urandal provides the Durandal Test Framework for unit testing. This test framework uses PhantomJS and Jasmine.

As shipped with Durandal, it's focused on testing Durandal's own internal components. But it can easily be adapted for your own unit testing needs.

In your own work, you're probably not going to want to use the entire Durandal project -- you may start with a starter kit such as the HTML Starter Kit, or even with your own custom setup. The first challenge is that the Starter Kits don't include the Test Framework. Beyond that, since the Test Framework is configured out-of-the-box for Durandal's internal testing needs, its hardcoded paths don't work for the directory hierarchies you'll have as a developer.

But configuring the Test Framework for your own needs is very easy.

No comment yet.
Scoop.it!

Web Application Checklist & Best Practices

Web Application Checklist & Best Practices | JavaScript for Line of Business Applications | Scoop.it

A Web Application Development Checklist for developing outstanding online software products. Have it the right way

Categories a developer should watch out for:

* Development

* Performance

* Security

* Analytics

* Reliability

* Usability

* Conversions

* Competition

No comment yet.
Scoop.it!

Web Components - Why you're already an expert

Why you're already an expert:

* Custom Elements

* Shadow DOM

* Template Element

* HTML Imports

* CSS Decorators

 

* Simple

* Consistent

* Reusable

* Encapsulated

* Composable

 

* Polymer Elements

* Polymer UI Elements

* Brick

* X-Tag Registry

Jan Hesse's insight:

http://markdalgleish.com/2013/11/web-components-why-youre-already-an-expert/

No comment yet.
Scoop.it!

An Angular Workflow

An Angular Workflow | JavaScript for Line of Business Applications | Scoop.it

This post assumes that you have read An Angular Workflow Part 1. If you haven't yet, and are familair with using Angularjs/Nodejs/Grunt/Bower with your development enviroment, just skim that article and continue here.

Part two will try to pick up right where An Angular Workflow Part 1 left off. We need to build something, and I thought a Reddit client should be easy enough. I dont want us to have to worry about making a backend.

In Part 3, we will have a more complete app, and I hope to touch on unit testing.

No comment yet.