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

Why you might not need MVC with React.js

Why you might not need MVC with React.js | JavaScript for Line of Business Applications | Scoop.it

I will question the usefulness of MVC (MVC as in todays MV* implementations in JS frontend frameworks), the most established design pattern in frontend development. Let me make it clear that it is not my intention to invalidate MVC in general. Rather, I think it's importance as a design pattern for very interactive web applications is overstated.

This post here is ballsy, since MVC is baked into the heads of frontend people. It's ubiquitous. It's the biggest consensus amongst devs I've ever seen, and MVC is widely considered "best practice". Basically, people don't question MVC anymore. However, I personally think the concept doesn't apply optimally to complex web apps (I might be wrong though).

Jan Hesse's insight:

Flux is mentioned here for solving communication between components:

https://github.com/facebook/react/tree/master/examples/todomvc-flux

No comment yet.
Scoop.it!

Modern JavaScript Applications: Design Patterns

It's presented how classical OOP approaches and design patterns can be used for modern JavaScript applications.
No comment yet.
Scoop.it!

Observable path patterns in Ember

Observable path patterns in Ember | JavaScript for Line of Business Applications | Scoop.it

Property paths are the heart and soul of Ember.js apps. You use them in templates and you define dependencies for computed properties and observers through property paths.

In this post, I concentrate on this latter and show you various ways of setting up these dependencies through a practical example.

No comment yet.
Scoop.it!

CodeLogical - Mastering Ember Js

Lets learn about emberjs together on your way to building ambitious web applications. I aim to make the videos very short and concise so you get to learn a new thing each time.

Jan Hesse's insight:

really good screencasts on youtube

No comment yet.
Scoop.it!

imvvm - Immutable Model-View-ViewModel for React

imvvm - Immutable Model-View-ViewModel for React | JavaScript for Line of Business Applications | Scoop.it

IMVVM is designed to complement the React library. A Facebook and Instagram collaboration.

To further quote the React website, "lots of people use React as the 'V' in MVC". Well I thought, why not use React as the 'V' in MVVM, and keeping inline with React's philosophy on immutability, lets make it use immutable data. So I created IMVVM.

This is my take on MVVM and immutability using javascript. IMVVM tries to resemble a React application. So it not only feels like your developing in the same environment, but if your coming from React, you should be able to pick up IMVVM quickly.

No comment yet.
Scoop.it!

Functional Programming in Javascript === Garbage

Functional Programming in Javascript === Garbage | JavaScript for Line of Business Applications | Scoop.it

Functional Programming is great. It allows for simpler programs which are easy to test and reason about. Unfortunately, not all languages are created equal. I've been writing a bit of Clojure and really enjoying myself. As I've ported my learnings and approaches to Javascript, I've encountered a handful of issues which I'd like to talk about.

Once you begin working with functions, you'll begin passing references of them to other functions. These are called Higher Order Functions and you may already be familiar with them. Take, for example, jQuery.fn.each:...

No comment yet.
Scoop.it!

ion-search directive with Ionic framework

ion-search directive with Ionic framework | JavaScript for Line of Business Applications | Scoop.it

A demo of a directive which add a fancy search bar to filter data. It can filter / search from promises sources and preloaded sources. For the promises demo, I used Web SQL, so it's Chrome/Safari only compatible (but 100% compatible with the SQLite Cordova plugin :D)

No comment yet.
Scoop.it!

Building Mobile Apps with AngularJS and Ionic

Building Mobile Apps with AngularJS and Ionic | JavaScript for Line of Business Applications | Scoop.it

AngularJS is turning out to be one of the best frameworks for building mobile apps across all major platforms.

One reason that Angular fits so well into the mobile developer toolbox is its features for interacting with backend web services and external data sources. Since most apps today are data-driven, it makes sense to use a tool built from the ground up to solve this problem.

Beyond that, AngularJS comes with some of the most modern and advanced software development practices ready-made and easy to use. You'll find that building mobile apps with Angular is highly efficient and results in solid code that will scale up as you pile on the features.

* Three-way data binding

* Reusable logic

* Testability

* Among Friends

* Mobile UI with Ionic

