KnockoutJS là một thư viện JavaScript giúp việc lập trình ứng dụng nghiệp vụ trên web đơn giản và dễ kiểm soát.

Ứng dụng nghiệp vụ là ứng dụng thường có giao diện thêm mới – sửa – xóa – tìm kiếm, master – detail phức tạp. Trước đây ứng dụng này thường được viết trên Desktop sử dụng công nghệ Windows Form, WPF, JavaSwing, MFC…Một vài năm trở lại đây, nhiều ứng dụng nghiệp vụ sử dụng công nghệ SilverLight RIA để có thể chạy trên nhiều loại browser, đảm bảo khả năng tạo giao diện thao tác dữ liệu cầu kỳ.

Học lập trình web bằng JavaScript

Sự phổ biến của thiết bị mobile, khiến cho việc phát triển ứng dụng nghiệp vụ thuần túy trên desktop hay mô hình RIA ~ Rich Internet Application không còn theo kịp tốc độ phát triển. Xu hướng Responsive Design thúc đẩy các nhà phát triển viết ứng dụng web tương thích với nhiều thiết bị. Nhu cầu tạo ứng dụng nghiệp vụ web chạy mượt mà, tinh tế như ứng dụng chạy trên Desktop ngày một cấp bách. Các công ty có xu hướng chuyển sang HTML5 với tính năng mạnh mẽ. Tuy nhiên JavaScript, ngôn ngữ đồng hành với HTML, vẫn không có nhiều cải tiến. Nó vẫn là ngôn ngữ kịch bản, mềm dẻo, nhưng khó quản lý, gỡ rỗi. Đặc biệt việc thao tác với các phần tử DOM ~ thẻ HTML chưa thể so sánh về mức độ dễ dàng – chặt chẽ như cách lập trình viên desktop lập trình C# tương tác với các control trên form. jQuery với cách thức chọn lựa (select) các phần tử HTML dễ dàng đã tiến một bước dài, giúp lập trình viên đỡ cực nhọc hơn.

KnockoutJS giúp lập trình viên thực hiện các kỹ thuật cao cấp hơn như binding dữ liệu, cập nhật dữ liệu dựa vào thao tác người dùng, từ trường này tự động sang các trường liên quan, KO (Key Observing – quan sát sự thay đổi theo key).

Một số tính năng nổi bật của KnockoutJS:

  1. Theo dõi tự động sự phụ thuộc trường này vào trường khác. Tự động cập nhật đúng phần giao diện cần thiết khi có một sự thay đổi trên phần tử đang được theo dõi.
  2. Khai báo ràng buộc dữ liệu với giao diện, declarative bindings.
  3. Lập trình mở rộng, hay bổ xung cách thức theo dõi thay đổi, hoặc ràng buộc để tạo giao diện ứng dụng nghiệp vụ theo ý đồ lập trình