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

Growl-like notifications with Ember.js

Do you have things to say? Do you have a message for the world? Are you seeking a vessel to express this divine inspiration? Do you feel like blurting out this message at the top right corner of the screen in a fancy way? Then you may need to consider growl-like notifications in your webapp.


At a high level, this is the approach we will take. This is done within the context of an Ember.js webapp, but you could take these ideas and run with them in your framework of choice.

Collection of notification objects:

A controller will be responsible for getting told about new notifications and storing them within a collection.

View to house the current notifications:

A fixed-position view will be put in the DOM that will have sub-views inserted when new notifications arrive. These sub-views will have to do a little work to figure out where to place themselves and respond to clicks.

Fancy CSS:

The least important but most fun. You'll see when we get there.


No comment yet.
Scoop.it!

The Angular Way

The Angular Way | JavaScript for Line of Business Applications | Scoop.it

For the past few months I’ve been sailing around the world of Angular. Today I can hardly imagine myself doing day to day coding on a large front-end web application without some kind of data binding framework, such as Angular.js,Backbone.js, and friends, and I can’t believe I’ve done so in the past.

This kind of interaction, data binding, and view synchronization would be easily be a maintenance nightmare if it wasn’t for a framework such as Angular. Being able to update a model in one place, and have Angular update all relevant views almost feels like cheating.

Angular enabled us to go places we wouldn’t ever have dreamt of, such as setting up a bunch of keyboard shortcuts that are enabled based on the current context of the application. For example, text editing shortcuts, such as ctrl/cmd + B to toggle bold text, are just enabled when we’re editing a text layer.

No comment yet.
Scoop.it!

Ember.js for a CakePHP Developer

Ember.js is a front end JavaScript MVC framework, but probably won't map to the exact same MVC patterns as CakePHP does on the server side. I cover the major features of Ember.js and attempt to make the connection to CakePHP classes where it applies.

No comment yet.
Scoop.it!

Node.js Convincing the boss guide

Now that you're all hyped up about using node.js, it's time to convince your boss. Well, maybe. I have had the pleasure ofconsulting for different businesses on whether node.js is the right technology, and sometimes the answer is simply no.

So this guide is my opinionated collection of advice for those of you that want to explore whether node.js makes sense for their business, and if so, how to convince the management.


Bad Use Cases
* CPU heavy apps
* Simple CRUD / HTML apps
* NoSQL + Node.js + Buzzword Bullshit
Good Use Cases
* JSON APIs
* Single page apps
* Shelling out to unix tools
* Streaming data
* Soft Realtime Applications
Convincing the boss
* Building a prototype
* Finding developers
* Vibrant community
* Performance
* Corporate Backing
Convincing a client

Sección de Metodologías de la Universidad de Murcia's curator insight, September 4, 2013 2:43 AM

Si estás pensando usar Node.js en una nueva aplicación, te interesa leer este artículo, pues explica claramente cuando merece la pena usar Node.js y cuando no.

Scoop.it!

Build AngularJS Grid with server side paging, sorting & filtering

Build AngularJS Grid with server side paging, sorting & filtering | JavaScript for Line of Business Applications | Scoop.it

I will be showing how to build a grid that supports server side paging, sorting & filtering

My goal with this  is that i didn’t want to implement a more complex approach that will be hard to customize later, so what i ended up doing is implementing a solution that will show a list of data in a table like structure and implement a reusable solution for paging, sorting & filtering

Benjamin Dean's curator insight, September 3, 2013 12:46 AM

Love sharing Angular tuts.

Scoop.it!

Podcast: Discover Meteor.js with Sacha Greif

Podcast: Discover Meteor.js with Sacha Greif | JavaScript for Line of Business Applications | Scoop.it
Adam Stacoviak and Andrew Thorp talk with Sacha Greif about his new book Discover Meteor, Meteor.js, sustaining open source and more.
No comment yet.
Scoop.it!

Improving the Performance of your Meteor JS projects

Improving the Performance of your Meteor JS projects | JavaScript for Line of Business Applications | Scoop.it

So you found Meteor, learned it in a day and started your next million dollar idea ... only to find your new masterpiece is slow as all get out. What happened? Well, the reactive nature of the framework needs to be used wisely.

When I first started exploring Meteor JS with the perspective of a PHP developer, I immediately applied my traditional thinking to Meteor's session: that they are a place to store data over time. Well kind of...

When you using your Collections, think about how that data is going to be used. If you can determine that you never need to update the DOM or HTML if the document(s) change, then you can tell Meteor not to make the query reactive. Then if data in the return documents changes, it won't cause your template to rebuild.

 


No comment yet.
Scoop.it!

JavaScript’s type system

JavaScript’s type system | JavaScript for Line of Business Applications | Scoop.it

