Stability and feature consolidation are at the core of the 2.1 release, available now.

DataRepeater Control

A data-bindable container that can repeat unlimited virtual custom panels bound to the current record.

The new DataRepeater container is a sort of a custom data grid. Instead of rows it repeats a template panel containing child controls in any layout. Child controls are automatically data-bound to the current record.

The infrastructure is virtual, which means that the DataRepeater only creates the visible panels and updates the controls as the user scrolls them into view, allowing the management of an unlimited numbers of records.

Shape Control

An all-purpose shape control that can represent simple shapes with different styles.

Use the Shape control to frame content, including images, and to handle the four borders of a plain DIV tag.

It lets you rotate the item, display circles, ovals, rectangles, and triangles using a simple data-bindable all-purpose control.

Labels

All editors have a new Label property. It adds a responsive, localizable and themeable label next to the editor.

The Label supports 5 positions: top, left, bottom, right and inside (this is the material style that shrinks the label when there is content).
The size of the inner label and the inner editor can be set to proportional, fixed, or auto-sized. All the properties can automatically change according to the device profile (e.g. the label can be on top for mobile devices, and on the left for the desktop). Supports mnemonics focus, colors, and many other features.

TimeUpDown Control

This is a new simple time editor, based on the UpDownBase class.

This is a new editor similar to the existing DomainUpDown and NumericUpDown. Handles a TimeSpan value in different localized formats. Supports minimum and maximum values, it’s bindable, nullable, and supports the quick increase of the time part under the cursor using the arrow keys.

Weak Events

Weak events can prevent accidental memory leaks.

We have changed all the static events exposed by the Application class to weak events. This new approach (also present in the WPF platform) prevents the source of the static event from holding on the instance handler. It will prevent applications from accidentally leaking memory when attaching to static events exposed by Wisej.

TabOrderManager

Automatic TabIndex generator.

This new extender component (drop it on a design surface to use it) adds a new property “TabOrder” to all containers. Supports 3 options: Default, AcrossFirst and DownFirst.

Once set, the TabIndex of all the children is set automatically, and it’s updated automatically when adding or removing children.

VirtualScroll Prefetch

Prefetches items outside of the visible area.

All controls that supports the VirtualScroll mode (TreeView, ComboBox, ListBox, ListView and DataRepeater) now have a new PrefetchItems property allowing the pre-loading of the items outside of the visible area to support smoother scrolling.

Infinite Sessions

Allows user sessions to survive closing the browser.

A new setting in Default.json (sessionStorage: “local” | “session”, the default is “session”) allows the Wisej app to select the browser’s local storage (“local”) to store the session id. When coupled with a longer or unlimited session timeout allows a user to reopen the browser, or the Wisej desktop executable, and find their work exactly where they left it.

Impersonation

Use the user's Windows credentials on the server.

Set impersonate:true in Default.json to impersonate the user on the server. Works with any Windows authentication system (including Kerberos).

You can access external resources, (e.g. Database) using the user’s credentials. In your Wisej application, you can use Environment.UserName as if the app was running locally.

Sounds

Play system and custom sounds.

We always had this.Beep() when adding using Wisej.Web.VisualBasic to include the VB.NET extensions.

Now we added a more intuitive Application.Play (MessageBoxIcon) to play system sounds, and Application.Play(url) to play custom sounds, including embedded data URLs.

Writable Themes

Modify, clone or create themes programmatically in C# or VB.NET.

This new feature allows your application to modify any Wisej theme at runtime by code. You can create themes on the fly for each specific user, or modify the global theme (shared by all users).