Skip to content

Releases: Xomega-Net/XomegaFramework

v4.4.2 - WCF and Syncfusion fixes

12 Apr 00:09

Choose a tag to compare

Release 4.4.2 contains several bug fixes for WCF, Blazor and Syncfusion as follows.

Xomega.Framework

Bug fixes

  • Added WCF support (DataContract/DataMember) to the new DTO classes SearchCriteria and SortField.
  • Updated JWT dependency to use new Microsoft.IdentityModel.JsonWebTokens without vulnerable dependencies.

Xomega.Framework.Blazor

Bug fixes

  • Layout fix for buttons in CriteriaEdit component.

Xomega.Syncfusion.Blazor

Bug fixes

  • Updated Syncfusion package dependency to the latest version 33.1.44

Full Changelog: v4.4.1...v4.4.2

v4.4.1 - Framework and Blazor fixes

31 Aug 23:38

Choose a tag to compare

Release 4.4.1 contains several bug fixes and enhancements in the core framework and Blazor components as follows.

Xomega.Framework

Enhancements

  • Allowed customizing when to reload details views on child events.

Bug fixes

  • Prevented computed values from marking objects as modified.
  • Prevented reloading details views for new or modified objects.

Xomega.Framework.Blazor

Bug fixes

  • Fixed Errors card layout with gutters in parent row.
  • Fixed display of XNumericBox bound to non-editable property.
  • Fixed division by 0 in BreakpointWidths caused by bad params.
  • Handling some disposing errors when Blazor circuit is killed.

Full Changelog: v4.4.0...v4.4.1

v4.4.0 - Server-side paging and new criteria framework

30 Apr 02:54

Choose a tag to compare

Release 4.4.0 adds support for server-side paging and sorting, limiting results without server paging and redesign of the criteria framework.

It also includes a number of smaller enhancements and fixes, as outlined below.

Xomega.Framework

Enhancements

  • Support for server-side paging and sorting and limiting results without it.

    • Added base SearchCriteria class with paging and sorting for criteria DTOs.
    • Added TotalCount to the Output to allow returning total rows for server paging.
    • Added BaseService methods AddSortClause, AddSkipTake and GetTotalAsync.
    • Added ability to limit results returned from service calls without server paging.
    • Updated DataListObject to manage current page, page size and total count.
    • Updated RestApiClient to handle base search criteria and sort fields.
  • Services using criteria can now group values with operator for each field.

    • Added FieldCriteria<T> to pass criteria fields with an operator in DTOs.
    • Added BaseService.AddCriteriaClause to add FieldCriteria in services.
    • Added FieldCriteria conversion from CriteriaObject and RestApiClient.
  • UI criteria fields can now be added dynamically and edited individually.

    • Added CriteriaPropertyGroup to group operator and value properties for the same field.
    • Added CriteriaEditObject for separate editing of criteria property groups.
    • Added CriteriaObject.FieldSelectorProperty for selecting criteria property group to edit.
    • Added CriteriaObject.FieldEditObject for editing the selected criteria property group.
    • Implemented range validations for first and second criteria values.
  • Applied criteria have been redesigned and improved.

    • Added FieldCriteriaDisplay instead of FieldCriteriaSetting to improve criteria display. [⚠️Breaking!]
    • Allowed preserving applied criteria on reload and server paging.

Minor changes

  • Added support for async property change events to data objects.
  • Added support for async collection change events to data list objects.
  • Added DataProperty.Clone, updated CopyFrom in the various properties to copy additional settings.
  • Added async versions of Reset functions to properties, data objects and view models.
  • Added DataObject.ResetName to allow overriding the name for the ResetAction.
  • Refactored all criteria UI classes to be in the Xomega.Framework.Criteria namespace/folder.
  • Added additional base resources for action names, validations, etc.

Bug fixes

  • Fixed exception in ComputedBinding for when the property in expression is null.
  • Added space-trimming support to lookup tables

Xomega.Framework.Blazor

