JavaScript for Line of Business Applications
606.6K views | +10 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!

DozerJS Foundational Framework

DozerJS Foundational Framework | JavaScript for Line of Business Applications | Scoop.it

Dozer is a system for rapidly developing services to support front-end applications.

It's not a framework, not a toolkit, rather Dozer aims to be a malleable and unopinionated foundation for developing RESTful API's and web services to support front-end development.

Dozer creates a core server environment using NodeJS and the Express framework then allows you to build api endpoints, database models, components and adapters which all work together to provide the services required on the front-end.

No comment yet.
Scoop.it!

ng-devstack - Everything a front-end developer needs to simplify building AngularJS applications.

ng-devstack - Everything a front-end developer needs to simplify building AngularJS applications. | JavaScript for Line of Business Applications | Scoop.it

This project has been inspired by another great concept ngBoilerplate, allowing to create modern web applications in AngularJS. It follows all the best practices introduced in ngBoilerplate such as component/feature-oriented directory structure, intelligent build system, etc. However, I decided to improve it a little bit and create my own boilerplate from scratch since I missed some basic features like:

  • watch for any file changes and apply them to the project in real-time,
  • image optimization,
  • remove redundant code on compiling output HTML,
  • plus ngBoilerplate hasn't been updated for months.

Now this all has been made possible. Please welcome ng-devstack!

No comment yet.
Scoop.it!

Roll Your Own HTML5 Web Components with Vanilla JS

Roll Your Own HTML5 Web Components with Vanilla JS | JavaScript for Line of Business Applications | Scoop.it

All set? Good, let’s dig in. If you’ve looked at the W3C web components specs, you’ve seen that it’s actually a meta-specification, meaning it’s comprised of several other specifications. Each of these subspecs are fascinating and worth digging into, but I’m going to present the smallest example I could come up with to build something interesting, and show how all of these specs fit together. Then I’ll drill into to each spec and talk about where it fits into the puzzle.

Also, I’ll be using the excellent vanilla.js framework to help me build this example. It’s highly functional and extremely light weight. You should check it out if you haven’t yet!

Ok, so by now you’ve gotten the Vanilla.js joke. In all seriousness, not to knock excellent libraries like jQuery, etc, but for this article I thought it would be illuminating to see how how we can build rich web components with just the built-in APIs that will be coming to the browser.

No comment yet.
Scoop.it!

An Overview of AngularJS for Managers

An Overview of AngularJS for Managers | JavaScript for Line of Business Applications | Scoop.it

A few months ago I started building things in my free time using AngularJS and it has been an incredibly rewarding and productive journey. In my day job, I spend most of my time building single page applications using either Dojo or jQuery. This article is my attempt to make an objective argument that AngularJS is ready for use in building enterprise software. To accomplish this, I am first going to give a brief history of Angular, then dive into what is important to enterprises by talking about:

* Who is Behind AngularJS?
* How can I Hire and Educate Developers?
* What Kind of Browser Support does AngularJS have?
* How does Google protect AngularJS' Intellectual Property?
* What GUI Toolkits work with AngularJS?
* How can I handle internationalization and accessibility in Angular?
* How can I test my AngularJS applications?

No comment yet.
Scoop.it!

Javascript ES6: Learn important features in a few minutes

Javascript ES6: Learn important features in a few minutes | JavaScript for Line of Business Applications | Scoop.it

The next-generation of javascript also known as ECMAScript 6 (also called ES6 or Harmony), is bringing us lots of amazing features that you probably will need to know. But instead of you spend too much time learning and researching all of the features I separated a few that I felt are the ones you’ll be probably using in your daily basis.

Don’t worry if you are new to javascript or you’re coming from a server-side language, I believe this is the best time to learn it as ES6 has a much cleaner and friendlier syntax, known as sugar syntax.

No comment yet.
Scoop.it!

Angle Brackets, Synergistic Directives

Angle Brackets, Synergistic Directives | JavaScript for Line of Business Applications | Scoop.it

Just as promised, this article will cover isolate scopes, transclusion, linking functions, compilers, directive controllers, and more.

Synergy makes Angular applications work as if magic existed. Synergy makes complex interaction feel easy, reasonable, and understandable. Synergy is what drives complex interaction into its building blocks, breaking it down into the essentials, which anyone can understand. Synergy is everywhere, synergy isn't just in code itself, but you can find it in UX, too. A synergistic application will feel more natural, easier to use, and more intuitive. You'll feel like you know the application, and often guess correctly what the next step will look like, because the application author cared about what you'd think should happen.
In Angular, synergy means being able to build componentized directives, services, and controllers, which can be reused as often as it makes sense for them to be reused. For instance, you might have a simple directive which turns on a class based on a watched scope expression, and I'd imagine that could be a pretty common directive, used everywhere in your application, to signal the state of a particular component in your code. You could have a service to aggregate keyboard shortcut handling, and have controllers, directives, and other services, register shortcuts with that service, rooting all of your keyboard shortcut handling in one nicely self-contained service.
Directives are also reusable pieces of functionality, but most often, these are associated to DOM fragments, or templates, rather than merely providing functionality. Markup is equally important in providing synergy, if not even more so. Time for me to give you a deep down dive of Angular directives and their use cases.