* Go forth and build

No comment yet.
Scoop.it!

5 AngularJS Antipatterns & Pitfalls

5 AngularJS Antipatterns & Pitfalls | JavaScript for Line of Business Applications | Scoop.it

AngularJS is a big JavaScript framework and it gives you just enough rope to hang yourself with. I’ve written a lot about it in this blog and really hope that I have made a noteworthy impact on improving the general availability of resources. I’ve been working on a project using AngularJS at my dayjob lately and noticed some antipatterns and pitfalls that people fall into when they are new to Angular (myself included, so they’re based on my own sweat and blood learning the framework) and I’ve consolidated some of them here for you to peruse. Hopefully I’ll save you some pain.

They are:

  1. Not having a dot in your ng-model (or other places you need it!)
  2. Extreme overuse of event broadcasting and listening ($emit, $broadcast, $on)
  3. Too much stuff in controllers
  4. Misunderstanding or misusing isolate scope
  5. Using the outside world instead of doing things the Angular way
No comment yet.
Scoop.it!

Angular Classy - Cleaner class-based controllers for AngularJS

Angular Classy - Cleaner class-based controllers for AngularJS | JavaScript for Line of Business Applications | Scoop.it

As your Angular controller grows, it can start to get unwieldy and difficult to structure.

Classy uses a class-based approach and steals some neat ideas from AngularDart to make controllers a little nicer.

*  No more annotating your dependencies

*  $scope convenience

*  Special object for $watch listeners

No comment yet.
Scoop.it!

ember.js - Animating Deletes With the BufferedProxy

ember.js - Animating Deletes With the BufferedProxy | JavaScript for Line of Business Applications | Scoop.it

I encountered an interesting scenario in my day job that initially had me scratching my head for a way to solve and seems worthy of a post. The real world application that I am working on actually has real world todos! The application lists the todos as is illustrated in the screenshot below and they can be completed in the time honoured fashion of clicking the checkmark or tick on the left hand side of the todos:

No comment yet.
Scoop.it!

ExtJS vs AngularJS

ExtJS vs AngularJS | JavaScript for Line of Business Applications | Scoop.it
ExtJS vs AngularJS. ExtJS and AngularJS are the two industry leading frameworks for Rich UI development.
This article compares these two frameworks over 30+ points around benefits, architecture, testing, mobility, performance, build and deployment among other things.

ExtJS vs AngularJS:


Architectural Differences:
* Application Design Framework
* Components
* Routing benefits
* Testability
* Data Binding
* SEO Friendly
* Mobile Solutions
* Dom Approach
* Deferred and Promises
* Dirty checking
* Deferred bootstrap

No comment yet.
Scoop.it!

Mixins, Forwarding, and Delegation in JavaScript

This essay discusses how to separate JavaScript domain properties from object behaviour, without prototypes. This is deliberate. By examining four basic ways to have one object define the behaviour of other objects, we gain insight into what we’re trying to accomplish at a very basic level.

We can then take this insight to working with prototypes and understand the conveniences that prototypes provide as well as the tradeoffs that they make. That does not mean, of course that just because prototypes (or classes, for that matter) are not mentioned here, that prototypes are considered inferior to any of these techniques.

This is an essay, not a style guide.

No comment yet.
Scoop.it!

Seven Reasons to Love Duck Angular

Seven Reasons to Love Duck Angular | JavaScript for Line of Business Applications | Scoop.it

Enter Duck Angular: a framework specifically designed to help JavaScript developers test DOM interactions when working with AngularJS in a nearly immediate feedback loop at dev time.

Seven Reasons to Love The Duck
* It runs insanely quickly inside of KarmaJS, allowing development time fast feedback on JavaScript changes. The team’s test suite runs ~ 600 tests in around 50 seconds (and could be faster with some easy optimization)
* Binds your apps HTML templates (or just HTML files) with your controller and renders the result
* Duck is barely any code at all (293 lines), as it leverages Angular’s internals to provide a full-fledged DOM in your tests so that you can make assertions about DOM interaction
* It’s open source and available on GitHub at https://github.com/asengupta/duck-angular
* Works with Jamsine, mocha, Karma, phantomJS, RequireJS, chai, many of the “as promised” libraries, and much more.
* Allows you to flexibly inject your own dependencies, mocked or otherwise
* You can simulate user interactions with a handy helper function interactWith that can specify an element to interact with and a specific interaction