Enhancements

  • Updated XGrid and Page to use current page, page size and total count from the bound DataListObject.
  • Updated XGrid to make changing sorting with server-side paging make a server call.
  • Added components for editing and displaying UI criteria fields.
    • Added CriteriaDisplay component for showing FieldCriteriaDisplay for the dynamic criteria properties.
    • Added CriteriaSummary component for showing FieldCriteriaDisplay for AppliedCriteria.
    • Removed the old Criteria component based on FieldCriteriaSetting. [⚠️Breaking!]
    • Added CriteriaEdit component for editing Criteria.FieldEditObject.
  • Added support for Bootstrap popovers.

Minor changes

  • Compacted layout of the Errors components.
  • Fixed updates of select-based components (XSelect, XPickList) by using standard multi-select support.
    • Removed custom xfk.getSelectedValues Javascript function.
  • Updated components to allow changing AccessKey dynamically.
  • Added XActionComponent.Link for link action buttons.
  • Added support for Class to XDataText.
  • Refactored CriteriaBar to extend CriteriaSummary and allow expanding criteria panel from the latter.

Xomega.Framework.Wpf

Enhancements

  • Updated WPFSearchView to use GetCriteriaDisplays for AppliedCriteria.
  • Added async action to the RelayCommand.

Minor changes

  • Changed target framework net6.0-windows to net8.0-windows, as the former is out of support.
  • Added some generic converters to support AppliedCriteriaPanel.
  • Refactored existing converters, moved them to the Xomega.Framework.Wpf.Converters namespace.

Xomega.Framework.Web

Enhancements

  • Updated WebSearchView to use GetCriteriaDisplays for AppliedCriteria.

Xomega.Syncfusion.Blazor

Enhancements

  • Updated XSfGrid to support server-side paging and sorting.

Minor changes

  • Updated XSfActionButton to allow changing AccessKey dynamically.
  • Fixed page changing in the XSfGrid.

v4.3.1 - ITokenService enhancements

18 Dec 04:06

Choose a tag to compare

Release 4.3.1 provides minor token service enhancements and version bumps for dependencies.

Xomega Framework

Enhancements

  • Added CurrentError to ITokenService and JwtTokenService for session expiration error.
  • Updated EnumBoolProperty to be case-insensitive when setting a bool value.

Minor changes

  • Updated versions of the System.Text.Json dependency to avoid versions with vulnerabilities.

Xomega Blazor

Minor changes

  • Set net8.0 as the target framework.
  • Updated versions of dependencies based on the new target framework.

Xomega Syncfusion Blazor

Minor changes

  • Set net8.0 as the target framework.

v4.3.0 - .NET 8 and secure REST API client framework

27 Feb 04:29

Choose a tag to compare

Release 4.3.0 focuses on support of .NET 8 for Blazor apps, including a full-fledged framework for secure REST API clients, as well as a number of minor enhancements and fixes.

Xomega Framework

Enhancements

  • Full-fledged framework for secure REST API clients.
    • HttpServiceClient replaced by RestApiClient.
    • RestApiClient reads response as a string now, as not all streams can check the Length.
    • Extension method AddRestServices for easily adding and configuring REST client services.
    • New AuthToken class for a combination of an access token and a refresh token.
    • New AuthorizationMessageHandler for calling secure REST APIs.
    • New ITokenService and JwtTokenService for managing JWT tokens on the client.
    • Common configuration options RestApiConfig for REST API clients, including authorization.
    • PathPrefixMessageHandler to configure a prefix for calling all REST API endpoints.
  • Common IPrincipalConverter interface for transferring auth state to the client.

Minor changes

  • Updated ViewModel to disallow duplicate activation only if parameters are the same.

Xomega ASP.NET Core

Enhancements

  • UseGeneralRoutePrefix extension method to support prefixing paths for all API endpoints.
  • PersistingAuthStateProvider for Blazor Server with options for revalidation.

Breaking changes

  • Removed dependency on NavigationManager from SignInManager.
  • JwtAuthController replaced TokenAuthController for JWT auth.