No comment yet.
Scoop.it!

Drag and drop file uploads with Ember.js

Drag and drop file uploads with Ember.js | JavaScript for Line of Business Applications | Scoop.it

As I’ve mentioned countless times before Ember.js is really hard to understand and to get it’s concepts right. Without some deeper knowledge knowing how to do trivial things can get pretty tricky. Uploading files with Ember.js using drag and drop is no exception here. Common task to solve which using vanilla stack will only require to include any available JavaScript library for drag and drop file upload may look impossible to solve for some using Ember.js.

Ember.js provides us with View Objects which we will use to solve this particular problem. First thing you need to know is that View Object has it’s own template which can be defined in two different ways.

No comment yet.
Scoop.it!

Ember.js testing with Jasmine

Before diving right into the Jasmine Ember.Test.Adapter I wrote, let's take a quick look at the differences with Async control using Qunit vs. Jasmine - see Asynchronous Support, along with Ember's primary async control method used in its integration test helper suite.

This adapter is just one implementation, but I haven't seen another out there yet. There's still some work to be done (see TODOs), so please feel free to share any comments, questions, etc. -- as always, contributions welcome.

Hopefully this at least helps remove some of the burden of using Jasmine testing in your Ember apps. Salud.


No comment yet.
Scoop.it!

Running Browser-Based CucumberJS Specs in Testling

Running Browser-Based CucumberJS Specs in Testling | JavaScript for Line of Business Applications | Scoop.it

In my previous posts I discuss bringing CucumberJS specs to the browser using the cucumberjs-browser CLI tool. In this post I intend to address how to use the format reporting options of the cucumberjs-browser tool to enable integration with the testling automated cross-browser testing tool to run your specs in various browser environment targets that you may not have installed on your own system.

No comment yet.
Scoop.it!

Cytoscape.js - A JavaScript graph library for analysis and visualisation

Cytoscape.js - A JavaScript graph library for analysis and visualisation | JavaScript for Line of Business Applications | Scoop.it

Cytoscape.js is an open-source graph library written in JavaScript. You can use Cytoscape.js for graph analysis and visualisation.

Cytoscape.js allows you to easily display graphs in your websites. Because Cytoscape.js allows the user to interact with the graph and the library allows the client to hook into user events, Cytoscape.js is easily integrated into your webapp, especially since Cytoscape.js supports both desktop browsers, like Chrome, and mobile browsers, like on the iPad.

Cytoscape.js also has graph analysis in mind: The library contains a slew of useful functions in graph theory. You can use Cytoscape.js headlessly on Node.js to do graph analysis in the terminal or on a web server.

Muhammad's curator insight, March 6, 2019 3:38 PM
Share your insight
Scoop.it!

Why we left AngularJS: 5 surprisingly painful things about client-side JS

Why we left AngularJS: 5 surprisingly painful things about client-side JS | JavaScript for Line of Business Applications | Scoop.it

But rich client-side JavaScript frameworks aren’t a good fit for every site, especially content sites like Sourcegraph, as we soon learned. Here are some of the unexpectedly painful things we experienced along the way. We hope this is helpful to other developers who are facing a similar decision.

We knew about many of these pain points in advance, but we didn’t know how painful they would be.

1. Bad search ranking and Twitter/Facebook previews
2. Flaky stats and monitoring
3. Slow, complex build tools
4. Slow, flaky tests
5. Slowness is swept under the rug, not addressed


No comment yet.
Scoop.it!

localForage - using IndexedDB or WebSQL but with a simple, localStorage-like API

localForage - using IndexedDB or WebSQL but with a simple, localStorage-like API | JavaScript for Line of Business Applications | Scoop.it

localForage includes a localStorage-backed fallback store for browsers with no IndexedDB or WebSQL support. This means that asynchronous storage is available in Chrome, Firefox, and Safari (including Safari Mobile).

localForage includes a Backbone.js storage library that you can use to store your Backbone collections offline with only a few lines of really simple code.

Of course, Backbone.js is entirely optional and you can use localForage without it!

No comment yet.
Scoop.it!

JavaScript Promises: A Journey To The “Promise Land”