Jan Hesse's insight:

https://github.com/asengupta/duck-angular

No comment yet.
Scoop.it!

Velocity.js - Accelerated JavaScript animation

Velocity.js: A jQuery library for performant JavaScript animation.


Velocity is a jQuery plugin that re-implements $.animate() to produce significantly greater performance (making Velocity also faster than CSS animation libraries) while including new features to improve animation workflow.

Velocity works everywhere — back to IE8 and Android 2.3. Under the hood, Velocity uses jQuery's $.queue(), and thus interoperates seamlessly with jQuery's $.animate(), $.fade(), and $.delay(). Since Velocity's syntax is identical to $.animate()'s, none of your code needs to change.

Jan Hesse's insight:

technical explanation:

http://davidwalsh.name/css-js-animation

No comment yet.
Scoop.it!

Getting started with Ember App Kit

Getting started with Ember App Kit | JavaScript for Line of Business Applications | Scoop.it

In the following tutorial we’ll create a simple Ember.js app for logging your water intake. Besides learning the basics of Ember.js, you will also learn how to use Ember App Kit.

EAK is the basic building block of your app. It helps you to rapidly start the development with features such as the ES6 module transpiler, automatic reloading, the Grunt task runner, the Bower package manager…

No comment yet.
Scoop.it!

Write Your CSS with JavaScript

Write Your CSS with JavaScript | JavaScript for Line of Business Applications | Scoop.it

Sometimes programming is just using the right tool. This may be a framework, library or as it happens in my case CSS preprocessor. You probably don't realize it, but LESS or SASS have a lot of constraints. I managed to change that by writing my own CSS preprocessor. I stopped writing CSS and moved everything into the JavaScript world. This article is about AbsurdJS: a small Node.js module, which changed my workflow completely.

If you write a lot of CSS you probably use preprocessor. There are two popular - LESS and SASS. Both tools accept something, which looks like CSS, do some magic and export normal, pure CSS. What I did is just to replace the instrument and the input format. I didn't want to invent a new language or syntax, because this is connected with a lot of things like parsing and compiling. Thankfully, Node.js is here and I decided to use it. Also, I had a lot of LESS type projects, which means that I already use Node.js to compile my styles. It was much easier to replace a module instead of adding something completely new.

Jan Hesse's insight:

http://krasimirtsonev.com/blog/article/AbsurdJS-fundamentals

No comment yet.
Scoop.it!

Using OAuth, Twitter and Async To Display Data

Using OAuth, Twitter and Async To Display Data | JavaScript for Line of Business Applications | Scoop.it
Connect to Twitter from a mobile application using OAuth with the Xamarin.Auth library, along with Joe Mayo's LINQ To Twitter library.


For these set of examples, we'll use OAuth as a mechanism to authenticate users. We'll authenticate users, get a response and display information to the user (specifically, a profile image). From there, the example will integrate with Twitter via OAuth and then make calls to Twitter via a third-party library. This will demonstrate the strength of the growing Xamarin ecosystem.

No comment yet.
Scoop.it!

React integration for ASP.NET MVC - ReactJS.NET

React integration for ASP.NET MVC - ReactJS.NET | JavaScript for Line of Business Applications | Scoop.it

ReactJS.NET makes it easier to use Facebook's React and JSX from C# and other .NET languages, focusing specifically on ASP.NET MVC (although it also works in other environments). It assumes you already have some basic knowledge about React. It is cross-platform and can run on Linux via Mono.

Pre-render the initial state of your React components server-side to make the initial load feel faster.

No comment yet.
Scoop.it!

Sociogram: A Sample Application demonstrating AngularJS/Ionic and Facebook Integration

Sociogram: A Sample Application demonstrating AngularJS/Ionic and Facebook Integration | JavaScript for Line of Business Applications | Scoop.it

Here is a brand new version of Sociogram, built with AngularJS,Ionic, and the OpenFB micro-library I shared earlier this week.

