JavaScript for Li...
Follow
Find tag "mvc"
229.2K views | +485 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...
Scoop.it!

Facebook: MVC Does Not Scale, Use Flux Instead

Facebook: MVC Does Not Scale, Use Flux Instead | JavaScript for Line of Business Applications | Scoop.it

Facebook came to the conclusion that MVC does not scale up for their needs and has decided to use a different pattern instead: Flux.

The complexity of the system went exponential every time they attempted to add a new feature making the code “fragile and unpredictable.” This was becoming a serious problem for developers new to a certain codebase because they were afraid to touch the code lest they might break something. The result was MVC was falling apart for Facebook.

A fix for this problem required to “structure the code in a way that makes it more predictable.” This has been done with Flux and React. Flux is a system architecture that promotes single directional data flow through an application. According to Occhino, React is a JavaScript framework for building “predictable” and “declarative” web user interfaces that has enabled Facebook to move faster in developing web applications.

Jan Hesse's insight:

http://facebook.github.io/react/docs/flux-overview.html

more...
No comment yet.
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

more...
No comment yet.
Scoop.it!

Intercooler.JS - The Javascript-optional AJAX library

Intercooler.JS - The Javascript-optional AJAX library | JavaScript for Line of Business Applications | Scoop.it

Intercooler is a Partial View Controller framework that allows you to add AJAX to your application with declarative HTML5-style bindings and REST-ful URLs, giving web applications a richer UX with a minimum of code.

Rather than expecting JSON responses it expects fragments of HTML (i.e. Partial Views), which are then loaded into the DOM directly.

* Scaleable

* Declarative

* Automatic Dependency Detection

* Framework Agnostic

* Bootstrap Friendly

* Open

more...
No comment yet.
Scoop.it!

jide.js - Modern Javascript and HTML5 based UI control toolkit

jide.js - Modern Javascript and HTML5 based UI control toolkit | JavaScript for Line of Business Applications | Scoop.it

jide.js is an open source, MIT licensed, Javascript toolkit for developing rich, modern web applications. It features various powerful UI controls and is built around the concept of properties and data binding and enables highly efficient programming.

jide.js uses the AMD format and can be used with any AMD compatible loader such as require.js but also supports Browserify. Don't worry if you don't know what that means, we've prepared a short introduction for you.

jide.js is currently in beta state. This means that it is neither feature complete nor without bugs and that its APIs can change when necessary.

more...
No comment yet.
Scoop.it!

SegregatedDOM

SegregatedDOM | JavaScript for Line of Business Applications | Scoop.it

Single-page web applications often turn into jQuery soup, where application logic, DOM manipulation, and server access are all mixed together. This mixing of concerns makes such applications harder to understand and test than they ought to be. Segregated DOM is a modularization tactic that separates all manipulation of the DOM into dedicated JavaScript objects.


The principal benefit of doing this is to make it easier to reason about each class by keeping it focused on a single task. When I'm working on the Filter DOM class, I concentrate on how to do the DOM manipulations on the HTML elements. When I work on the controller I can ignore the details of the HTML structure, css class names, and the like.

In more abstract pattern terms, these DOM objects act as Gateways, a passage between two BoundedContexts (the application and the HTML DOM). Like any gateway the DOM object has an interface that speaks the vocabulary of its client (the application) and an implementation that translates this into the barbaric (HTML DOM) land beyond.


more...
Goran Peoski's curator insight, February 3, 2:17 AM

add your insight. ..

Scoop.it!

A Beginner's Guide for Creating Single Page Applications using Backbone.js and Marionette.js

A Beginner's Guide for Creating Single Page Applications using Backbone.js and Marionette.js | JavaScript for Line of Business Applications | Scoop.it

Backbone.js is a lightweight framework that let us create single page applications in a structured manner. It is based on the Model-View-Controller (MVC) pattern. It is best suited for creating single page applications using a RESTful service for persisting the data. 

Marionette.js is a composite application library built on top of backbone.js and it allows us to build large scale javascript single page application. Backbone.js does not enforce the use of strict MVC pattern but backbone marionette enforces the use of strict MVC pattern. marionette also provides us View classes that we can create and extend simple view, collection views and composite views. It also gives us the possibility of creating Controller classes and eventing mechanism across the application.

more...
No comment yet.
Scoop.it!

ASP.NET - Single-Page Applications: Build Modern, Responsive Web Apps with ASP.NET

ASP.NET - Single-Page Applications: Build Modern, Responsive Web Apps with ASP.NET | JavaScript for Line of Business Applications | Scoop.it