JavaScript Promises: A Journey To The “Promise Land” | JavaScript for Line of Business Applications | Scoop.it

Promises certainly aren’t the holy grail of asynchronous flow control in JavaScript. There are no silver bullets, after all. Promises are a tremendously important concept, and one that you need to understand, though. They’ve been around for a few years, have gone through various standards and APIs and are finally being added to JavaScript, proper. There are countless resources around the web these days, showing how promises work and what you can do with them. But in all this, it’s easy to get a bit lost. So I want to take you down a short journey – one that I’ve already travelled and documented fairly well. But here, I’ll summarize my journey of re-inventing promises (by accident), learning what they are and how I came to use them on a daily basis, for a while.

No comment yet.
Scoop.it!

Angular App Structuring Guidelines

Angular App Structuring Guidelines | JavaScript for Line of Business Applications | Scoop.it

I find it extremely helpful to have an idea of what is important to me and my team in structuring my app instead of focusing on the actual structure.

You have to find your own path that is comfortable for you and your team. Instead of just picking a structure, it’s helpful to think about the “why”, so I’ll walk you through the guidelines I follow and my thought process on why I choose how I do.

These are my guidelines. I’m sharing them as one possible path you can take but the main point of this post is to share how I think about structuring my Angular apps. There is a reason for the madness and if you take anything from this post it’s to be sure to have a set of guidelines and conventions of your own.

The structure should follow these 4 basic guidelines. When I find my structure is not feeling comfortable, I go back and revisit these LIFT guidelines

  1. Locating our code is easy
  2. Identify code at a glance
  3. Flat structure as long as we can
  4. Try to stay DRY (Don’t Repeat Yourself) or T-DRY


No comment yet.
Scoop.it!

Working with ES5 JavaScript array functions in modern and legacy browsers

Working with ES5 JavaScript array functions in modern and legacy browsers | JavaScript for Line of Business Applications | Scoop.it

As time moves on, so do our browsers.

Some of the nicest new features in modern browsers are Array methods that make traversing through arrays faster and easier.

Unfortunately for us, if you're using certain browsers (IE8 and below) these new ES5 methods don't work. IE9+ all these array methods work.

Fortunately, the fine folks at Mozilla in each one of the various descriptions of the ES5 methods provide the polyfill to ensure you can enjoy ES5 methods in those older browsers!

Here is a list of all the ES5 functions, a brief description on how to use it, and its corresponding polyfill!

No comment yet.
Scoop.it!

What’s the Role of the Server in Single Page Applications (SPAs)?

I’ve been doing a lot of AngularJS consulting and training lately and have been asked one particular question over and over: “What’s the role of the server in Single Page Applications (SPAs)”? Regardless of what SPA framework you use (AngularJS, Ember, Durandal, etc.) every SPA framework out there relies on some type of service (RESTful or otherwise) to serve and process data. That’s the obvious role that servers can play with SPAs. What’s not quite as obvious are the other roles that the server can play as a SPA interacts with it.

Here are a few ideas about roles that a server can play when building SPAs:

* Data Service
* Data Caching
* Serving Dynamic Views
* View Caching
* Security and Dynamic Views
* Security, Security, Security
* Summary

No comment yet.
Scoop.it!

Promise Anti-patterns

Promises are very simple once you get your head around them, but there are a few gotchas that can leave you with your head scratching. Here are a few that got me.

* Nested Promises
* The Broken Chain
* The Collection Kerfuffle
* The Ghost Promise
* The Overly Keen Error Handler
* The Forgotten Promise


No comment yet.
Scoop.it!

Introduction to Component

Introduction to Component | JavaScript for Line of Business Applications | Scoop.it

Component is a front-end JavaScript package manager developed by the prolific Tj Holowaychuk. It embodies the philosophy of small modules and is designed to manage assets as well as JavaScript. Currently, there exist over 1600 “components”. Although there are more popular JS package managers than Component, I chose to cover it because I love an underdog.

Jan Hesse's insight:

http://smalljs.org/package-managers/component-part-2/

No comment yet.
Scoop.it!

Making an Ember.js component even better

Last time I showed a way to make the star-rating component more reusable. The solution employed a useful, low-level method, Ember.addObserver and its destructive sibling, Ember.removeObserver.

A couple of my readers offered alternative solutions that, I think, make the code simpler without harming reusability of the component.

This post is going to be sort of a “Readers’ Letters”, showing these solutions and explaining how they are better than my original take.

No comment yet.
Scoop.it!

Using OpenLayers 3 with Ember.js

Using OpenLayers 3 with Ember.js | JavaScript for Line of Business Applications | Scoop.it
Bart recently experimented with combining OpenLayers 3 and Ember.js to create a LayerSwitcher that supports grouping and overlays as well as base layers.