Sociogram is a sample application that demonstrates how to:

  • Login with Facebook
  • Request specific permissions
  • Revoke permissions
  • Get data (list of friends, mutual friends, feed items, etc.)
  • Post to your feed

The application also demonstrates some cool Ionic features such as:

  • Sliding Menu
  • Pull-to-Refresh (in Feed)
  • “Loading…” UI (while waiting for the feed to load)
No comment yet.
Scoop.it!

Faster AngularJS Rendering (AngularJS and ReactJS)

Faster AngularJS Rendering (AngularJS and ReactJS) | JavaScript for Line of Business Applications | Scoop.it

Have you used AngularJs and ran into some performance problems? Using ReactJs rendering becomes much faster. A small examples explains how to use ReactJs for rendering in AngularJs and a comparison is made between native rendering and rendering using ReactJs.

Now there is this great tool coming along called ReactJS. And this little innocent looking lib will definitely make one of the biggest changes in JavaScript MVC frameworks for the last couple of months (if not years). In short words, this library will make rendering finally fast. ReactJs calls itself the V in MVC (the View). At first I was wondering, why the hell would I want to drop the MC part? The MC part is where the fun is in all these frameworks like EmberJs, BackboneJS and AngularJS, right? 

As ReactJs is the V it can be easily as V in existing frameworks already today.BackboneJS , more, with AngularJS, ngReact  or here. Use it with Coffeescript? So you can use ReactJs to render those parts of your App where some performance comes in handy, for example ng-repeat with a few hundred items. 

No comment yet.
Scoop.it!

Deep Linking a Tabbed UI With AngularJS

Deep Linking a Tabbed UI With AngularJS | JavaScript for Line of Business Applications | Scoop.it

The idea is to dynamically generate a tabbed navigation using Angular and UI Bootstrap.

I’ve done this before, but this time around I needed the ability to deep link into a tab. That is, if a user bookmarks /someapp/tab2, then the 2nd tab should be active with its content showing.

Instead of using ngRouter, which is a bit simplistic, I decided to use UI Router. UI Router is not without quirks and bugs, but it does give the opportunity to setup multiple, named “states” for an application, and can manage nested states and routes through associated URLs. One of the first steps in working with UI Router is configuring the known states

No comment yet.
Scoop.it!

Understanding Javascript Promises

Learning promises is an interesting process. Like many tools, there are common pitfalls to get stuck on. What makes promises somewhat unique is that it tends to be obvious that you're doing it wrong. Why? Promises are designed to solve a clear and well-understood problem: nested callbacks. As you start to use them however, you're code isn't that different. Obviously there's something you don't grok, but what?

The example that I'm going to walk through is a login. This involves:

1. Opening our connection
2. Getting the user's row from the DB based on email
3. Comparing the passwords
4. Updating the DB with a `token`
5. Releasing our connection
6. Returning the user data and token

No comment yet.
Scoop.it!

File Uploads in Ember JS

Probably one of the biggest issues that I've had so far with our latest Ember projects has been working with has been getting a good way to upload files on an Ember model. In the past, we had used jquery.fileupload from BlueImp to handle the file uploads on smaller projects. However, one of the issues that we have with our new application is performance and DOM size.

The application is a image gallery uploader where images are being sent to different image fields. The page has hundreds or more of these image fields on the page so using a tool like BlueImp or something similar proved a bit of a problem for a few reasons.

No comment yet.
Scoop.it!

Easier Angular Directives with SweetJS

Easier Angular Directives with SweetJS | JavaScript for Line of Business Applications | Scoop.it

I am playing with domain specific languages and macros for some time. The (almost) new kid on the block in the Javascript world is Mozilla’s SweetJS. SweetJS allows you to create language extensions to ‘sweeten up’ your Javascript, so I thought: wouldn’t be fantastic create a clean, trivial syntax for defining my Angularjs directives for use in my projects?


Sweet Angle is the result of this challenge. It is based on macro expansion and covers the majority of the cases in which you may need a directive.

Jan Hesse's insight:

http://www.vittoriozaccaria.net/sweet-angle/

No comment yet.