Single-Page Applications (SPAs) are Web apps that load a single HTML page and dynamically update that page as the user interacts with the app.

SPAs use AJAX and HTML5 to create fluid and responsive Web apps, without constant page reloads. However, this means much of the work happens on the client side, in JavaScript. For the traditional ASP.NET developer, it can be difficult to make the leap. Luckily, there are many open source JavaScript frameworks that make it easier to create SPAs.

In this article, I’ll walk through creating a simple SPA app. Along the way, I’ll introduce some fundamental concepts for building SPAs, including the Model-View-Controller (MVC) and Model-View-ViewModel (MVVM) patterns, data binding and routing.

more...
JonahHayes's comment, November 12, 2013 1:57 AM
Single-Page Applications (SPAs) are Web apps that load a single HTML page and dynamically update that page as the user interacts with the app.
JonahHayes's curator insight, November 12, 2013 1:57 AM

Single-Page Applications (SPAs) are Web apps that load a single HTML page and dynamically update that page as the user interacts with the app.

Scoop.it!

ExtJS 4 MVC Application Architecture

Post with online demo about ExtJS 4 MVC application architecture.

The missing code to Senchas Docs!

more...
No comment yet.
Scoop.it!

Monocle - Amazing MVC Applications.

Monocle - Amazing MVC Applications. | JavaScript for Line of Business Applications | Scoop.it
A framework for developers who want to design, build and share cross device applications.

I can give you a simple and powerful structure to make the most of your web applications. An application consists of three work contexts: Model, View and Controller, developers usually call it the MVC pattern. These three contexts are equally important and each has its full integrity giving responsibility to your application.

more...
No comment yet.
Scoop.it!

Accessors vs Dirty-checking in Javascript Frameworks

Accessors vs Dirty-checking in Javascript Frameworks | JavaScript for Line of Business Applications | Scoop.it

One of the many ways in which EmberJS, AngularJS, and BackboneJS differ is in how they treat their models. AngularJS uses dirty checking on Plain Old Javascript Objects (POJSO); whereas EmberJS and BackboneJS both use accessors (getters and setters) on wrapped objects.

We will be exploring the ways in which these two approaches differ, and the implications these differences have when it comes to choosing which Javascript framework we we should write our single page apps in.

Most Javascript frameworks for front end user interfaces used to build single page applications (SPAs) use MV* architectures, and a feature that most of them have in common is the ability for the View to update the Model, and for the Model to update the View.

For this to happen, there needs to be to be a means to “listen” for these changes, and then trigger some code to respond to that change. One call this “Two-way Data Binding”.

more...
No comment yet.
Scoop.it!

JavaScript MVC Framework Comparison

JavaScript MVC Framework Comparison | JavaScript for Line of Business Applications | Scoop.it

Javascript is emerging as a prominent development language in past few years. It has been increasingly adopted in various web based projects. It is also used to develop hybrid mobile applications. However, a common concern in the adoption of Javascript as a development languages has been the maintenance of  Javascript code in larger teams. Over the years, in order to improve code maintainability, separation of concerns using MVC pattern has been used. A lot of Javascript frameworks have emerged which have provided a means to enforce MVC pattern in Javascripe code as well. In this post, I will discuss top MVC frameworks and their pros and cons.

Jan Hesse's insight:

if you like bulleted lists, this one gets your attention

more...
No comment yet.
Scoop.it!

Much Very Confused; Ember for the inappropriately experienced

Much Very Confused; Ember for the inappropriately experienced | JavaScript for Line of Business Applications | Scoop.it

Our preconceived notions of MVC can prevent us from understanding and taking full advantage of a framework such as Ember. I propose a better way to transfer knowledge from one framework to another.

This is the screencast version of a talk I gave at the June EmberATX meetup.

more...
No comment yet.
Scoop.it!

Sails.js | Realtime MVC Framework for Node.js

Sails.js | Realtime MVC Framework for Node.js | JavaScript for Line of Business Applications | Scoop.it

Sails.js make it easy to build custom, enterprise-grade Node.js apps. It is designed to mimic the MVC pattern of frameworks like Ruby on Rails, but with support for the requirements of modern apps: data-driven APIs with scalable, service-oriented architecture. It's especially good for building chat, realtime dashboards, or multiplayer games.

more...
No comment yet.
Scoop.it!

MVC way to introduce Sails.js - node.js framework

