Releases: Xomega-Net/XomegaFramework
v4.4.2 - WCF and Syncfusion fixes
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 classesSearchCriteriaandSortField. - Updated JWT dependency to use new
Microsoft.IdentityModel.JsonWebTokenswithout vulnerable dependencies.
Xomega.Framework.Blazor
Bug fixes
- Layout fix for buttons in
CriteriaEditcomponent.
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
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
Errorscard layout with gutters in parent row. - Fixed display of
XNumericBoxbound to non-editable property. - Fixed division by 0 in
BreakpointWidthscaused 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
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
SearchCriteriaclass with paging and sorting for criteria DTOs. - Added
TotalCountto theOutputto allow returning total rows for server paging. - Added
BaseServicemethodsAddSortClause,AddSkipTakeandGetTotalAsync. - Added ability to limit results returned from service calls without server paging.
- Updated
DataListObjectto manage current page, page size and total count. - Updated
RestApiClientto handle base search criteria and sort fields.
- Added base
-
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.AddCriteriaClauseto addFieldCriteriain services. - Added
FieldCriteriaconversion fromCriteriaObjectandRestApiClient.
- Added
-
UI criteria fields can now be added dynamically and edited individually.
- Added
CriteriaPropertyGroupto group operator and value properties for the same field. - Added
CriteriaEditObjectfor separate editing of criteria property groups. - Added
CriteriaObject.FieldSelectorPropertyfor selecting criteria property group to edit. - Added
CriteriaObject.FieldEditObjectfor editing the selected criteria property group. - Implemented range validations for first and second criteria values.
- Added
-
Applied criteria have been redesigned and improved.
- Added
FieldCriteriaDisplayinstead ofFieldCriteriaSettingto improve criteria display. [⚠️ Breaking!] - Allowed preserving applied criteria on reload and server paging.
- Added
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, updatedCopyFromin the various properties to copy additional settings. - Added async versions of
Resetfunctions to properties, data objects and view models. - Added
DataObject.ResetNameto allow overriding the name for theResetAction. - Refactored all criteria UI classes to be in the
Xomega.Framework.Criterianamespace/folder. - Added additional base resources for action names, validations, etc.
Bug fixes
- Fixed exception in
ComputedBindingfor when the property in expression is null. - Added space-trimming support to lookup tables
Xomega.Framework.Blazor
Enhancements
- Updated
XGridandPageto use current page, page size and total count from the boundDataListObject. - Updated
XGridto make changing sorting with server-side paging make a server call. - Added components for editing and displaying UI criteria fields.
- Added
CriteriaDisplaycomponent for showingFieldCriteriaDisplayfor the dynamic criteria properties. - Added
CriteriaSummarycomponent for showingFieldCriteriaDisplayforAppliedCriteria. - Removed the old
Criteriacomponent based onFieldCriteriaSetting. [⚠️ Breaking!] - Added
CriteriaEditcomponent for editingCriteria.FieldEditObject.
- Added
- Added support for Bootstrap popovers.
Minor changes
- Compacted layout of the
Errorscomponents. - Fixed updates of select-based components (
XSelect,XPickList) by using standard multi-select support.- Removed custom
xfk.getSelectedValuesJavascript function.
- Removed custom
- Updated components to allow changing
AccessKeydynamically. - Added
XActionComponent.Linkfor link action buttons. - Added support for Class to
XDataText. - Refactored
CriteriaBarto extendCriteriaSummaryand allow expanding criteria panel from the latter.
Xomega.Framework.Wpf
Enhancements
- Updated
WPFSearchViewto useGetCriteriaDisplaysforAppliedCriteria. - 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.Convertersnamespace.
Xomega.Framework.Web
Enhancements
- Updated
WebSearchViewto useGetCriteriaDisplaysforAppliedCriteria.
Xomega.Syncfusion.Blazor
Enhancements
- Updated
XSfGridto support server-side paging and sorting.
Minor changes
- Updated
XSfActionButtonto allow changingAccessKeydynamically. - Fixed page changing in the
XSfGrid.
v4.3.1 - ITokenService enhancements
Release 4.3.1 provides minor token service enhancements and version bumps for dependencies.
Xomega Framework
Enhancements
- Added
CurrentErrortoITokenServiceandJwtTokenServicefor session expiration error. - Updated
EnumBoolPropertyto be case-insensitive when setting aboolvalue.
Minor changes
- Updated versions of the
System.Text.Jsondependency to avoid versions with vulnerabilities.
Xomega Blazor
Minor changes
- Set
net8.0as 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
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.
HttpServiceClientreplaced byRestApiClient.RestApiClientreads response as a string now, as not all streams can check the Length.- Extension method
AddRestServicesfor easily adding and configuring REST client services. - New
AuthTokenclass for a combination of an access token and a refresh token. - New
AuthorizationMessageHandlerfor calling secure REST APIs. - New
ITokenServiceandJwtTokenServicefor managing JWT tokens on the client. - Common configuration options
RestApiConfigfor REST API clients, including authorization. PathPrefixMessageHandlerto configure a prefix for calling all REST API endpoints.
- Common
IPrincipalConverterinterface for transferring auth state to the client.
Minor changes
- Updated
ViewModelto disallow duplicate activation only if parameters are the same.
Xomega ASP.NET Core
Enhancements
UseGeneralRoutePrefixextension method to support prefixing paths for all API endpoints.PersistingAuthStateProviderfor Blazor Server with options for revalidation.
Breaking changes
- Removed dependency on
NavigationManagerfromSignInManager. JwtAuthControllerreplacedTokenAuthControllerfor JWT auth.
Xomega Blazor
Enhancements
- Implemented
PrincipalAuthStateProviderasIPrincipalProvider. - New
PersistedAuthStateProviderfor WebAssembly auth state.
Minor changes
- Updated
BlazorViewto always activate even withoutActivateFromQueryflag set. - Updated
Errorscomponent 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
UseTooltipForValidationErrorsconfig parameter for backward compatibility. The default value isfalse.
Xomega WCF
Minor changes
- Used
TryAddforAddWcfServicesandAddWcfClientServicesto not require registration order.
Xomega WPF
Minor changes
- Added a virtual
OnViewEventsAsyncto theWPFViewfor async view events.
v4.2.1 Minor enhancements and Syncfusion fixes
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.Blazorpackage to useSyncfusion.Blazor.Gridversion 21.2.9 with the latest fixes.
Bug fixes
- Fixed an issue where clicking Update on
XSfGridafter adding a row clears all rows. (#13) - Fixed the missing right border on a
XSfGridcolumn grouping. (#14) - Fixed filtering of enumerated columns in
XSfGridusingFilterType.Menu. (#16) - Added workaround for filtering of text columns in
XSfGridusingFilterType.Menu. (#15)
v4.2.0 Blazor and Syncfusion enhancements
Release 4.2.0 adds certain enhancements and fixes to the Blazor and Syncfusion components, as follows.
Xomega Framework
Breaking changes
- Updated
ViewModelto 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
BlazorPagebase class with support for unsaved changes confirmation on top-level navigation innet7.0. - Added support for
NavMenuto 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
Hrefand childItemsset. - Added default framework styles for
NavMenuelements 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
Fragmentcomponent to allow refreshing content components from outside.
Breaking changes
- Used CSS isolation, requiring adding the
.styles.cssin addition to thexfk-blazor.css.
Bug fixes
- Fixed
XNumericBoxto 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
XDataTextorXSfDataLabelfor normal and dialog edit modes. - Added
FloatLabelparameter to support floating labels for all controls. - Added
ValueDisplayTemplatefor theXSfDropDownList, andXSfMultiSelect - Added filtering support using the bound property's provider to the
XSfDropDownList,XSfAutoComplete,XSfComboBox, andXSfMultiSelect. - Enabled custom value by default for
XSfAutoComplete,XSfComboBox, andXSfMultiSelectwhen lookup validation is off for the bound property. - Added
Mode,ShowSelectAll,ShowDropDownIcon, andEnableGroupCheckBoxparameters to theXSfMultiSelect.
Breaking changes
- Used CSS isolation, requiring adding the
.styles.cssin addition to thexsf-blazor.css. - Updated search in
XSfGridto be based on the display format only.
Bug fixes
- Fixed
XSfNumericBoxto work with all integer properties. - Fixed some grid classes after upgrading
SfGridto the latest version. - Fixed
XSfGridColumnperformance 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
XSfDatePickerto useXSfTextBoxfor multi-valued properties. - Fixed
XSfDatePickerto use the format from the bound date/time property. - Fixed an exception in the
XSfMultiSelectcaused by updates to the latest version.
v4.1.0 - lookup data localization, long data type and cleanup
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
BigIntegerPropertyfor the long data type.
Breaking changes
- Removed
IsPropertyRequiredandIsPropertyVisiblefrom theDataObject. - Removed
RestrictedStringandIsRestrictedfrom theBaseProperty.
Minor Fixes
- Fixed
OperatorPropertyto 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
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
INotifyPropertyChangedand data list object selection in the computed property expressions - Support for computed
Editablestate of aDataObject - 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
- 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.