What's new in 3.5

Wisej.NET 3.5 adds native support for hybrid applications running on all sorts of devices, including full offline support, and many enhancements to the .NET class library and the corresponding JavaScript widgets.

Getting Started

The latest Wisej.NET 3.5 is available on NuGet.

The Visual Studio 2019 and 2022 extension packages are linked below:

Wisej.NET Targets .NET 7

Wisej.NET 3.5 is now compiled against .NET 7. This means that existing .NET 6 projects that would like to use the latest version of 3.5 must update the target framework dependency.

Wisej.NET Hybrid and Offline Support

Wisej.NET 3.5 is now able to run on iOS, Android, and MacOS devices using the EmbedIO server in a new Wisej.NET Hybrid shell build using MAUI's native integrations.

Wisej.NET Hybrid includes three new project templates for creating applications:

Client Application

This project template is used to create a Wisej.NET Hybrid Client. The Client project builds and runs an executable (.exe, .apk, .ipa, etc.) that can be deployed on any desktop or mobile platform.

This template is based on .NET MAUI. You can interact with this project the same way you would with any other MAUI project.

Remote Application

Allows developers to build and deploy a traditional Wisej.NET application with the added ability of interacting with the Hybrid device's native functionalities.

This application is deployed to a remote web server such as IIS, Kestrel, or Nginx on Windows or Linux.

Alternatively, you can add the Wisej-3-Hybrid NuGet package to an existing Wisej.NET project.

To use native device functionalities, you must access this application through the Wisej.NET Hybrid Client Application

Local Application

Allows developers to build and deploy applications that run entirely on the Hybrid device. The project template contains similar features to the Remote application template such as a Page control.

This project needs to be linked into the Wisej.NET Hybrid Client Application to use.

API and Component Enhancements

In 3.5 we also focused on extending the programming side of Wisej.NET with a number of enhancements to the object model, data a binding, the various components.

New Features

  • ListViewItem gained the new Visible property. It allows the application to hide items without having to remove and add them back to the Items collection.

  • All controls that show a label gained a new AutoToolTip property. When set to true and the text is truncated, it will automatically use the title attribute to show the full label as a native tooltip.

  • The Validation extender now supports the IDataErrorInfo interface and data binding. We also added the Enabled property to the base ValidationRule class to allow the code to disable a specific validation rule without removing it from the Validation extender.

  • DataGridView exposes the CreateSummaryRow, CreateDataBoundColumn, and CreateDataGridViewColumnFromType methods as public virtual to allow an application to customize the grid's inner behavior and fully control the automatica creation of rows and columns.

  • The ErrorProvider extender allows a derived class to override its methods and fires the new ErrorChanged event to allow an application to customize error message and icons in a single location.

  • TextBox.Text now converts all \n to \r\n when Multiline is true. Previously Wisej.NET allowed the browser to strip \r\n and instead return only \n as a new line.

New Constructors

Most controls have gained several new constructors, some with optional and default arguments, that allow developers to use the controls in code adopting a more flexible and easier syntax:

// Previous syntax.
var button1 = new Button
{
    Text = "Click Me",
    Size = new Size(100, 24),
    Location = new Point(10, 10)
});
button1.Click += (s, e) => { AlertBox.Show("Clicked!"); };
this.Controls.Add(button1);

// New syntax.
this.Controls.Add(
    new Button(
        "Click Me",
        new Point(10, 10),
        new Size(100, 24),
        (s, e) => { AlertBox.Show("Clicked!"); })
);

Common Method Chaining

All basic methods in Control now return this to allow code to chain calls:

this.textBox1.Show().CenterToParent().BringToFront();

Bootstrap Dark Theme

Wisej.NET 3.5 includes a new theme for building dark-style applications. The new Bootstrap Dark theme (BootstrapDark-4) is based on the existing Bootstrap-4 light theme.

New Extensions

Chat Control

The new Chat control can be used to build conversations into an existing Wisej.NET application. The new chat control supports text and custom message types, allowing users to share any type of control or data in the conversation.

Get the Wisej.NET Chat Control

Signature Control

The new Signature control can be used to collect and export user signatures. The control includes undo, redo, image import/export, and line customization features.

Get the Signature Control

See documentation: https://docs.wisej.com/extensions/extensions/signature

Pull-to-Refresh Component

The new Pull to Refresh component can be used to trigger a refresh of a data source associated with a scrollable panel. All containers inheriting from ScrollablePanel support the Pull-to-Refresh component.

Get the Pull-to-Refresh Component

TesseractJS Component

The new TesseractJS component allows developers to add real-time OCR scanning to the Wisej.Web.Ext.Camera control.

Get the TesseractJS Component

New Premium Extensions

Dynamsoft Barcode & Scanning Premium Extension

The new Dynamsoft Barcode & Scanning premium extension gives developers an enterprise-ready option for barcode scanning and text (OCR) scanning on the web.

Developers are required to purchase the following licenses from Dynamsoft:

  • Dynamsoft Barcode Reader – JavaScript Web SDK

  • Dynamsoft Document Normalizer – JavaScript Web SDK

Mobiscroll Premium Extension

The new Mobiscroll premium extension gives developers a suite of mobile-friendly controls and components to use in Wisej.NET applications.

Developers are required to purchase a license from Mobiscroll for use of any components. The Wisej.NET integration uses the Mobiscroll JavaScript integration.

Last updated