Need advice about which tool to choose?Ask the StackShare community!

Durandal

31
36
+ 1
20
Knockout

253
201
+ 1
6
Add tool

Durandal vs KnockoutJS: What are the differences?

Durandal and KnockoutJS are both JavaScript libraries that are used for building user interfaces in web applications. However, there are several key differences between the two:

  1. Architecture: Durandal is a complete framework that follows the MVVM (Model-View-ViewModel) architectural pattern, which provides a structure for organizing code and separating concerns. On the other hand, KnockoutJS is a lightweight library that mainly focuses on providing data-binding capabilities between the UI and underlying data model.

  2. Routing: Durandal has built-in support for client-side routing, which allows for easy and seamless navigation between different views in the application. KnockoutJS, on the other hand, does not provide native routing capabilities. Developers typically rely on additional libraries or frameworks to handle routing when using KnockoutJS.

  3. Composition: Durandal emphasizes the concept of composition, where views and view models can be dynamically composed and managed. It provides a powerful system for managing modularization and reusability of components within an application. In contrast, KnockoutJS doesn't have built-in support for composition. Components are typically manually instantiated and managed by the developer.

  4. Validation: Durandal includes validation functionality out of the box, making it easier to implement and enforce validation rules on input fields and models. KnockoutJS does not provide built-in validation capabilities, requiring developers to rely on additional libraries or custom code to implement validation.

  5. Lifecycle and Events: Durandal provides a comprehensive lifecycle management system, allowing developers to easily hook into various stages of the application's lifecycle, such as activation and deactivation. It also has an event system that enables communication between different components. KnockoutJS, on the other hand, doesn't have a built-in lifecycle management system or native support for event handling.

  6. Extensibility: Durandal offers a wide range of extensibility options, allowing developers to customize and extend various aspects of the framework. It has a plugin architecture that facilitates the integration of additional functionality. KnockoutJS also supports extensibility through custom bindings, which allow developers to create their own reusable bindings, but it lacks the same level of flexibility and extensibility options provided by Durandal.

In summary, Durandal is a more comprehensive framework that provides a complete solution for building web applications with rich user interfaces. It offers features such as routing, composition, validation, lifecycle management, and extensibility out of the box. KnockoutJS, on the other hand, is a lightweight library focused on data-binding capabilities and requires additional tools or frameworks for features like routing and composition.

Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Durandal
Pros of Knockout
  • 3
    UI components
  • 3
    Easy to learn
  • 2
    Javascript
  • 2
    Free
  • 2
    Works IE8 >
  • 2
    Customizable
  • 2
    Quick to develop
  • 2
    Easy to start
  • 2
    Open source
  • 3
    Data centered application
  • 2
    Great for validations
  • 1
    Open source

Sign up to add or upvote prosMake informed product decisions

What is Durandal?

Durandal is a cross-device, cross-platform client framework written in JS and designed to make Single Page Applications (SPAs) easy to create and maintain.

What is Knockout?

It is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), it can help you implement it more simply and maintainably.

Need advice about which tool to choose?Ask the StackShare community!

Jobs that mention Durandal and Knockout as a desired skillset
What companies use Durandal?
What companies use Knockout?
Manage your open source components, licenses, and vulnerabilities
Learn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Durandal?
What tools integrate with Knockout?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to Durandal and Knockout?
Aurelia
Aurelia is a next generation JavaScript client framework that leverages simple conventions to empower your creativity.
React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
AngularJS
AngularJS lets you write client-side web applications as if you had a smarter browser. It lets you use good old HTML (or HAML, Jade and friends!) as your template language and lets you extend HTML’s syntax to express your application’s components clearly and succinctly. It automatically synchronizes data from your UI (view) with your JavaScript objects (model) through 2-way data binding.
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
See all alternatives