Xomega Blazor

Enhancements

  • Implemented PrincipalAuthStateProvider as IPrincipalProvider.
  • New PersistedAuthStateProvider for WebAssembly auth state.

Minor changes

  • Updated BlazorView to always activate even without ActivateFromQuery flag set.
  • Updated Errors component and Blazor views support for Bootstrap 5.2 and up.

Bug fixes

  • Fixed activation of Blazor Server views to work around multiple calls.

Xomega Syncfusion Blazor

Enhancements

  • Updated Syncfusion components to allow showing validation errors under the fields rather than in a tooltip.
  • Added global UseTooltipForValidationErrors config parameter for backward compatibility. The default value is false.

Xomega WCF

Minor changes

  • Used TryAdd for AddWcfServices and AddWcfClientServices to not require registration order.

Xomega WPF

Minor changes

  • Added a virtual OnViewEventsAsync to the WPFView for async view events.

v4.2.1 Minor enhancements and Syncfusion fixes

21 Jun 05:18

Choose a tag to compare

Release 4.2.1 adds minor framework enhancements and fixes to Syncfusion grid component, as follows.

Xomega Framework

Enhancements

  • Added support for complex keys for list selection in search and details views. (#22)

Xomega Syncfusion Blazor

Breaking changes

  • Updated the Xomega.Syncfusion.Blazor package to use Syncfusion.Blazor.Grid version 21.2.9 with the latest fixes.

Bug fixes

  • Fixed an issue where clicking Update on XSfGrid after adding a row clears all rows. (#13)
  • Fixed the missing right border on a XSfGrid column grouping. (#14)
  • Fixed filtering of enumerated columns in XSfGrid using FilterType.Menu. (#16)
  • Added workaround for filtering of text columns in XSfGrid using FilterType.Menu. (#15)

v4.2.0 Blazor and Syncfusion enhancements

14 Jan 04:38

Choose a tag to compare

Release 4.2.0 adds certain enhancements and fixes to the Blazor and Syncfusion components, as follows.

Xomega Framework

Breaking changes

  • Updated ViewModel to propagate property change events from the child views.

Xomega Framework Blazor

With netstandard2.1 out of support, the Xomega.Framework.Blazor package now targets net6.0 and net7.0.

Enhancements

  • Added a BlazorPage base class with support for unsaved changes confirmation on top-level navigation in net7.0.
  • Added support for NavMenu to be displayed as a top-level drop-down menu in addition to a sidebar display.
  • Implemented split-menu with collapsing/drop-down for any MenuItem that has both a Href and child Items set.
  • Added default framework styles for NavMenu elements to minimize styling in the apps.
  • Added support for an access key to the XDataLabel.
  • Added support for a range slider to the XNumericBox.
  • Added Rows parameter to the XSelect.
  • Added a Fragment component to allow refreshing content components from outside.

Breaking changes

  • Used CSS isolation, requiring adding the .styles.css in addition to the xfk-blazor.css.

Bug fixes

  • Fixed XNumericBox to work with all integer properties.
  • Fixed grid column alignment for integer properties.
  • Fixed grid columns that are not bound to any data property.

Xomega Syncfusion Blazor

With netstandard2.1 out of support, the Xomega.Syncfusion.Blazor package now targets net6.0.

Enhancements

  • Added access key support to the XSfActionButton
  • Updated default cell editors for read-only columns to be XDataText or XSfDataLabel for normal and dialog edit modes.
  • Added FloatLabel parameter to support floating labels for all controls.
  • Added ValueDisplayTemplate for the XSfDropDownList, and XSfMultiSelect
  • Added filtering support using the bound property's provider to the XSfDropDownList, XSfAutoComplete, XSfComboBox, and XSfMultiSelect.
  • Enabled custom value by default for XSfAutoComplete, XSfComboBox, and XSfMultiSelect when lookup validation is off for the bound property.
  • Added Mode, ShowSelectAll, ShowDropDownIcon, and EnableGroupCheckBox parameters to the XSfMultiSelect.

Breaking changes

  • Used CSS isolation, requiring adding the .styles.css in addition to the xsf-blazor.css.
  • Updated search in XSfGrid to be based on the display format only.

Bug fixes

  • Fixed XSfNumericBox to work with all integer properties.
  • Fixed some grid classes after upgrading SfGrid to the latest version.
  • Fixed XSfGridColumn performance by avoiding multiple initializations with subscriptions.
  • Updated to some new Syncfusion async methods.
  • Fixed the drop-down in a grid's filter bar to retain the selected value.
  • Fixed XSfDatePicker to use XSfTextBox for multi-valued properties.
  • Fixed XSfDatePicker to use the format from the bound date/time property.
  • Fixed an exception in the XSfMultiSelect caused by updates to the latest version.

v4.1.0 - lookup data localization, long data type and cleanup

27 Sep 01:51

Choose a tag to compare

Release 4.1.0 adds support for lookup data localization and long data type in properties, and includes some minor fixes and cleanup, as follows.

Xomega Framework

Enhancements

  • Added localization support for lookup data.
  • Added support for computed editability in a DataListObject.
  • Added support for BigIntegerProperty for the long data type.

Breaking changes

  • Removed IsPropertyRequired and IsPropertyVisible from the DataObject.
  • Removed RestrictedString and IsRestricted from the BaseProperty.

Minor Fixes

  • Fixed OperatorProperty to only show operators with enough dependency properties.
  • Cleaned up comments, spelling and typos.
  • Fixed Messages TT generator for VS 2022.

Blazor updates for Bootstrap & Syncfusion support

15 Jul 05:20

Choose a tag to compare

Blazor and framework updates to support Bootstrap & Syncfusion components as follows.

Xomega Framework

  • Managing property metadata (modified, editable, editing) and local caches on data row level
  • Support for computed properties in data list objects
  • Support for INotifyPropertyChanged and data list object selection in the computed property expressions
  • Support for computed Editable state of a DataObject
  • Async support for pre-populating criteria objects
  • Support for action properties that are bound to action buttons
  • Support for standard action properties on list objects (search, select) and details objects (save, delete, reset)
  • Support for async list object updates/inserts to allow service calls
  • Localization support for property labels, acces keys, child objects and actions/links
  • Support for searching by input term in EnumProperty
  • Fix for modification check of multi-value properties
  • Support for excluded bounds during numeric property range validation
  • Support for Close action on views
  • Support for async view disposal (e.g. to close child views)
  • Tracking open inline views in the base views
  • Hiding some grid columns in master-details views when details are open

Xomega Framework Blazor

  • Updated all components to use Bootstrap 5 for style/layout
  • Added common components: Criteria Summary, Error List, Tab Set, Closable Panel
  • Added default non-editable Grid component bound to list objects based
  • Updated NavMenu to allow collapsing in side bars, and use localized resources
  • Added ActionButton component bound to new action properties
  • Updated all controls to include a label that uses localized label text from the bound property
  • Implemented Auto-Complete component entirely in Blazor
  • Updated CheckBox to add support for Indeterminate state and Switch styling
  • Implemented Date/Time picker and Numeric input controls using HTML5 without third-party libs
  • Implemented view structure and modal popups based on Bootstrap
  • Responsive design for dynamic views that depends on open inline views in addition to the screen size

Xomega Syncfusion Blazor

  • Added property bound controls based on Syncfusion Blazor components
  • Added list object bound editable Grid based on Syncfusion SfGrid Blazor component
  • Added base classes for Syncfusion-based search and details views with some workarounds

Computed properties

24 Oct 04:48

Choose a tag to compare

  • Added computed bindings for automatically calculating values from other properties based on the supplied lambda expression.
  • Enhanced properties to allow making their values or any metadata (editability, visibility, required flag) computed based on an expression.
  • Added signing of NuGet packages.