Xeku.FullTextSearch 0.0.0.7

dotnet add package Xeku.FullTextSearch --version 0.0.0.7
                    
NuGet\Install-Package Xeku.FullTextSearch -Version 0.0.0.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Xeku.FullTextSearch" Version="0.0.0.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Xeku.FullTextSearch" Version="0.0.0.7" />
                    
Directory.Packages.props
<PackageReference Include="Xeku.FullTextSearch" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Xeku.FullTextSearch --version 0.0.0.7
                    
#r "nuget: Xeku.FullTextSearch, 0.0.0.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Xeku.FullTextSearch@0.0.0.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Xeku.FullTextSearch&version=0.0.0.7
                    
Install as a Cake Addin
#tool nuget:?package=Xeku.FullTextSearch&version=0.0.0.7
                    
Install as a Cake Tool

Xeku.FullTextSearch

A global full-text search module for DevExpress XAF applications. Search across all business objects from a single entry point.

Features

  • Global Search: Search across all persistent business objects with a single keyword
  • Platform Support: Works on both Blazor and WinForms platforms
  • Smart Placement: Automatically positions the search action based on platform (QuickAccess for Blazor, Tools toolbar for WinForms)
  • Performance Safeguards: Configurable limits per type and total results
  • Double-Click Navigation: Click on a search result to open the target object
  • Opt-In Attribute Control: Use [GlobalSearchable] to enable types for search

Installation

1. NuGet Package

dotnet add package Xeku.FullTextSearch

2. Add Module Reference

// In your Module.cs
RequiredModuleTypes.Add(typeof(Xeku.FullTextSearch.FullTextSearchModule));

Then, add the platform-specific module to your Blazor or WinForms project:

Blazor

Add Xeku.FullTextSearch.Blazor to your Blazor module or application:

// In your BlazorModule.cs
RequiredModuleTypes.Add(typeof(Xeku.FullTextSearch.Blazor.FullTextSearchBlazorModule));

WinForms

Add Xeku.FullTextSearch.Win to your WinForms module or application:

// In your WinModule.cs
RequiredModuleTypes.Add(typeof(Xeku.FullTextSearch.Win.FullTextSearchWinModule));

Usage

  1. Launch your XAF application
  2. Look for the Global Search action:
    • Blazor: Located in the header near the user icon (QuickAccess), Action ID: GlobalSearchBlazor
    • WinForms: Located in the Tools toolbar, Action ID: GlobalSearchWin
  3. Enter your search keyword and press Enter
  4. Click on any result to navigate to that object

Configuration

Enable Types for Search (Opt-In)

Important: Types are NOT searchable by default. You must explicitly mark types with [GlobalSearchable] to include them in search.

using Xeku.FullTextSearch.Attributes;

// Enable this type for global search
[GlobalSearchable]
public class Customer : BaseObject
{
    public string Name { get; set; }
    public string Email { get; set; }
}

Exclude Specific Properties

Use [GlobalSearchableProperty(false)] to exclude specific properties from search:

[GlobalSearchable]
public class Customer : BaseObject
{
    public string Name { get; set; }
    
    [GlobalSearchableProperty(false)]
    public string InternalNotes { get; set; }  // Won't be searched
}

Customize Search Limits

Modify GlobalSearchService properties:

var searchService = new GlobalSearchService(objectSpace, typesInfo)
{
    MaxResultsPerType = 50,  // Max results per object type
    MaxTotalResults = 200    // Total max results
};

Projects & Architecture

Project Description
Xeku.FullTextSearch Core logic, Service, and Base Controller
Xeku.FullTextSearch.Blazor Blazor platform integration and QuickAccess Action
Xeku.FullTextSearch.Win WinForms platform integration and Tools Action

Key Files

File Description
FullTextSearchModule.cs Core XAF module definition
GlobalSearchResult.cs Non-persistent result object
GlobalSearchService.cs Core search logic with optional caching
GlobalSearchController.cs Base abstract controller
GlobalSearchResultNavigationController.cs Result navigation

Cache Integration (Optional)

Integrate with Xeku.Cache for improved search performance:

// With caching
var searchService = new GlobalSearchService(objectSpace, typesInfo, cacheService)
{
    SearchResultsCacheDuration = TimeSpan.FromMinutes(5),
    SearchableTypesCacheDuration = TimeSpan.FromMinutes(10)
};

// Async search for better cache performance
var results = await searchService.SearchAsync("keyword");

Cache Keys

Cache Key TTL Description
fts:searchable-types 10 min List of searchable type names
fts:search:{keyword} 5 min Search results for keyword

Requirements

  • DevExpress XAF 22.2+
  • .NET 8.0+
  • Xeku.Cache (optional, for caching support)
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Xeku.FullTextSearch:

Package Downloads
Xeku.Notes

Xeku Notes module for hierarchical note management.

Xeku.FullTextSearch.Blazor

XAF Blazor Server integration for Xeku.FullTextSearch.

Xeku.FullTextSearch.Win

XAF WinForms integration for Xeku.FullTextSearch.

Xeku.FullTextSearch.WebApi

Web API extensions for the Xeku.FullTextSearch module.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.0.7 186 1/28/2026
0.0.0.6 177 1/21/2026
0.0.0.5 169 1/15/2026
0.0.0.4 174 1/13/2026
0.0.0.3 175 1/9/2026
0.0.0.2 135 1/8/2026