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!

Using Browserify with npm modules

Using Browserify with npm modules | JavaScript for Line of Business Applications | Scoop.it

Recently I covered Browserify in another post, but did not go into much detail. I discussed how to use Browserify with your own modules, but what I didn’t discuss was how Browserify can work with modules that have been published to npm too. In short: you can use Node modules on the client side.

In this tutorial, using a Backbone app as the example, I’ll show you how to use Browserify to use npm modules, meaning you can use npm to manage your front end dependencies. This example uses Backbone, but you could use this with anything you like. Backbone just happens to be a good example in this case.

No comment yet.
Scoop.it!

Using Jasmine to Test JavaScript

Jasmine is a behavior-driven development framework for testing JavaScript code. It does not rely on browsers, DOM, or any JavaScript framework. It has a clean, obvious syntax to be able to write tests easily.

I want to define a convert function
“function convert(number, baseUnit)” which will take a number and a baseUnit as an input,
for example convert(1, ‘Kilometer’) and return back a hash of all converted units
example return: {‘Kilometer’: 1, ‘Meter’: 1000, … }

So in a true TDD (Test Driven Development) style I am going to write my tests first and then write code to make them pass. For this example I am actually going to create a video, which should show you how to get started with Jasmine on your machine and write specs..

No comment yet.
Scoop.it!

Building Ember.js Applications for Production

Building Ember.js Applications for Production | JavaScript for Line of Business Applications | Scoop.it

Developing Ember.js apps for production is nothing like what you see on the tutorials or guides around the interwebs. Most guides just throw some code on an HTML file and maybe two or three extra JavaScript files. That’s not how it works in a real world scenario.If you are working with any of these client side JavaScript frameworks you need to deal with modules, pre-compiling templates, source maps, css pre-processors, linting and minification of files. It’s a lot of stuff.Lucky for us in the Ember.js camp there’s a lot of stuff going on.

No comment yet.
Scoop.it!

Measuring Execution Times in JavaScript with console.time()

Measuring Execution Times in JavaScript with console.time() | JavaScript for Line of Business Applications | Scoop.it

Last week, I blogged about advanced JavaScript debugging with console.table() showcasing the console.table() function. Today, I want to show you another debugging method, more specifically one for measuring execution times: Say hello to console.time().

MEASURING EXECUTION TIMES THE CLASSIC WAY
Scoop.it!

Combining AngularJS with Existing (jQuery) Components

Combining AngularJS with Existing (jQuery) Components | JavaScript for Line of Business Applications | Scoop.it