introduce Sails.js in MVC way, we all know MVC for web development, let looking for Sails.js for Node.js Web application MVC infrastructure and development.
more...
No comment yet.
Scoop.it!

Ruby on Rails MVC is not the same as Ember.js MVC

Ruby on Rails MVC is not the same as Ember.js MVC | JavaScript for Line of Business Applications | Scoop.it

One of the most confusing parts for people coming from Rails (or any other backend web application framework) it’s that what Ember.js calls MVC is very different to what other frameworks call MVC.

To understand what MVC is in both frameworks I recommend watching Yehuda Katz presentation: A tale of two MVC’s.

Instead of talking about MVC, Yehuda proposes an unified model for GUI programming which is composed by a series of steps and then explains how different frameworks handle each step.

The following are the steps mention by Yehuda and the components in charge of each in both Ruby on Rails and Ember.js...

Jan Hesse's insight:

http://blog.abuiles.com/blog/2014/01/31/getting-started-with-ember-and-ruby-on-rails-using-ember-appkit-rails/

http://blog.abuiles.com/blog/2014/02/07/building-an-app-for-my-mom-with-ember-appkit-rails/

http://blog.abuiles.com/blog/2014/02/21/router-routes-and-templates

http://blog.abuiles.com/blog/2014/04/14/handling-errors-in-ember-dot-js-and-ruby-on-rails/

more...
No comment yet.
Scoop.it!

On "The Future of JavaScript MVC Frameworks"

On "The Future of JavaScript MVC Frameworks" | JavaScript for Line of Business Applications | Scoop.it

This entry is a sort of "part 2" to my previous entry React Demystified. Now that I understand React better, I want to take a closer look at the blog post that motivated this quest to begin with, The Future of JavaScript MVC Frameworks. That entry advocates a vision for what MVC's of the future will look like in JavaScript, and is accompanied by some strong benchmark numbers.

The article's overall argument is that the design/architecture of most JavaScript MVC libraries today makes them slow. While they can be optimized to improve performance, a much better approach (according to the article) is to change the design of the MVC library to something that is inherently faster; a design where the optimizations fall out of the design "for free". A design that is fast by default. This is the claim that I want to take a deeper look at and evaluate in detail.

I want to go deeper because the form of the argument -- the idea that a fundamentally different design can render a lot of busy-work obsolete -- is one that resonates with me. But there are a lot of aspects of this that are all mashed together a bit in the article, so I want to break them apart and look at them one by one.

more...
No comment yet.
Scoop.it!

Choosing a JavaScript MVC Framework

Choosing a JavaScript MVC Framework | JavaScript for Line of Business Applications | Scoop.it

So you love the way single-page apps like Gmail and Trello feel, but aren’t sure where to start.  Maybe your JavaScript code has become disorganized enough that you are convinced to try one of the numerous  JavaScript MVC libraries/frameworks on your next project but aren’t sure which one to choose.  I’m writing  a book on single-page apps so I’ve pretty much “read the internet” on the topic.  I’ll attempt to provide some not so obvious insights to help you make your decision.

The frameworks discussed are the ones with the most traction at present AngularJS, Backbone, Ember, and Knockout.  Batman, CANjs, Meteor, and Spine are also mentioned but not covered in-depth.

Each project is examined from several different perspectives including community, leadership, maturity, size, dependencies, interoperability, inspiration, philosophy, and features.

more...
No comment yet.
Scoop.it!

The Future of JavaScript MVC Frameworks

The Future of JavaScript MVC Frameworks | JavaScript for Line of Business Applications | Scoop.it

We've known this for some time over here in the ClojureScript corner of the world - all of our collections are immutable and modeled directly on the original Clojure versions written in Java. Modern JavaScript engines have now been tuned to the point that it's no longer uncommon to see collection performance within 2.5X of the Java Virtual Machine.

Wait, wait, wait. What does the performance of persistent data structures have to do with the future of JavaScript MVCs?

A whole lot.

more...
No comment yet.
Scoop.it!

Mojo.js - Modular Isomorphic MV+ JavaScript Framework

Mojo.js - Modular Isomorphic MV+ JavaScript Framework | JavaScript for Line of Business Applications | Scoop.it

Mojo.js (alpha) is a JavaScript framework for building Single Page Applications, or static websites in Node.js. It's inspired by Angular.js, Derby.js, Knockout.js, Meteor.js, Ember.js, jQuery, Backbone.js, and many other JavaScript, and non-JavaScript frameworks. Much of the design was inspired by Backbone.js, and Node.js. The core is small, while third-party modules allow you to customize Mojo depending on your requirements. Mojo was built initially to phase out old code, and itself - hence the modularity. The philosophy behind Mojo is to allow you to build on top of your old code base, and slowly strangle out your old application until you have a new, highly maintainable application.