Some of my takeaways from this exercise were:

* Ember seems powerful, and easy to learn. However, it’s sometimes hard to scrape together all the resources needed to learn and extend the framework.
* Components are pretty new to Ember and I couldn’t figure out how to properly define a component in a different namespace and use it in the application template (this is why I needed to use a workaround).
* OpenLayers 3 also has observable properties, which makes it easier to integrate the two.

No comment yet.
Scoop.it!

Testing Ember Apps With Venus

Testing Ember Apps With Venus | JavaScript for Line of Business Applications | Scoop.it

When I wrote my first Angular application 2 years ago I was blown away at it's awesome testing story. Although their implementation of dependency injection was a little odd and the size of function signatures were ridiculous, it proved to be one of the frameworks largest selling points. When I started play around with Ember ( v0.9.6 days ), the project didn't really have a strong testing story, but I would argue that Ember now has a better testing story than Angular. Not only does Ember have dependency injection through the container, it also comes along with Ember Testing, which is a suite of tools for integration testing.

No comment yet.
Scoop.it!

The Little JavaScripter Revisited

The Little JavaScripter Revisited | JavaScript for Line of Business Applications | Scoop.it

First, we agree that there is nothing technically wrong with this code; second, we agree that there is a lot of unnecessary ceremonial boilerplate which we no longer need thanks to syntactic simplifications being introduced in ECMAScript, 6th Edition. The words “function” and “return” both appear six times each, in pairs for every function in the entire program—of which there are six. There are thirty parenthesis: fifteen opening and fifteen closing. There are twelve curly braces: six opening and six closing. Most of that has very little to do with expressing the actual functionality, so let’s get rid of it! The following program is observably the same as the previous program, utilizing new syntactic forms of ES6, bringing the code closer to the expressiveness of Scheme—and yet more concise.

No comment yet.
Scoop.it!

Hands-on with Javascript and NoSql

Hands-on with Javascript and NoSql | JavaScript for Line of Business Applications | Scoop.it

The aim of this book is to show the use of some of the above mentioned tools in application and how we can start development of application with those tools. The book deals with some of the Proof-of-Concept Applications with the help of those tools. Apart from that,brief descriptions of some important aspects of these tools have also been incorporated . Being a developer from the very begining of my career, I always tried to find the codes which I can put together to generate new concepts in work. This book is a collective outcome of my efforts and experimental view with that acumen in mind. So there will be continuous updation of fresh knowledge from time to time.One personal opinion of mine is, working with new technologies like Javascript and NoSql related products is fun and I am thoroughly enjoying this phase. Also just to accompany, I am not an author but a programmer by profession; so writing things with all the theories and explanations was not my intention, rather I prefer to include practical working examples.

No comment yet.
Scoop.it!

Thoughts On JavaScript Generators

Thoughts On JavaScript Generators | JavaScript for Line of Business Applications | Scoop.it

When anyone complains about the pain of callback functions, the usual recommendation is to use promises. Promises have been around for a number of years and there are a variety of promise libraries available for both Node and client scripting environments, with Q being a popular package for node.

Promises are useful, particularly when they destroy a pyramid of doom. But promises can’t un-butcher the code sliced into functions to meet the demands of an asynch API. Also, promises require shims to transform a function expecting a callback into a function returning a promise, which is what Q.nfcall will do in the following code.

ECMAScript 6 (a.k.a Harmony) introduces the yield keyword. Anyone with some programming experience in C# or Python (and a number of other languages, except Ruby) will already be familiar with how yield can suspend execution of a function and return control (and a value) to the caller. At some later point, execution can return to the point just after yield occurred. In ES6, functions using the yield keyword are known as generator functions and have a special syntax (function*), as the following code demonstrates...

No comment yet.
Scoop.it!

Dart and Web Components - Scalable, Structured Web Apps

Dart and Web Components - Scalable, Structured Web Apps | JavaScript for Line of Business Applications | Scoop.it

Like chocolate and peanut butter, Dart and Web Components go great together. Learn how to build structured, declarative apps with modern web platform features, and deploy them across the modern web today. Don't wait for all browsers to implement the great new Web Components specs, let Dart and its Web UI framework make it a reality today.

Dart's language features such as classes, static types, and libraries brings order and scalability to the chaos. Web Components' features such as encapsulation, reusability, and declarative semantics helps you "say what you mean" and avoid soup. Web UI's declarative and dynamic two-way data binding efficiently wires up your app.

Best part: it all compiles to vanilla HTML and JavaScript to bring you the best of the future web today so you can deploy access the modern web browsers.

No comment yet.