A common question when looking at AngularJS for the first time is about how to combine it with existing JavaScript code and components. For jQuery UI in particular, the team around AngularJS has created the AngularUI project (http://angular-ui.github.com/) which provides an easy way to use jQuery UI with Angular.). For other frameworks - or especially for your custom DOM-manipulating code - the necessary steps might not be as obvious at the first glance.

Most existing components (especially in the jQuery-world) usually work in a different way. Without Angular, when you wanted to achieve a certain behavior, like displaying a date-picker, you would usually go with a jQuery UI extension (like 'datepicker') and use call similar to $("#someinput").datepicker({...}). This would extend a standard <input> element with an ID of someinput to be turned into a datepicker.

In this command's options, you would have usually specified a callback to be invoked whenever the user selects/changes the date in the input box. But you wouldn't do this just for a single datepicker -- no, this kind of jQuery UI-extension would be littered throughout your business code for nearly every input control in your HTML. After all, your datepickers need access to the underlying model values to restrict the input to valid ranges and to perform additional validation if necessary. This mix of business code and DOM-manipulating code is sometimes the reason for maintenance headaches of JavaScript developers.

With this in mind, you can see the conundrum: how do you take classic JavaScript code (with this mix of DOM interactions and event handlers with direct manipulation of underlying business objects) and put it into the well defined structure of AngularJS?


No comment yet.
Scoop.it!

Building Models in Backbone and Angular

This is the second article in the series contrasting how Backbone and Angular help with the things we have to deal with day to day when building web applications. This time we will look into how we build models and implement business logic in both frameworks.

No comment yet.
Scoop.it!

An Introduction To Full-Stack JavaScript

An Introduction To Full-Stack JavaScript | JavaScript for Line of Business Applications | Scoop.it

Nowadays, with any Web app you build, you have dozens of architectural decisions to make. And you want to make the right ones: You want to use technologies that allow for rapid development, constant iteration, maximal efficiency, speed, robustness and more. You want to be lean and you want to be agile. You want to use technologies that will help you succeed in the short and long term. And those technologies are not always easy to pick out.

In my experience, full-stack JavaScript hits all the marks. You’ve probably seen it around; perhaps you’ve considered its usefulness and even debated it with friends. But have you tried it yourself? In this post, I’ll give you an overview of why full-stack JavaScript might be right for you and how it works its magic.

No comment yet.
Scoop.it!

Unit Testing and Writing Testable Code

The obvious benefit of unit testing is that we get an instantaneous overview of whether some basic, expected functionality of our web applications has been broken by recent changes. Depending on your project, and overhead involved, you may want to run unit tests on each save, each commit, each hour, day, or as part of your continuous integration process via Jenkins or TravisCI. You can use your unit tests to verify functional outputs, DOM manipulations, event-driven behavior, or even basic markup structure.

In the case of a monstrous amount of preexisting code, there’s not much that can be done as far as unit test coverage is concerned, except to say that this is the line in the sand. From here on out, all new feature work will require unit test coverage, and any new defects that are reported will require a unit test to verify their solution. In this way, you can let your test library organically grow, while still being able to handle feature work at the same time. Nobody needs to slam on the brakes to be able to write coverage for everything, especially when a lot of it may be dead execution paths, or code that’s slated for refactoring work in the future.

No comment yet.
Scoop.it!

ng-embereño: Angular.js from the perspective of Ember.js

ng-embereño: Angular.js from the perspective of Ember.js | JavaScript for Line of Business Applications | Scoop.it

* First impressions

* The "Framework" distiction is important

* Philosophy of AnhularJS/EmberJS

* How AngularJS/EmberJS does thingy X

* Where they are better at

* Examples

* Testability

* Final Thoughts

No comment yet.
Scoop.it!

NodeCloud - Node.js resources

NodeCloud - Node.js resources | JavaScript for Line of Business Applications | Scoop.it

NodeCloud is a resource directory gathering sites related to Node.js and ordering them by their Alexa traffic, allowing to evaluate relative popularity of a project.

Please note that for the ranking to be relevant, only sites fully dedicated to Node.js and hosted on their own domain (Alexa do not provide separate rankings for subdomains) can be indexed.

No comment yet.
Scoop.it!

Web Components: Why You're Already An Expert

Web Components: Why You're Already An Expert | JavaScript for Line of Business Applications | Scoop.it

Web Components are going to fundamentally change the nature of HTML.

At first glance, they may seem like a complicated set of new technologies, but Web Components are built around a simple premise. Developers should be free to act like browser vendors, extending the vocabulary of HTML itself.

If you’re intimidated by these new technologies or haven’t experimented with them yet, this post has a very simple message for you. If you’re already familiar with HTML elements and DOM APIs, you are already an expert at Web Components.

Jan Hesse's insight:

http://markdalgleish.github.io/presentation-web-components/

No comment yet.
Scoop.it!

Reducing Boilerplate Code in Front-End Projects

Reducing Boilerplate Code in Front-End Projects | JavaScript for Line of Business Applications | Scoop.it

Projects with a lot of front-end related code require a well-crafted architecture in order to stay maintainable and easily extendable. With projects like HTML5 Boilerplate or Bootstrap there are templates and frameworks that help us to achieve a decent structure for our projects.

But is this enough to get us started with a sophisticated workflow? Let’s have a look at the problems we face and how we can solve them.

No comment yet.
Scoop.it!

How do I Jasmine: a tutorial

How do I Jasmine: a tutorial | JavaScript for Line of Business Applications | Scoop.it

Jasmine is an automated testing framework for JavaScript.

Testing in a nutshell: basically, your program will have a bunch of functions and classes. You want to make sure that, no matter what you throw at them, they'll perform how you want them to. For example, this function should always return a string that says "hello" in it. Testing ensures that everything goes down exactly how you planned. It's like you're God...but it's probably a little more boring because it's code.

If you've used languages other than JavaScript before, you might use JavaScript and get angry. If you've used other testing frameworks, I am sorry if the same frustration happens while you use Jasmine -- she changes the names of some stuff and she also makes fun of you. She called me a "turd-faced coward".

Jasmine is a testing framework for JavaScript. Let's learn all of her secrets.

No comment yet.
Scoop.it!

Building a shopping cart with SignalR, ASP.NET Web API and Knockout.js

Building a shopping cart with SignalR, ASP.NET Web API and Knockout.js | JavaScript for Line of Business Applications | Scoop.it

In this tutorial we will go through a process of building a sample shopping cart with real time capabilities. On top of that, we'll also throw in a real time admin order overview.

The technologies used will include:

* Knockout.js - for reactive client side data binding

* ASP.NET Web API - as an API to retrieve data and send orders to the server side

* SignalR - to notify interested parties in changes to the item stock quantities & order status


Since the topic of building a functional e-commerce solution is obviously extremely broad, we will take a few simplifications, which will allow us to focus our attention on the real time aspects of the cart and avoid distractions. We will treat security (user login/logout) and data persistence (we'll just store the data in memory) as out of scope.

No comment yet.
Scoop.it!

Ionic: Advanced HTML5 Hybrid Mobile App Framework

Ionic: Advanced HTML5 Hybrid Mobile App Framework | JavaScript for Line of Business Applications | Scoop.it
Ionic: The Most Advanced HTML5 Mobile App Framework. Ionic makes it incredibly easy to build performant, beautiful hybrid native apps using web technologies like HTML5, Javascript, CSS, and AngularJS.
No comment yet.
Scoop.it!

Dustjs by linkedin - Asynchronous templates for the browser and node.js

Dustjs by linkedin - Asynchronous templates for the browser and node.js | JavaScript for Line of Business Applications | Scoop.it

Dust Highlights!

* async/streaming operation

* browser/node compatibility

* extended Mustache/ctemplate syntax

* clean, low-level API

* high performance

* composable templates

We built one of our high volume app Profile using dust and we heavily focus on performance. 

No comment yet.
Scoop.it!

10 Ecmascript-6 tricks you can perform right now

10 Ecmascript-6 tricks you can perform right now | JavaScript for Line of Business Applications | Scoop.it

We live in a fluid world. I first started hearing about HTML5 several years ago now, and I’ve been using it for at least two, yet it won’t be officially ready until next year at the earliest. While HTML is making great strides, another leg of the stool is progressing nicely as well. New Javascript features are coming, outlined in the standard known as Ecmascript 6. Though it’s not finalized, it is approaching stability and implementation is coming along in various forms.

You’ve probably heard about some of the cool features on the way, like module support, classes and a bunch of syntactic niceties, but you might not have had a chance to try them. 

No comment yet.
Scoop.it!

Promises in Node.js with Q – An Alternative to Callbacks

Promises in Node.js with Q – An Alternative to Callbacks | JavaScript for Line of Business Applications | Scoop.it

Promises provide a compelling alternative to raw callbacks when dealing with asynchronous code. Unfortunately, promises can be confusing and perhaps you’ve written them off. However, significant work has been done to bring out the essential beauty of promises in a way that is interoperable and verifiable. The result is Promises/A+, a specification that is making its way into promise libraries and even the DOM.

So what are promises all about and what do they offer when writing Node applications?

No comment yet.
Scoop.it!

Easy JavaScript Documentation with YUIDocs and Grunt.js

Easy JavaScript Documentation with YUIDocs and Grunt.js | JavaScript for Line of Business Applications | Scoop.it

Documenting code is a rough, but necessary evil. Having a well maintained and documented code base can ease new developers into your code base and also help keep tabs on certain pieces of your application.

YUIDoc is a node app that assists in parsing certain JavaScript comments out to generate API documentation. Here are some of the basics of the syntax for documentation.

It allows you to tag pieces of your application to be processed for later documentation.

No comment yet.
Scoop.it!

Angular for the jQuery developer

Angular for the jQuery developer | JavaScript for Line of Business Applications | Scoop.it

One of the most commonly asked questions about learning AngularJS is how to think about it when coming from a jQuery background where manually manipulating the DOM tree is a requirement to adding interactivity to our web pages.

jQuery itself is simply a DOM manipulation utility belt. It is an imperative wrapper around DOM manipulation, not a tool for building web apps. We obviously can use jQuery to build dynamic websites, but that’s like using a hammer to cut through wood… Why not just buy a saw and do it right?

In this post, we’ll walk through how to think in Angular and provide a mental model for structuring how to think about building better, faster, more stable web apps with AngularJS.

Throughout this section, we’re working through a jQuery application and demonstrating how to build it in Angular.

No comment yet.
Scoop.it!

Introducing node.js Tools for Visual Studio

Introducing node.js Tools for Visual Studio | JavaScript for Line of Business Applications | Scoop.it

Just when you thought it couldn't be crazier in Redmond, today they are introducing node.js Tools for Visual Studio! NTVS runs inside VS2012 or VS2013.

NTVS is open source from the start, and has taken contributions from the very start. It supports Editing, Intellisense, Profiling, npm, Debugging both locally and remotely (while running the server on Windows/MacOS/Linux), as well publishing to Azure Web Sites and Cloud Service.

Node.js Tools for Visual Studio takes advantage of V8 Profiling API's as well Visual Studio's Reporting features to give you a sense of where your program is spending its time.

The debugging still happens like it always has, with the node V8 debugger, except Visual Studio connects to the debugger over another socket (remember, you can even debug node.js remotely running on a Linux or Mac like this!) and translates how V8 thinks into how Visual Studio thinks about debugging. The experience is seamless.

No comment yet.
Scoop.it!

Making Durandal applications SEO crawlable

Making Durandal applications SEO crawlable | JavaScript for Line of Business Applications | Scoop.it

The web is changing. JavaScript frameworks like Durandal are rising and more and more applications are created this way, offering excellent user experiences. But, is the web ready for this movement? Let's just say that it's a "work in progress".

There are a lot of things we have to be aware of when developing a dynamic JavaScript application and one of the most important things is SEO. When we develop a Durandal application and make it available to the world, one of the first things we would like to see is the application being indexed by google. But without any configuration, the only thing we will see indexed is the root page of our site. What's the problem? I created one of my best web applications, the users love it, it's quick and optimized...but nobody can enjoy it because google can't see it.

What googlebot can see is our index page and nothing more, and the reason is because our content is generated dynamically and the web hasn't traditionally worked this way. We may think "times are changing" and Google should be aware about this...and of course it is. But to take advantage of it we have to make some changes in our application first.

No comment yet.
Scoop.it!

DynoSRC - Library Caching with differential updates

DynoSRC - Library Caching with differential updates | JavaScript for Line of Business Applications | Scoop.it

Eliminate HTTP requests for JavaScript files and serve differential updates to your users on the fly.

Minimize HTTP Requests - DynoSRC loads JavaScript files inline in your HTML response, then stores them in localStorage. You can even inline the DynoSRC client lib, eliminating all HTTP requests for JavaScript on your site.


Differential Updates - Now, if a JS asset on your site changes, your users will have to download it again even though just a fraction of it changed. DynoSRC sends down differentials updates, so changes to large files don't require full downloads.

No comment yet.
Scoop.it!

Announcing FogJS for Windows Azure with Node.js

Announcing FogJS for Windows Azure with Node.js | JavaScript for Line of Business Applications | Scoop.it

About a year and a half ago I announced a library named Fog (for F#) that had the goal of making it very easy to use F# to work with the Windows Azure API for .NET. Today, I'm proud to announce the release of FogJS, which has a similar goal for JavaScript/Node.js development.

FogJS currently supports 3 of the more popular Azure services: Blob Storage, Table Storage, and Service Bus. One of the most broad features in FogJS is that of support for promises. In fact, almost every function provided by the Azure SDK for Node.js has been replicated in Fog with the results returned as a promise (with the help of Q.js).

The second big feature is related to making it as easy as possible to interact with Azure. This is primarily accomplished with "simplified functions" that follow a convention over configuration approach.

No comment yet.
Scoop.it!

End Dash

End Dash | JavaScript for Line of Business Applications | Scoop.it
EndDash is a two-way binding javascript templating framework built on top of semantic HTML.

In its current release, EndDash relies on Backbone objects.

No comment yet.