more...
No comment yet.
Scoop.it!

tupai.js — Minimal and Flexible JavaScript MVC Framework.

tupai.js — Minimal and Flexible JavaScript MVC Framework. | JavaScript for Line of Business Applications | Scoop.it
tupai.js is a minimal and flexible JavaScript MVC framework.
providing a robust set of features for building single and multi-pages.
more...
No comment yet.
Scoop.it!

Scaling Isomorphic Javascript Code

Scaling Isomorphic Javascript Code | JavaScript for Line of Business Applications | Scoop.it

Design patterns are the bread and butter of application development. They encapsulate and outline the concerns of the application and the environment of the in which it exists. Between the browser and the server these concerns can vary widely:
* Is the view ephemeral (e.g. on the server) or long-lived (e.g. in the browser)?
* Is the view reusable across different use-cases or scenarios?
* Should the view be annotated with application-specific tags or markup?
* Where should the bulk of the business logic reside? (in the model? in the controller?)
* How is the application state persisted or accessed?
Lets explore some of the existing patterns and how they answer these questions:
* Model-View-Controller
* Model2
* Model-View Presenter and Model-View-ViewModel
* Modern Javascript Implementations
* Real-time Implications
* tl;dr? Introducing Resource-View-Presenter
* Conclusion

more...
No comment yet.
Scoop.it!

Developing, Architecting and Testing Web Applications with MVC5, Web API 2, KnockoutJS, Ninject and NUnit

Developing, Architecting and Testing Web Applications with MVC5, Web API 2, KnockoutJS, Ninject and NUnit | JavaScript for Line of Business Applications | Scoop.it

The goal of this article is to walk through a sample Customer Maintenance web application that implements the latest technology from the Microsoft stack, including the latest beta versions of Microsoft .NET 4.5.1, Visual Studio Express 2013, MVC5, WebAPI 2 and Entity Framework 6. 

Throughout this article various design patterns and techniques will be implemented to help foster a loosely coupleddesign that promotes the Separation of Concerns (SoC) through the various layers of an n-tier web application. Overall the implementation of this sample application is a variation of my previous Code Project article MVC Techniques with jQuery, JSON, Knockout, and C#. 

more...
No comment yet.
Scoop.it!

Comparison of Architecture presentation patterns MVP(SC),MVP(PV),PM,MVVM and MVC

Comparison of Architecture presentation patterns MVP(SC),MVP(PV),PM,MVVM and MVC | JavaScript for Line of Business Applications | Scoop.it

This article will compare four important architecture presentation patterns i.e. MVP(SC),MVP(PV),PM,MVVM and MVC. Many developers are confused around what is the difference between these patterns and when should we use what. This article will first kick start with a background and explain different types of presentation patterns. We will then move ahead discussing about the state , logic and synchronization issues. Finally we will go in detail of each pattern and conclude how they differ from each other.

more...
No comment yet.
Scoop.it!

Model Associations in Sencha Touch (and ExtJS) made easy! Real life example.

Model Associations in Sencha Touch (and ExtJS) made easy! Real life example. | JavaScript for Line of Business Applications | Scoop.it

Using Model associations in Sencha Touch and ExtJS components can be tricky. Especially when loading store data from a REST backend the associations that are defined on the model are not instantiated and usable in components. This article demonstrates the use of our BaseModel class which fixes this problem and makes using model associations a breeze.

Luckily the data layer of Sencha Touch (and ExtJS) allows us to structure the application’s data very robustly. There are however a couple of things that can be a bit involved when working with associated data in Sencha Touch and ExtJS. This means that, in a typical application, the application’s controllers handle most model relationship functionalities. We think model associations are a crucial part of the data layer and should be transparently handled by the Model layer itself once it is properly set up.

more...
No comment yet.
Scoop.it!

A sample real-time web application using Ember.js, REST API, and SignalR

A sample real-time web application using Ember.js, REST API, and SignalR | JavaScript for Line of Business Applications | Scoop.it

Ember.js is a powerful JavaScript MVC framework to create complex web applications that eliminates boilerplate and provides a standard application architecture, it supports UI Bindings, Composed Views, Web Presentation Layers, and plays nicely with others. In order to create a real-time interaction web application, I add a SignalR hub and REST service with ASP.NET MVC.

more...
No comment yet.