DataWeb 11.0.016/08/2024

What’s New
In this major version, we are introducing many new features, both technologically and functionally.
For a detailed overview, we refer you to the dedicated training sessions.
 
  • New Features
    • User: if the current user is a Developer, this role is also displayed in the user form
    • EmailService: the FromAddress sender address is no longer required and can be centralized in AppSettings
    • Newsletter: ability to upload documents to the newsletter template with direct download from the email (requires corresponding endpoint in the app)
    • Managed the saving of an additional data section only if active, allowing mandatory checks on optional data sections
    • SiteMap: integration of the SiteMap class to generate server-side site maps for the project
    • Management of notifications on the section with display in the header, in the section selector, in the dashboard
      • New inheritable method GetSectionNotificationCountAsync in Module
      • Notification of the job in progress in import modules with GetSectionNotificationCountAsync
      • New ReferenceId field for AppNotification to recall an expired notification
    • Integration of the AppSettings, Storage, AppErrors, and AuditEvents sections into DataWeb's section structure
      • The Settings sections benefit from all the features of DataWeb's native sections, such as widgets and notifications
      • Customizable Private_Settings permissions on Settings sections
    • AuditEvent revision
      • Revision of the logging module and conversion to AuditEvent
      • New method in AuditService for log retention DeleteExpiredEntriesAsync(expirationDate)
      • New fields EventContext and EventValues for audit segmentation.
      • Integration of AuditEventStore into CosmosDB storage with the DataWeb.Data.AzureCosmosDB package
    • Authentication revision and Authorization Server integration for SSO
      • Removal of authentication with BearerToken and transition to cookies with AntiForgeryToken using the BFF pattern
      • Periodic renewal of the authentication cookie
      • Data structure and integration of the Token and Exchange endpoints
      • Certificate generation flow and integration for encryption and signing
      • Integration of AuthorizationCodeFlow with PKCE for mobile and web apps
      • Integration of CredentialFlow for M2M communication
      • Integration of Introspection, Revocation, Pruning functions
    • Integration of the IFile interface for file management on different storage
      • Revision of MediaService and the entire data stream processing flow
      • Introduction of FileService
      • Revision of all components both in lists and forms
    • Image management
      • Generation of thumbnails in Webp format
      • Ability to rename the file
      • Integration of settings for images and documents
        • Option to remove metadata in thumbnails and on ImageResult
        • Option to maintain the original image format in thumbnails
        • Option to set thumbnail quality
      • Integration of image cropping and related management in Settings
      • Integration of ImageContext for thumbnails to segment thumbnails on ImageResult
      • Integration of a delegate method to perform thumbnail processing on ImageResult (e.g., watermark)
      • Option to disable cropping on thumbnails on ImageResult
    • ModuleList improvement
      • New navigation for sections adjacent to the current one
      • New Card view in lists with user-side management between Table and Card and a default value in the section Settings
      • Native clipboard for moving and linking items
      • Section DataField: added ListName field to display titles of values in the list and search filter
      • Section DataField: management of the nested field in a structured data
      • Revision of the item clone function in Clone data with replication only of active and staging versions
      • Revision of the item delete function with simplified actions based on the number of relationships
    • Integration of ListWidget
      • Highly customizable class and component to display data and assets in lists
      • General revision of widgets in lists with ListWidget and hooks ProcessValue and ProcessDeferredValueAsync
      • ProcessDeferredValueAsync allows for retrieving data requiring more computation later
      • New ListWidgetLabel to display Structured or customized data
      • New ListWidgetImage to display images from a predefined path
      • New ListWidgetCultureList to display a list of cultures given a structured CultureEditor data
      • New ListWidgetCustom to customize the list content
      • Improvement of ListWidgetFileRender and ListWidgetFileDownload for better performance and decoupling from Item
    • Integration of ContextAction
      • Complete revision of existing actions on form controls through ContextAction
      • Allows inserting actions on controls and Explorer modules
      • Support for ModuleList and ModuleListEdit with FilteredItems and SelectedItems contexts
      • New action execution options: IsConfirmRequired, IsSaveItemBeforeProcess, IsReloadAfterProcess
      • Revision of action execution flow with ActionHelper: confirmation, dialog, validation, saving, execution, data update
      • Retrieve the resulting value from the action directly in the associated control without reloading the page (see translation with CultureEditor)
      • Option to request data with a dialog through the DialogFormName property
    • New BasicItem entity
      • Management of basic entities with BasicItemService and BasicItemStore
      • Change tracking
    • New ModuleListEdit with customizable methods
      • Management of CRUD functions with custom entities or BasicItem
      • Management of creation, modification, modified fields tracking, sorting, cloning, deletion, search, and filtering
      • Management of IsWrite on a single element
      • Management of optional status
      • Full support of permissions, DataField, ListWidget, Form, ContextAction
    • Resource: status management for active, inactive, and deleted resources with soft delete
      • integration in ModuleListEdit with BasicItem
      • Duplication of a resource with Deleted status
      • Only Active resources are retrieved in the project
    • NewsletterSubscriber: integration in ModuleListEdit with BasicItem
      • NewsletterSubscriber: new Deleted Status to apply the soft delete pattern to newsletter subscribers
    • Template: integration in ModuleListEdit with BasicItem
    • Version improvements
      • Added simultaneous preview for multiple versions in different cultures
      • Complete revision of version state management flow
      • Added controls to better segment Global versions from culture-specific ones (cannot be active or in preview simultaneously)
    • New History module
      • New data fields for all items: IsVersionHistory, VersionDate
      • VersionDate: used to sort History versions
      • IsVersionHistory: marks a version as in history
      • A History version is linked to the parent with the VersionName: 01-01
      • History versions are not displayed in the version list but listed in history mode
      • Each modification creates a History version if IsVersionHistory is active in the data section options
      • A new History version is created only if there are modified fields and at least 10 minutes have passed since the last History version
      • A maximum of 10 versions can be in history, with the oldest progressively removed
      • The associated file is replicated in the History version
      • A History version is not editable
      • A History version can be restored to the linked version
      • Upon restoration, the file is cloned to preserve the removal of the history version and the related file
      • A History version can be deleted (Deleted status)
    • New TextEditor control
      • Integration of the new editor with dedicated Webpack package
      • Integration of standard plugins
      • Content display for desktop, tablet, smartphone, and full screen
      • Drag'n drop and paste for images with auto-generation of the related item in the images section
      • Image and document selection palette with drag'n drop and selection
      • Template selection palette with drag'n drop and selection
      • Custom ImageSize plugin to set the image size based on the resolutions defined in the app
      • Custom ImageSizePreset plugin to quickly and visually set the four most common sizes
      • Custom ResizeMode plugin to set the image ratio between Crop and Fix
      • Custom plugin to manage additional image resolutions for smartphones and tablets
      • Retrieve the style list in the editor from a dedicated DataWeb list
      • Option in the control creation to load a stylesheet dedicated to the editor
      • TextEditorClassic for backward compatibility on existing content
      • Editor management with selective loading based on TextEditor or TextEditorClassic
    • Translate module
      • Activation of the XTRA Translator service
      • Integration of the new NuGet package DataWeb.Localization.AzureTranslator
      • Integration in Control of the customizable method ProcessOnTranslateAsync to process the value during translation
      • Added IsLocalization property for form controls
      • Translation management for the Slug control
      • Translation management for the TextEditor control with link support
      • Translation management for multiple versions simultaneously
      • Automatic translation in CultureEditor without reloading the form
      • Management of TranslationRule to bind certain translation values with custom store https://learn.microsoft.com/en-us/azure/ai-services/translator/dynamic-dictionary
    • System dialogs
      • New module for managing modal dialogs both in lists and details
      • Translation dialog for the version with source version selection
      • Add new version dialog with culture selection and automatic translation
      • Version Management Dialog with translate, set status, add localizations actions
    • ResourceAnalyzer
      • Source code audit to identify unused or missing resources
      • New DataWeb endpoint with AppKey access to retrieve all resource information
      • Unused resources Csv report
      • Missing resources Csv report
      • Ability to set analysis options from AppSettings or command line
      • Csv generation with https://joshclose.github.io/CsvHelper/
  • Structure
    • Set VoidId (-1) for the new SectionPart, allowing recognition of an unsaved SectionPart
  • Technology
    • Async Cancellation Token: integration at all levels of the request cancellation token
    • Email address validation replaced from RegEx to EmailAddress, manual validation with: var emailChecker = new System.ComponentModel.DataAnnotations.EmailAddressAttribute()
    • Integration of TimeProvider https://blog.nimblepros.com/blogs/finally-an-abstraction-for-time-in-net/
    • Security and stability: update of server-side NuGet packages
    • Security and stability: update of client-side NPM packages
  • Performance
  • Development
    • NewsletterEvent: refactoring of newsletter events and update of DataDeliver
    • Form: integration of the "controls" property on the control for cross-component updates (see FileRender)
    • Localization: management of DataWeb's native culture through HTTPContext.Items and removal of CultureInfo in Localizer (see culture en-CZ)
    • Pagination: integration of PaginationHelper.GetPaginationInfo() for retrieving pagination information
    • TypeScript Common: integration of UrlHelper for retrieving a value in the url parameters with UrlHelper.getUrlParamValue
    • Debug: query tracing in the console during Debug
    • DevOps: integration of DevOps migrations to the new version
    • DevOps: optimization of the migration process with inline data
    • DevOps: progress console tracing
    • DevOps: re-indexing of positions given a section (see AvionTourism.com)
    • TemplateApp: update of TemplateApp to the new patterns
  • Fixes
    • Bugfix: version selection in the list sometimes didn't work because the click event was only on the text and not on the entire button
    • Bugfix: on slow connections, it could happen that child item data was saved on the parent, added nav check in moduledata
    • Bugfix: Redirect with set period didn't work due to incorrect check
    • General tuning and bugfix
11.0.0 16/08/2024 10.8.3 15/04/2024 10.7.54 02/11/2023