This blog post examines JavaScript‘s type system. It answers questions such as: Is JavaScript dynamically typed? Weakly typed? What is coercion?

No comment yet.
Scoop.it!

Ember.js 1.0 Released

Ember.js 1.0 Released | JavaScript for Line of Business Applications | Scoop.it

We realized that the solution to our problem had been sitting under our noses all along: the URL is what web applications use to decide what to display!

We knew that we had to go back to the drawing board. We rebooted the entire project mid-course to refocus on how to build JavaScript apps that not only helped you architect large, multi-page applications, but helped you to do so without breaking the basic building blocks of the web.

Over time, we've added even more features, like components, that help bring solid UI architecture to the web. We are incredibly proud of the job that the community has done to lay a solid foundation that we can build upon for the years to come.

This 1.0 release is a promise from us: the pain that many experienced while we were figuring out how to build a JavaScript framework for the future of the web is now over. In keeping with the Semantic Versioning spec, there will be no more intentional breaking changes until we release Ember 2.0, which we don't anticipate happening for some time.

Benjamin Dean's curator insight, September 3, 2013 1:01 AM

I'm not an everyday user of Ember.js, but I fully support evolution of JS frameworks.

Scoop.it!

VNC client on 200 lines of JavaScript

VNC client on 200 lines of JavaScript | JavaScript for Line of Business Applications | Scoop.it

In this quick blog post I’ll show you how to create a simple VNC client in about 200 lines of JavaScript.
For our goal we’re going to use only HTML5 and JavaScript (client and server side).

Our application will have very simple architecture – a proxy server written in Node.js and a client in HTML5 and JavaScript. The Node.js server will stay between the browser and the VNC server. We need it because the client-side JavaScript does not supports TCP sockets so we can’t connect directly to the VNC server. The HTML5 client will have a canvas on which we will draw the frames we receive from the server.
For VNC server you can use the free version of RealVNC.

First lets start with the server. Make sure you have node.js installed. We will use four node modules: rfb2, connect, socket.io and node-png.


No comment yet.
Scoop.it!

angularJS Button directive with busy indicator

angularJS Button directive with busy indicator | JavaScript for Line of Business Applications | Scoop.it

I was experimenting on creating an overall “busy” indicator for a current page. Normally, we would declare an ngClick directive if we want to implement some behavior/process when we click the button.

But if the operation takes  a long time, we have no visual clue (to the user) of what’s going on.

We want to change that! In my previous post, I used NETEYE activity indicator. This time, I will use spin.js (by the same author). What prompted me to use spin.js is that it doesn’t rely on jQuery anymore.

So how do we go about this?

No comment yet.
Scoop.it!

Visualising JavaScript Processing Over Time With DevTools Flame Charts

Visualising JavaScript Processing Over Time With DevTools Flame Charts | JavaScript for Line of Business Applications | Scoop.it

In this quick video, I walk through how to effectively use DevTools Flame Charts for visually representing your app’s JavaScript processing over time. This can be useful if you’re concerned it may be suffering from particularly long function executions and you want to dive into them further.

 

Flame Charts compliment the existing JavaScript CPU Profile’s Tree and Heavy views, displayed lower down. For those unfamiliar with the CPU profiler, it shows where CPU time is statistically spent on your code.

No comment yet.
Scoop.it!

DOM Enlightenment - Exploring the relationship between JavaScript and the modern HTML DOM

DOM Enlightenment - Exploring the relationship between JavaScript and the modern HTML DOM | JavaScript for Line of Business Applications | Scoop.it

This is the free online version of the DOM Enlightenment book in its pre-edited/draft form.

This book is not an exhaustive reference on DOM scripting or JavaScript. It may, however, be the most exhaustive book written about DOM scripting without the use of a library/framework. The lack of authorship around this topic is not without good reason. Most technical authors are not willing to wrangle this topic because of the differences that exist among legacy browsers and their implementations of the DOM specifications (or lack thereof).

For the purpose of this book (i.e. grokking the concepts), I'm going to sidestep the browser API mess and dying browser discrepancies in an effort to expose the modern DOM. That's right, I'm going to sidestep the ugliness in an effort to focus on the here and now. After all, we have solutions like jQuery to deal with all that browser ugliness, and you should definitely be leveraging something like jQuery when dealing with deprecated browsers.

No comment yet.
Scoop.it!

Into the Ring with knockout.js

Into the Ring with knockout.js | JavaScript for Line of Business Applications | Scoop.it

Knockout is not meant to be a replacement for jQuery; jQuery is hugely popular, as you all know I'm a huge fan of it myself, and it's very good at what it does. But it's difficult to create complex user interfaces using jQuery alone; the bigger the application behind the interface, and the more the user can interact with it, the harder it gets to keep some semblance of order. Event handlers abound, and you quickly end up with literally hundreds of lines of code.

