Sunday, March 22, 2026

ASP.NET Core in .NET 11

 As of the latest .NET 11 Preview releases (March 2026), ASP.NET Core and Blazor have introduced several features focused on developer productivity, cleaner code, and better performance.

Summary of the most significant changes:

Blazor Improvements

New Components

DisplayName Component: A new built-in component that renders property names directly from metadata attributes like [Display] or [DisplayName]. This brings feature parity with MVC’s @Html.DisplayNameFor().

Label Component: Specifically for forms, this component renders accessible <label> elements and automatically extracts the display name from your model attributes.

EnvironmentBoundary: Allows you to conditionally render content based on the hosting environment (e.g., Development vs. Production) consistently across both Blazor Server and WebAssembly.

BasePath: Automatically renders the <base href="..."> tag, which is particularly helpful for apps hosted under subpaths (e.g., /dashboard/).

Navigation & Interaction

Relative Navigation: NavigationManager.NavigateTo and the NavLink component now support a RelativeToCurrentUri parameter. This allows you to navigate relative to the current page path rather than the app's root.

QuickGrid OnRowClick: The QuickGrid component now has a native OnRowClick event. When used, it automatically applies a pointer cursor to rows and handles the click callback.

Startup & Configuration

Unified Startup Format: The Blazor.start() options object format introduced for Blazor Web Apps in .NET 8 is now supported for standalone Blazor Server and Blazor WebAssembly scripts.

IHostedService in Wasm: Blazor WebAssembly now supports IHostedService, allowing you to run background services directly in the browser.


ASP.NET Core Core Framework

Performance & Observability

Native OpenTelemetry Tracing: ASP.NET Core now builds OpenTelemetry semantic attributes directly into HTTP server activities. You no longer need a separate instrumentation package to collect standard trace data.

Kestrel Hardening: The HTTP/1.1 parser has been reworked to handle malformed requests more gracefully, resulting in a 20–40% throughput improvement in high-invalid-traffic scenarios (like port scanning).


APIs & Tools

OpenAPI 3.2.0: Support has been updated to the latest specification, though this includes some breaking changes for client generators.

Web Worker Template: A new dotnet new webworker project template allows Blazor Wasm apps to easily offload heavy computations to a background Web Worker.

Metrics & Tracing: New built-in metrics have been added for Blazor WebAssembly to track component render times and performance.


Runtime & SDK

Runtime-Native Async: .NET 11 introduces "Runtime Async," which makes asynchronous calls a first-class citizen at the runtime level, leading to cleaner stack traces and lower overhead.

CoreCLR on WebAssembly: Significant progress has been made in migrating Blazor WebAssembly from the Mono runtime to CoreCLR, promising better performance and JIT support in the future.

Sunday, March 8, 2026

SQL Server 2025 Regular expressions functions

 

Core Regex Functions

The system provides several functions to search, modify, and analyze strings using patterns:

FunctionPurpose
REGEXP_LIKEReturns True if the text matches the pattern.
REGEXP_REPLACEModifies a string by replacing matches with a new value.
REGEXP_SUBSTRExtracts a specific occurrence of a matching substring.
REGEXP_INSTRReturns the position (start or end) of a match.
REGEXP_COUNTCounts how many times a pattern appears.
REGEXP_MATCHESReturns a table of all captured substrings.
REGEXP_SPLIT_TO_TABLESplits a string into a table using the pattern as a delimiter.

Syntax and Construction

Regex patterns are built using literal characters (which match themselves) and metacharacters (which have special logic).

  • Escaping: To match a literal metacharacter (like * or ?), you must use a backslash (\*).

  • Concatenation & Alternation: * e1 e2 matches "e1" followed by "e2".

    • e1 | e2 matches either "e1" or "e2".

  • Repetition Operators:

    • *: Zero or more matches.

    • +: One or more matches.

    • ?: Zero or one match.

  • Precedence: Operators follow a specific order of strength: Repetition (strongest) > Concatenation > Alternation (weakest). Parentheses () can be used to override this order.

let's assume we are working with a string representing a standard product code: Item_#1234-Blue.

 Examples

  • REGEXP_LIKE (The Filter)

    • Goal: Check if a string contains a 4-digit number.

    • Pattern: \d{4}

    • Result: True (since 1234 matches).

  • REGEXP_SUBSTR (The Extractor)

    • Goal: Pull the color name from the end of the string.

    • Pattern: [^-]+$ (Matches characters after the last hyphen).

    • Result: Blue

  • REGEXP_REPLACE (The Cleaner)

    • Goal: Remove the hash symbol (#).

    • Pattern: #

    • Replacement: '' (Empty string).

    • Result: Item_1234-Blue

  • REGEXP_COUNT (The Auditor)

    • Goal: Count how many times a hyphen appears.

    • Pattern: -

    • Result: 1

Cheers
Samitha