Quem já desenvolveu aplicações WPF, Silverlight ou Metro style, já conhece o padrão MVVM (Model – View – View Model). Pra quem não conhece, MVVM é um padrão para separação de responsabilidades, criado em 2005 por John Gossman, um dos arquitetos do WPF e do Silverlight na Microsoft.

Knockout é uma biblioteca Javascript que facilita a criação de interfaces ricas, dinâmicas e responsivas. Sempre que você precisar que partes da sua interface mudem dinâmicamente, seja por uma ação feita pelo usuário ou mudanças de dados externos (ex. banco de dados), o Knockout pode ajudar a implementar esta funcionalidade de maneira muito fácil.

A biblioteca traz conceitos como, declarative bindings, para associar elementos do DOM ao view model de uma forma bem simples, atualização automática da interface assim que o view model é alterado, dependency tracking, para setar relações entre os dados do model, e sistema de templates. Você pode utilizar a bilioteca com qualquer tecnologia, seja server ou client-side, ela foi desenvolvida em Javascript puro, é pequena e não possui nenhuma dependência (jQuery por exemplo).

Criei um exemplo no JsFiddle.net para facilitar os testes (clique na aba “result” para rodar o código):

Para mais informações, acesse o site do Knockout. Lá você encontrará um excelente tutorial interativo.

Grande abraço e até a próxima!