In this tutorial we'll build a simple interface that displays a list of contacts and then allows the visitor to interact with the UI to change how the data is displayed, such as filtering the list, or sorting it. We'll use knockout as a layer between our data and the page to simplify the creation and management or our UI.

No comment yet.
Scoop.it!

Bootstrap Magic: Generate your own bootstrap theme quickly and easily

Bootstrap Magic: Generate your own bootstrap theme quickly and easily | JavaScript for Line of Business Applications | Scoop.it
Simple and fast Twitter bootstrap themes generator made with AngularJS. Design your own bootstrap theme, like it ? Download less or css on the go.

https://github.com/pikock/bootstrap-magic

No comment yet.
Scoop.it!

Testing Asynchronous JavaScript

Testing Asynchronous JavaScript | JavaScript for Line of Business Applications | Scoop.it

There seems to be a common misconception in the JavaScript community that testing asynchronous code requires a different approach than testing ‘regular’ synchronous code. In this post I’ll explain why that’s not generally the case. I’ll highlight the difference between testing a unit of code which supports async behavior, as opposed code which is inherently asynchronous. I’ll also show how promise-based async code lends itself to clean and succinct unit tests which can be tested in a clear, readable way while still validating async behaviour.

No comment yet.
Scoop.it!

Unobtrusive jQuery Validation for Knockout in ASP.NET MVC

Unobtrusive jQuery Validation for Knockout in ASP.NET MVC | JavaScript for Line of Business Applications | Scoop.it

In this article, we will explore how we can use the jQuery Validator in an ASP.NET MVC application that uses Knockout Templating. Traditionally, jQuery validator works out of the box with KO ViewModels that are statically bound.

But there are a couple of additional things that you’ve to do when templates are involved and the DOM is manipulated on the fly.

Today we use a slightly different harness from the first two parts because we need validations for the dynamic controls added by the template.

No comment yet.
Scoop.it!

9 ways that Meteor JS raises expectations

9 ways that Meteor JS raises expectations | JavaScript for Line of Business Applications | Scoop.it

Meteor is a relatively new JavaScript web framework that has taken big efforts to re-imagine how developers build applications. It has a lot of fantastic features that you normally hear about—e.g., sharing code between the client & server, reactive templates, data synchronization—but it has also drastically changed my expectations in regards to more common tasks while building web applications. Here are 9 scenarios that are normally a hassle with any framework, but are much easier with Meteor.

No comment yet.
Scoop.it!

Things you need to know when scaling Meteor JS

Things you need to know when scaling Meteor JS | JavaScript for Line of Business Applications | Scoop.it

It’s a jungle out there, it is. And chances are that (in your manic hacking frenzy) you’ve committed some transgressions that will come to bite you when you finally float your app onto the stormy seas of Production.

How did we chance upon this knowledge? Well, first and foremost, through blood, sweat and tears from our own production resource planning app crashing repeatedly during its first week. Through this chaos we formed some assumptions about what was going on and remedied the situation with some hot-fixes.

So before we get started, let’s make a distinction between anonymous, unauthenticated users and logged in users. Their experiences are most likely completely different - and (importantly) there are some considerations that go along with this.

So some pages / content don’t need to be reactive. We’ve discussed making queries static in a previous post. But you can do this for templates too using #constant regions.

No comment yet.
Scoop.it!

A Meteor Node.js App to Heroku in 5 Minutes

A Meteor Node.js App to Heroku in 5 Minutes | JavaScript for Line of Business Applications | Scoop.it

Meteor is an amazing framework to rapidly build fully interactive web applications based on node.js and MongoDB.

I had a look at the video on the home page and I was quite impressed. I wanted to check it out myself on the web so I installed the framework

No comment yet.
Scoop.it!

gremlin.js - cuddly javascript components

gremlin.js - cuddly javascript components | JavaScript for Line of Business Applications | Scoop.it

GREMLIN.JS will help you add modular, robust and well organized Javascript functionality to all the classic websites existing and created in the future.

Classic? GREMLIN.JS isn’t for every website: it is no MVC library, does not provide magic binding tricks, it was not created to add another SPA (single page application) client library to the list… It’s a library for the masses. All the sites currently built Spaghetti style without any supporting layer that helps you structuring the site and organizing the code at all will benefit greatly.

If this isn’t enough for you, think of your current way adding Javascript functionality to websites. In most cases jQuery will be used, plugins are included, and in the best case, there is some sort of main.js that handles all the magic inside a $(document).ready handler. This tends to end in a huge mess of hardly maintainable code snippets and it’s up to you to initialize new elements added with Javascript to the document.

