Released: Dec 12, 2024
24.2 での更新項目
機能
.NET MAUI Project Template Gallery
- v24.2 ships with the new .NET MAUI Project Template Gallery. It includes popular modules and pre-designed pages. With its flexible configuration flow, you can customize your project as necessary (whether it's a simple starter app or a full-featured solution with predefined modules). The DevExpress .NET MAUI Project Wizard allows you to specify/configure the following options:
- Navigation Type - Define an app's top-level navigation structure - choose from Flyout, Tabbed, or None. Modules/pages selected in later steps are automatically added to the navigation hierarchy.
- Modules - Include infrastructure for common mobile app requirements, such as connecting to a local/remote database and managing authentication/authorization. Additionally, modules simplify integration with other DevExpress product libraries, including DevExpress Reports, Office File API, and .NET App Security & Web API Service.
- Pages - Choose from almost thirty ready-to-use page designs (Material Design 3 based). Each page includes configured UI components and a basic view model to help you get started quickly.
- Toolbox with Controls and Building Blocks
- v24.2 also includes a Toolbox with controls and building blocks to help you create views faster. The Toolbox includes 30+ ready-to-use building blocks (including collection item templates, predefined cards, gauges, form elements, and more).
MVVM Enhancements
- DevExpress have developed a library of services, helpers, and markup extensions to make it easier to create MVVM-based applications. DevExpress did not create their own MVVM framework (as they did for WPF and WinForms components). Instead, DevExpress went with the Community Toolkit MVVM. The library doesn't replace it but enhances it with additional functionality.
- Services - You can now use the following services to simplify MVVM development:
- Popup Dialog Service - Open predefined or custom popup dialogs.
- NavigationService - Navigate between pages directly from your view model.
- PrintService - Launch the default print dialog to print files.
- SaveFilePicker - Open a dialog and allow users to save a file.
- UI Services - Interact with UI components from the view model without breaking MVVM.
- Localization - The localization mechanism allows you to register resources for multiple languages and use them throughout your UI. Also implemented a Localizer markup extension to help you load localization strings based on the current culture.
- MVVM Localization - The Localizer markup extension tracks localization changes and updates localization dynamically. You can call Localizer.NotifyCultureChanged to notify the view when the current culture is changed.
- Dependency Injection - To simplify Dependency Injection, DevExpress have created a markup extension that allows you to assign a view model from the DI container directly in XAML.
New Toggle Switch Control
- v24.2 ships with a new .NET MAUI Toggle Switch control. The .NET MAUI Toggle Switch follows Material Design 3 guidelines and allows you to easily customize appearance-related settings:
- Thumb icon, size, and color.
- Text font settings.
- Track border background and stroke.
- Color variations for pressed, disabled, and checked states.
Collection View & Data Grid
- Both the .NET MAUI Collection View and .NET MAUI Data Grid controls include CRUD APIs to help you create detail and edit item forms. Since mobile apps often need to connect to remote services for data editing purposes, DevExpress have enhanced the CRUD APIs to support asynchronous operations.
- Both the Collection View and Data Grid use CRUD view models to automatically transfer information between detail/edit views and handle actions like edit, save, and delete operations. DevExpress have made these commands asynchronous, so you can now execute them without freezing the UI. Additionally, they've added an IsAsyncOperationInProgress property. This property allows you to display a loading indicator during asynchronous operations.
- When displaying a small collection within a scrollable layout, you might need to disable virtualization to ensure the collection takes up the space occupied by its items. This allows you to combine CollectionView with other elements inside a ScrollView, using one vertical scrollbar. DevExpress have introduced a new property to disable virtualization in CollectionView, allowing it to expand based on its child items.
- Headers and footers allow you to add custom elements above and below list items. Since they scroll alongside the rest of the view, this new feature helps make efficient use of available screen space. You can define any content for your header/footer (display elements that stand out from the rest of the list).
- You can now keep group row headers visible while scrolling, as long as at least one child row in the group is on screen. Enable the DXCollectionView.AllowFixedGroupHeaders option to incorporate this feature in your DevExpress-powered .NET MAUI app.
- You can now enable multiple row selection in the Data Grid. Simply set DataGridView.SelectionMode to Multiple to activate this feature. To retrieve selected rows in your view model, bind DataGridView.SelectedItems to a ObservableCollection<T> property type.
- The .NET MAUI Data Grid can now automatically calculate optimal column width based on cell content. This feature is useful when it's challenging to specify column width in advance due to dynamic data.
- In earlier versions, Data Grid cell data was only posted to the source after the active editor was closed. While this is what you expect when working with text fields, you may prefer to post changes immediately in other column types (such as CheckBox columns). To address this requirement, DevExpress have introduced an option that updates the data source instantly when a cell is modified by a user.
PDF Viewer
- Print Command
- Implemented APIs to invoke native device printing dialogs. This feature is accessible via a built-in toolbar item in the .NET MAUI PDF Viewer control. You can also call the PdfViewer.PrintDocumentAsync method to invoke the dialog from code.
Optimized Property Initialization
- Reduced the time needed to initialize controls before first use.
New Filter Range Slider
- As you know, DevExpress .NET MAUI Filter UI elements allow you to create advanced filters for the Data Grid and Collection View. In v24.2, DevExpress have added filter slider elements to help users quickly filter by numeric values.
Scheduler
- On-Demand Appointment Fetch
- The Scheduler Control can now load data asynchronously based on the visible range.
Text Editor
- Hide Max Text Counter.
- General-Purpose Chat Control Example
- DevExpress have created an example of a Chat Control built with the .NET MAUI CollectionView.
Security
- Environment Policy
- This release added a new Environment Policy that allows you to apply global environment access restrictions, track app-initiated requests (initiated by a DevExpress UI control) and execute custom actions in response.
- You can apply global restrictions using various methods like SuppressAll to block all environment access or more specific options such as preventing DevExpress UI controls from reading or writing environment variables, exiting processes, altering the current directory, or reading paths to system special folders.
- Event handlers allow you to track and manage environment operations. For example, you can detect when DevExpress UI controls attempt to read or modify environment variables, process data, or system directories and enable conditional responses based on specific conditions.
- Registry Access Policy
- DevExpress UI controls can save, read, and modify configuration settings and options in the system registry. These requests can be initiated in code or through the internal control engine. The Registry Access Policy allows you to apply global registry access restrictions, track user/app-initiated requests, and execute custom actions in response.
- Microsoft's BinaryFormatter Obsoletion Strategy
- As outlined in Microsoft's BinaryFormatter Obsoletion Strategy, the final removal of BinaryFormatter-related infrastructure is planned for Microsoft .NET 9. DevExpress have proactively addressed these changes, ensuring the codebase is compliant and secure while minimizing migration impact for DevExpress customers.
.NET 9 Support
- DevExpress .NET MAUI libraries now support .NET 9.
Supported IDEs & Frameworks
- .NET 8, .NET Framework 4.6.2, Visual Studio 2019 are minimally supported versions for DevExpress .NET Core and .NET Framework-based products and libraries (v24.2+).
Upgrade to .NET from .NET Framework
- The Project Converter can now convert DevExpress assembly references in your solution or specific projects to corresponding DevExpress NuGet packages. By selecting the "Convert DevExpress assembly references to NuGet packages" option under Advanced settings, you can easily transition to NuGet-based project management.
New Project Template Gallery for .NET 8+
- The Microsoft Visual Studio Template Gallery includes new project templates for .NET 8+ (not available for projects targeting .NET Framework). The Template Gallery allows you to create projects that target .NET 8 (the default target in v24.2) or .NET Framework 4.6.2 (or higher).
- v24.2 includes the new cross-IDE Template Kit for .NET (available as a Community Technology Preview). This new gallery is built atop the dotnet CLI and is available across multiple IDEs. This extension is available for Microsoft Visual Studio 2022 and Visual Studio Code (VS Code) on Microsoft Windows, with plans to expand support to Rider for Windows and additional operating systems in the future.
- New project templates cover a broader range of usage scenarios when compared to the previous Template Gallery for .NET Framework (shipped as part of the Unified Component Installer). New project templates support hybrid app development and new technologies such as Blazor Hybrid, .NET MAUI, and MVVM.
Source Builder
- .NET Core Support and Usability Enhancements
- The new Source Builder ships as part of the DevExpress Unified Component Installer. The tool rebuilds the source code used for .NET Core product libraries (previously it only supported .NET Framework).
Artificial Intelligence (AI) v24.2
- AI-powered Extensions
- You can now integrate multiple pre-built natural language (NLP) UI elements into your next DevExpress-powered .NET MAUI app. With the lightweight APIs (AI-powered Extensions), your solutions can interact with multiple AI services, including OpenAI, Azure OpenAI, self-hosted models (Ollama) and any other AI services that you can consume via the Semantic Kernel. DevExpress AI-powered Extensions ship with the following features/capabilities:
- AI-powered Document Editing - Summarization, proofreading, changing tone/writing style, translation, expansion/shortening, and much more, with automatic content chunking for large text blocks.
- Blazor AI Chat - The new DevExpress Blazor AI Chat Component (DxAIChat) for building Copilot-inspired user interfaces in Blazor, and WinForms, WPF, and .NET MAUI apps via BlazorWebView.
- Retrieval-Augmented Generation (RAG) capabilities - For example, "chat with your own data" via OpenAI Assistants support.