VirtualRendering™ is Intersoft’s state-of-the-art client rendering framework which enables WebGrid to render data rows efficiently, while at the same time delivering identical user interface as in server-side rendering.
The uniqueness of Intersoft’s rendering technology lies in its ability to perform rendering with very minimum overhead. This is made possible with sophisticated state management that automatically synchronizes its current state as user interacts with the Grid. The row is rendered based on “delta algorithm” to produce high rendering quality in superior performance.
One of the outstanding achievements of VirtualRendering™ is its small size of the client scripts required to activate the client binding feature. Unlike traditional approaches which can take almost half a megabyte, WebGrid 7 adds only as little as 60KB for data binding processing, data shaping and rendering.
The main benefit of client binding compared to the traditional server-side binding is the smaller data footprint. When operating in client-binding mode, WebGrid returns raw data in JSON format which is much more compact than the traditional HTML markup. In various tested scenarios, WebGrid has been proven to reduce data footprint consistently by over 90%.
Intersoft’s Client Data Object Framework can be illustrated as a lightweight, mini version of Microsoft’s ADO.NET Framework. Client Data Object Framework will be further called CDOF in the following section.
CDOF includes client-side implementation of DataSet, DataTable and DataView – which acts as the backbone of all client-side data operations in WebGrid. The ISDataSet and ISDataTable represent the main data object which is then used by WebGrid for further processing such as data shaping, formatting, paging and more.
The following illustration describes the overall client binding processing in WebGrid.
As shown in above illustration, WebGrid relies on CDOF to obtain finalized data shape, which is then processed further by VirtualRendering™. This unique architecture model enables clean separation between data abstraction layer and rendering layer – making it easy to be consumed by WebGrid and other WebUI Studio® family which requires client binding implementation in the future.
A new set of client-binding APIs is introduced for programmatic consumption of the feature. Most of the user interface functions and high-level encapsulation of binding process called the same underlying APIs. Please refer to WebGrid’s online documentations for complete list of new methods and client-side events.
In addition to provide solid client binding platform, Client Object Data Framework (CDOF) also enables many client-side data processing operations which were previously difficult or not possible.
The following lists the key features of client-side data processing:
It supports composite data formatting such as string, date time and number formatting and also takes account of Culture information. You can consider it as a client-side implementation of .NET Data Formatting Library.
CDOF implements high-performance client-side sorting that is capable to sort multiple columns in a fraction of seconds. The client sorting is implemented at data access level instead of UI level – enables developers to have greater control over data shaping process. The sorting feature is implemented at ISDataView class.
CDOF features comprehensive filtering support which enables developer to easily perform row filtering at data object level. The client-side filtering implements syntax that is fully compatible with server-side ADO.NET Framework’s filter expression – making it easy for .NET developers to consume client-side filtering features.
Since the data-shaping process lies in the client-side, it enables the paging to be processed in client-side as well. Client-side paging is fairly easy to be implemented at control/UI level, as long as final data shape is made available. WebGrid 7 implements client-side paging in its own process to support more comprehensive paging options such as VirtualLoad™ and Classic™ paging, as well as to gain better control over the paging process based on various data source types and scenarios.
WebGrid 7’s ClientBinding™ includes two type of data loading mode for client-based data service, regardless of the paging mode of WebGrid in User Interface level.
If your data service is designed to return all data, then you should choose AllData as the value of DataLoadMode property.
PagedData option is very useful under certain scenarios when large amount of data is used. It enables you to retrieve only partial data for the current view.
Intersoft’s ClientBinding™ introduces a unique approach which enables you to easily retrieve paged data in your data service. ClientBinding encapsulates essential select arguments into an object called DataSourceSelectArguments. This object is always passed to the parameter of your Select method, enabling developers to easily perform data selection based on the information.
When data operation – such as sorting and filtering – is performed in PagedData mode, WebGrid will send a request to the specified data service by including complete request data in the selectArguments parameter. Developers are responsible to handle the sorting, filtering and paging based on the select arguments. In addition, WebGrid will also send a SelectCount request when it needs to invalidate the paging status.
All data operations in data service are powered with a solid, provider-based architecture that is highly extensible and scalable.
Client data services that supported by WebGrid 7 such as WebService, WcfService and AstoriaDataSource inherit the same data source provider base. As a result, these data services share the same process life cycle, same events and behaviors.
For more information on the complete list of client data service, please refer to WebGrid’s online documentation about service event in WebGrid Enterprise 7.
The ability to fetch the data from any custom data source in client-side is extremely helpful in certain scenarios where you need to retrieve the data from external sites or data services which is not supported by WebGrid’s ClientBinding feature. For example, you may have a requirement to fetch data from an external site manually in the client-side, and then pass the resulted data to WebGrid via API calls for data binding.
Pure client-side binding takes as little as three lines of code, such as shown in
WebGrid accepts ISDataSet, ISDataTable or any array-based collection as data source.
Build with solid architecture, WebGrid is designed to fully support every WebGrid’s features, which includes the SmartBatchUpdate capability.
SmartBatchUpdate is a major feature introduced along with client binding in WebGrid Enterprise 7 which revolutionizes the editing experience with multiple and batch editing in client-side and process the all edited data in one single AJAX callback. This new batch update feature also supports batch update operation in data service.
WebGrid’s client-binding is enhanced to work in conjunction with the following WebGrid features:
The VirtualLoad paging and grouping capability are now enhanced to fully support Web service and WCF service. WebGrid will automatically send a new SelectGroup option in the select arguments when it attempts to perform grouping, or perform data selection in grouping conditions. This will allow developers to handle the group retrievals based on the select operation mode in the server-side and return only the groups information to the client.
The combination of VirtualLoad paging and grouping technique enables up-to 4x faster performance and more efficient resource consumption compared to ServerDataSource. This achievement is possible since developers have more granular controls over the data selection process, and in this case, selecting only the groups from the backend directly without have to process the data rows.