GREMLIN.JS forces you to write modular and sandboxed Javascript that can be used everywhere. It will manage all components for you, takes care of them and initializes every single one when needed.


No comment yet.
Scoop.it!

recommended Podcast: JavaScript Strategies at Microsoft with Scott Hanselman

recommended Podcast: JavaScript Strategies at Microsoft with Scott Hanselman | JavaScript for Line of Business Applications | Scoop.it
Scott tells those Rails guys that there is another side of the web which is barely that dark, they believe.

Worth to hear all until the end.

Discussion

01:14 – Scott Hanselman Introduction

Community Program Manager for Web Tools at MicrosoftAzure and Web ToolsASP.NET Runtime

03:17 – Microsoft and JavaScript

Microsoft Build Developer ConferenceScott Hanselman: Angle Brackets, Curly Braces, One ASP.NET and the CloudJson.NET

13:40 – The Cost of Web Development

ToolingSublime TextVisual Studio

18:17 – Libraries and Frameworks

Knockout

24:14 – Innovation in Software

Befunge

29:48 – Apps Supporting JavaScript

Create your first Windows Store app using JavaScript (Windows)Visual Studio Express

34:14 – Windows and Internet Explorer

Chakra

40:42 – Microsoft’s Attitude Towards JavaScript

Scott Hanselman: Azure for the non-Microsoft Person – How and Why?

45:58 – Open Source

49:12 – asm.js

52:05 – Angle Brackets Conference

Benjamin Dean's curator insight, September 3, 2013 1:02 AM

Interesting, doesn't change the fact IE is my least favorite browser...but interesting.

Scoop.it!

AngularFire - A real-time backend for AngularJS from Firebase

AngularFire - A real-time backend for AngularJS from Firebase | JavaScript for Line of Business Applications | Scoop.it
AngularFire is an officially supported AngularJS binding for Firebase. Firebase is a full backend so you don't need servers to build your Angular app!

* Rapid Development
AngularFire is built to make sure you can write your app as quickly as possible. There's no backend code to write or servers to set up, just start writing your frontend code and focus on building a great experience.

* Flexible API
Choose between an easy to use implicit sync API that will automatically keep all your Angular models persisted and updated, or a more powerful explicit sync API that gives you control over when data gets synchronized.

* 3-way Data Binding
Synchronizing and persisting user or app data in realtime is a breeze with AngularFire's 3-way data binding. It's never been easier to extend Angular's quintessential 2-way data binding concept to the server.

No comment yet.
Scoop.it!

Testing Security of HTML5 WebSockets

Recently I became faced with my first Web Application Security Assessment which relied heavily on HTML5′s WebSockets.

The first clue that the application was using WebSockets was when the application kept giving me a timeout error while using my proxy of choice, Burp Suite. Looking at the HTTP requests/responses in Burp I noticed that a large JavaScript file was requested and downloaded from the server. Within this file I noticed a URL with the ws:// scheme, the WebSocket scheme.

For some reason the WebSocket handshake was not captured by Burp’s Proxy (even though the WireShark capture shows that the handshake was over HTTP), however, it can be viewed within Google Chrome’s Developer Tools and OWASP’s ZAP Proxy.


* Encryption (SSL/TLS)
* Origin
* Authentication
* Authorisation
* Input Sanitisation


Benjamin Dean's curator insight, September 3, 2013 1:13 AM

As web apps move to be more "real-time" via socket connections, this is probably a good discussion.

Scoop.it!

Modern Web Application Layered High Level Architecture with SPA, MVC, Web API, EF, Kendo UI, OData

Modern Web Application Layered High Level Architecture with SPA, MVC, Web API, EF, Kendo UI, OData | JavaScript for Line of Business Applications | Scoop.it

It’s probably important you have at least a high level picture what an SPA architecture looks like now that there is quite a bit more design work involved on the client side especially with more and more implementations are around SPA and patterns like MVVM; so hence this post. Obviously there is no such thing as one size fits all especially when it comes to architecture, so feel free to omit or add to the architecture based on your specific needs.


Client Layer (HTML5 Browser)
Model View ViewModel (MVVM) is a design pattern which helps developers separate the Model (the data) from the View (the UI). The View-Model part of MVVM is responsible for exposing the data objects from the Model in such a way that those objects are easily consumed in the View. Kendo MVVM is an implementation of the MVVM pattern which seamlessly integrates with the rest of the Kendo framework (widgets and DataSource).

 

Web Layer (Server)
Almost the entire ASP.NET MVC Web Layer can leverage the DI & IoC Pattern, you can read up on what the benefits are and how to do this download both a sample MVC app that uses MEF or Unity 3 from one of my previous post.

No comment yet.