Book Image

Building UIs with Wijmo

By : Yuguang Zhang
Book Image

Building UIs with Wijmo

By: Yuguang Zhang

Overview of this book

Until recently, writing applications using JavaScript and HTML was difficult, because developers had to make the user interface by themselves; however, this started changing with the introduction of JavaScript libraries such as jQuery, jQuery UI, and KnockoutJS. An extension of jQuery UI, Wijmo adds features and widgets on top of jQuery UI and makes it easier to add user interface widgets to HTML documents. Building UIs with Wijmo gives you a tour of what Wijmo offers at a glance. With code recipes and well-explained examples, you will be able to use Wijmo in no time. The book gives details on options not explained in the documentation and helps you avoid those that don't work. The examples only feature the necessary code, with recommendations and best practices. This book introduces Wijmo, grouping widgets by their common application area or usage. It walks the user through the features of the dialog widget with examples as an introduction to the library. Then, widgets for forms, images, tootips, and other topics are explored. Features only available in the Wijmo dialog widget compared to the jQuery UI widget are thoroughly explained with examples. Common form components such as checkboxes, dropdowns, and inputs have Wijmo counterparts which keep the theme consistent and add functionalities. When Wijmo is used with Knockout, the UI automatically refreshes when the data changes. This book takes it further with WebSockets for two way communication between the server and client. With Building UIs with Wijmo, you will learn all the common web development components in Wijmo. You will get started using Wijmo in no time.
Table of Contents (15 chapters)

Introduction to MVVM


Modern web applications are often built with the MVC pattern, for the backend. What about the frontend? Frameworks such as Backbone.js leave a lot of boilerplate code to be written. This becomes apparent for large projects. The library is lightweight, but lacks strong abstractions. It leaves the task of loading data from the server and DOM manipulation to the developer.

With the ModelViewViewModel (MVVM) pattern, the application logic is encapsulated in a set of ViewModel classes that expose an object model that is View-friendly. Views rely on bindings to observables to be notified of changes in the ViewModel. As a result, the UI refreshes automatically with the data when using the MVVM pattern. The flow of data in the MVVM pattern is illustrated in this diagram:

From a software design point of view, the MVVM pattern has the benefit of testability, separation of concerns, and reusability. The ViewModel doesn't contain any user interface elements, making it easy to test...