From e1031b53b75b36feb1ab617dfd2d9e76d1303fdc Mon Sep 17 00:00:00 2001 From: Muthukumar Kannan Date: Mon, 23 Feb 2026 16:33:35 +0530 Subject: [PATCH 01/49] feature(1010754)-renamed MCP tools - MCP server --- blazor-toc.html | 20 +- .../ai-coding-assistant/copilot-extension.md | 99 ------- blazor/ai-coding-assistant/mcp-server.md | 263 ----------------- blazor/ai-coding-assistant/overview.md | 71 ----- blazor/ai-coding-assistant/prompt-library.md | 270 ------------------ .../agentic-ui-builder/getting-started.md | 90 ++++++ .../agentic-ui-builder/prompt-library.md | 126 ++++++++ .../ai-coding-assistant/getting-started.md | 53 ++++ .../ai-coding-assistant/prompt-library.md | 270 ++++++++++++++++++ blazor/mcp-server/installation.md | 207 ++++++++++++++ blazor/mcp-server/overview.md | 87 ++++++ blazor/mcp-server/release-notes.md | 39 +++ 12 files changed, 888 insertions(+), 707 deletions(-) delete mode 100644 blazor/ai-coding-assistant/copilot-extension.md delete mode 100644 blazor/ai-coding-assistant/mcp-server.md delete mode 100644 blazor/ai-coding-assistant/overview.md delete mode 100644 blazor/ai-coding-assistant/prompt-library.md create mode 100644 blazor/mcp-server/agentic-ui-builder/getting-started.md create mode 100644 blazor/mcp-server/agentic-ui-builder/prompt-library.md create mode 100644 blazor/mcp-server/ai-coding-assistant/getting-started.md create mode 100644 blazor/mcp-server/ai-coding-assistant/prompt-library.md create mode 100644 blazor/mcp-server/installation.md create mode 100644 blazor/mcp-server/overview.md create mode 100644 blazor/mcp-server/release-notes.md diff --git a/blazor-toc.html b/blazor-toc.html index 5791541494..9a4da0feac 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -151,11 +151,23 @@ -
  • AI Coding Assistant +
  • MCP Server
  • Smart (AI) Solutions diff --git a/blazor/ai-coding-assistant/copilot-extension.md b/blazor/ai-coding-assistant/copilot-extension.md deleted file mode 100644 index 1f04088e45..0000000000 --- a/blazor/ai-coding-assistant/copilot-extension.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -layout: post -title: SyncfusionBlazor GitHub Copilot Extension | Syncfusion -description: Learn how the SyncfusionBlazor GitHub Copilot extension enhances your Blazor development with intelligent code suggestions, best practices, contextual guidance. -control: Getting started with SyncfusionBlazor copilot extension -platform: Blazor -documentation: ug ---- - -# SyncfusionBlazor GitHub Copilot Extension - -## Overview - -The [SyncfusionBlazor GitHub Copilot Extension](https://github.com/apps/syncfusionblazor) provides intelligent assistance for developers using Syncfusion's Blazor component libraries. This extension seamlessly integrates with GitHub Copilot to enhance your development workflow. - -### What is a GitHub Copilot Extension? - -A GitHub Copilot extension enhances Copilot's capabilities by integrating specialized, third-party tools and knowledge directly into the chat interface. It allows Copilot to access specific data, APIs, and services—such as a component vendor's official documentation—to provide more accurate, context-aware, and relevant assistance for a developer's specific technology stack. - -### Key Benefits - -* Smart code suggestions for Syncfusion® Blazor components. -* Best practice guidance for component usage and configuration. -* Context-aware troubleshooting for complex scenarios. - -## Prerequisites - -Before using this extension, ensure you have: - -* [Github copilot](https://github.com/copilot/) -* An active Syncfusion® license (any of the following): - - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense) - - [Free Community License](https://www.syncfusion.com/products/communitylicense) - - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials) -* An active [API KEY](https://syncfusion.com/account/api-key) - -## Unlimited Access - -Syncfusion® offers unlimited access to this copilot extension. There are no restrictions on: - -* Number of requests -* Components usage -* Query types -* Usage duration - -This ensures users can fully leverage Syncfusion® components to enhance their development experience without limitations. - -## Installation - -* Visit the [SyncfusionBlazor GitHub App](https://github.com/apps/syncfusionblazor) and click **Install**. -* Grant the required read-access permissions to allow the extension to function with Copilot chat. -* Click **Install & Authorize**. -* Sign in with your Syncfusion® account to authenticate and link the extension to your GitHub account. The API key is automatically retrieved upon successful authentication. -* Restart your development environment (e.g., VS Code or GitHub Copilot) and start a new Copilot chat session to use the extension. - -## Getting Started - -* Open the chat panel in a supported environment like [GitHub Copilot](https://github.com/copilot) or VSCode Copilot. -* Type `@` in the chat prompt and select the `SyncfusionBlazor` from the list of extensions. -* Enter a query related to Syncfusion® Blazor components (e.g., configuration, implementation, or troubleshooting). - -### Mode availability in VS code - -Syncfusion® Copilot extension provide full access to all AI interaction modes — Ask, Edit, and Agent — when integrated with VS code. - -### Best Practices for Effective Usage - -1. `Be specific`: Mention both platform and component (e.g., "How do I create a Syncfusion Blazor Grid with paging and filtering?"). -2. `Provide context`: Include details about your use case for more targeted solutions. -3. `Use descriptive queries`: Avoid vague questions that lack necessary context. -4. `Start fresh for new topics`: Begin a new chat session when switching components or topics. - -## Example Queries - -Here are some examples of queries you can use with the Syncfusion® Copilot extensions: - -* "@SyncfusionBlazor Create a Syncfusion data grid with paging and sorting" -* "@SyncfusionBlazor How do I implement a responsive Syncfusion chart with tooltips?" -* "@SyncfusionBlazor Show me a Syncfusion Kanban board implementation with drag and drop" - -## Uninstallation - -To remove the extension from your account: - -* Go to [GitHub App Installations](https://github.com/settings/installations/). -* Locate the `SyncfusionBlazor` extension in the list. -* Click `Configure`, then select `Uninstall`. - -## Support - -* [Support tickets](https://support.syncfusion.com/support/tickets/create) - Guaranteed Response in 24 hours \| Unlimited tickets \| Holiday support -* [Community forum](https://www.syncfusion.com/forums/blazor-components) -* [Request feature or report bug](https://www.syncfusion.com/feedback/blazor-components) -* Live chat - -## See also - -* [Syncfusion® Blazor Documentation](https://blazor.syncfusion.com/documentation) -* [Github Copilot Documentation](https://docs.github.com/en/copilot) \ No newline at end of file diff --git a/blazor/ai-coding-assistant/mcp-server.md b/blazor/ai-coding-assistant/mcp-server.md deleted file mode 100644 index 1366cff12a..0000000000 --- a/blazor/ai-coding-assistant/mcp-server.md +++ /dev/null @@ -1,263 +0,0 @@ ---- -layout: post -title: SyncfusionBlazorAssistant MCP server | Syncfusion -description: Learn how to configure and use SyncfusionBlazorAssistant MCP server for intelligent code generation, documentation, and troubleshooting in Blazor applications. -control: Getting started with SyncfusionBlazorAssistant MCP Server -platform: Blazor -documentation: ug ---- - -# SyncfusionBlazorAssistant MCP server - -## Overview - -The [SyncfusionBlazorAssistant](https://www.npmjs.com/package/@syncfusion/blazor-assistant) is a specialized [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) server that provides intelligent assistance for developers using Syncfusion Blazor component libraries. This tool seamlessly integrates with compatible [MCP clients](https://modelcontextprotocol.io/clients) to enhance your development workflow when building Blazor applications with Syncfusion® components. - -### Key benefits - -* Intelligent code generation for Syncfusion® Blazor components. -* Detailed component documentation and usage examples. -* Troubleshooting assistance for common integration challenges. - -## Prerequisites - -Before using [SyncfusionBlazorAssistant](https://www.npmjs.com/package/@syncfusion/blazor-assistant), ensure you have: - -* Required [Node.js](https://nodejs.org/en/) version >= 18 -* A [compatible MCP client](https://modelcontextprotocol.io/clients) (Visual Studio Code with GitHub Copilot, [Syncfusion® Code Studio](https://www.syncfusion.com/code-studio/), etc.) -* An active Syncfusion® license (any of the following): - - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense) - - [Free Community License](https://www.syncfusion.com/products/communitylicense) - - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials) -* An active [API key](https://www.syncfusion.com/account/api-key) - -## Unlimited access - -Syncfusion® offers unlimited access to this MCP server. There are no restrictions on: - -* Number of requests -* Components usage -* Query caps -* Usage duration - -This ensures users can fully leverage Syncfusion® components to enhance their development experience without limitations. - -## Installation and setup - -Before you can invoke the `SyncfusionBlazorAssistant` MCP server, you need to configure your MCP client with these core settings. The **Generic MCP Server Settings** shown below are identical across all clients: - -### Generic MCP server settings - -- **npm package name**: `@syncfusion/blazor-assistant` -- **Type**: stdio (standard input/output transport) -- **Command**: npx -- **Arguments**: -y -- **Server name**: syncfusionBlazorAssistant - -#### API Key Configuration - -There are two options: - -* **Using an API Key File (Recommended)** - - Store your API key in a separate file and reference its path in the `Syncfusion_API_Key_Path` environment parameter. This approach is more secure as you don't expose the key directly in configuration files. - - **Supported file formats:** `.txt` or `.key` file - - ```json - "env": { - "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH" // "D:\\syncfusion-key.txt" (or) "D:\\syncfusion-key.key" - } - ``` - -* **Direct API Key** - - Paste your `Syncfusion_API_Key` directly in the configuration file's environment parameter. - - ```json - "env": { - "Syncfusion_API_Key": "YOUR_API_KEY" - } - ``` - -Below are setup instructions for popular MCP clients: - -### Syncfusion® Code Studio - -* In [Code Studio](https://www.syncfusion.com/code-studio/), open MCP Marketplace, find `SyncfusionBlazorAssistant`, and click Install. -* When prompted, enter your [Syncfusion API key](https://syncfusion.com/account/api-key) and click Submit to register. -* It installs locally on your machine and appears in the Installed list. -* The server is now ready for use in Code Studio. For more details, refer to the [Code Studio documentation](https://help.syncfusion.com/code-studio/reference/configure-properties/mcp/marketplace). - -### Visual Studio Code (GitHub Copilot MCP) - -* To configure an MCP server for a specific workspace, you can create a `.vscode/mcp.json` file in your workspace folder. - -```json -{ - "servers": { - "syncfusion-blazor-assistant": { - "type": "stdio", - "command": "npx", - "args": [ - "-y", - "@syncfusion/blazor-assistant@latest" - ], - "env": { - "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH", - // or - "Syncfusion_API_Key": "YOUR_API_KEY" - } - } - } -} -``` - -* After updating the configuration in mcp.json, you'll notice a "Start" option at the top of the config. This allows you to easily start the [SyncfusionBlazorAssistant](https://www.npmjs.com/package/@syncfusion/blazor-assistant) server directly from the settings interface without additional commands. - -* Confirm the server is active by checking for a message like: `SyncfusionBlazorAssistant is running...` in the output. - -* For additional guidance, refer to the [Visual Studio Code documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_add-an-mcp-server). - -### Visual Studio (GitHub Copilot MCP) - -* To configure an MCP server for a specific workspace, you can create a `.vs/mcp.json` file in your workspace folder. - -```json -{ - "servers": { - "syncfusion-blazor-assistant": { - "type": "stdio", - "command": "npx", - "args": [ - "-y", - "@syncfusion/blazor-assistant@latest" - ], - "env": { - "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH", - // or - "Syncfusion_API_Key": "YOUR_API_KEY" - } - } - } -} -``` - -* After updating the mcp.json configuration, open the GitHub Copilot Chat window. Click the Ask arrow, then select Agent. -* Select the [SyncfusionBlazorAssistant](https://www.npmjs.com/package/@syncfusion/blazor-assistant) from the tools section. -* For more details, refer to the official [Visual Studio documentation](https://learn.microsoft.com/en-us/visualstudio/ide/mcp-servers?view=vs-2022). - -### Cursor - -To configure an MCP server for a specific workspace, you can create a `.cursor/mcp.json` file in your workspace folder. - -```json -{ - "mcpServers": { - "syncfusion-blazor-assistant": { - "type": "stdio", - "command": "npx", - "args": [ - "-y", - "@syncfusion/blazor-assistant@latest" - ], - "env": { - "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH", - // or - "Syncfusion_API_Key": "YOUR_API_KEY" - } - } - } -} -``` - -For more details, refer to the [Cursor documentation](https://cursor.com/docs/context/mcp#using-mcp-json). - -### JetBrains IDEs - -* Go to Settings -> Tools -> AI Assistant -> Model Context Protocol (MCP). -* Click + Add to add a new MCP server configuration. -* In the New MCP Server dialog, switch the dropdown as `As JSON` and add the following config: - -```json -{ - "mcpServers": { - "syncfusion-blazor-assistant": { - "command": "npx.cmd", - "args": [ - "-y", - "@syncfusion/blazor-assistant@latest" - ], - "env": { - "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH", - // or - "Syncfusion_API_Key": "YOUR_API_KEY" - } - } - } -} -``` - -* Click OK and Apply. - -For further assistance, see the [JetBrains documentation](https://www.jetbrains.com/help/ai-assistant/mcp.html#connect-to-an-mcp-server). - -> For more detailed information about configuring MCP servers in various clients, refer to the official documentation, e.g., [Windsurf](https://docs.windsurf.com/windsurf/cascade/mcp#mcp-config-json) - -## Usage - -To activate the SyncfusionBlazorAssistant MCP server: - -1. Start your prompt with one of the following: - * 'SyncfusionBlazorAssistant' - * '/syncfusion-blazor-assistant' - * '/syncfusion-blazor' - * '@syncfusion-blazor' - * '@ask_syncfusion_blazor' - * 'ej2-blazor' - - In Visual Studio Code, use `#SyncfusionBlazorAssistant` for direct invocation. - -2. Grant permission for the server to run (for the session, workspace, or always). -3. For best results, start a new chat for each new topic to maintain clean context. - -### Mode availability - -Syncfusion® MCP Servers provide full access to all AI interaction modes — Ask/Chat, Edit, and Agent — across supported MCP clients. - -### Best practices for effective usage - -1. `Be specific`: Mention both platform and component (e.g., "How do I create a Syncfusion Blazor Grid with paging and filtering?"). -2. `Provide context`: Include details about your use case for more targeted solutions. -3. `Use descriptive queries`: Avoid vague questions that lack necessary context. -4. `Start fresh for new topics`: Begin a new chat session when switching components or topics. - -### Example Queries - -Here are some effective ways to use [SyncfusionBlazorAssistant](https://www.npmjs.com/package/@syncfusion/blazor-assistant): - - * "Create a Syncfusion Blazor Grid component with paging, sorting and filtering." - * "How do I implement data binding with Syncfusion Blazor scheduler?" - * "Show me how to create a dashboard with multiple Syncfusion components." - -## Troubleshooting - -If you encounter issues: - - * Verify your API key is correctly configured. - * Ensure the MCP server is enabled in your client's tools selection. - * Check that you're using a compatible MCP client version. - * Try restarting your development environment. - -## Support - -Product support is available through the following channels. - -* [Support ticket](https://support.syncfusion.com/support/tickets/create) - Guaranteed Response in 24 hours \| Unlimited tickets \| Holiday support -* [Community forum](https://www.syncfusion.com/forums/blazor-components) -* [Request feature or report bug](https://www.syncfusion.com/feedback/blazor-components) -* Live chat - -## See also - -* [Syncfusion Blazor documentation](https://blazor.syncfusion.com/documentation) diff --git a/blazor/ai-coding-assistant/overview.md b/blazor/ai-coding-assistant/overview.md deleted file mode 100644 index 2dcc8fdc04..0000000000 --- a/blazor/ai-coding-assistant/overview.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -layout: post -title: Syncfusion AI Coding Assistant overview | Syncfusion -description: Learn how the Syncfusion AI Coding Assistant boosts Blazor productivity by generating accurate code snippets, configuration examples, and contextual guidance. -control: Syncfusion AI Coding Assistant Overview -platform: Blazor -documentation: ug ---- - -# Syncfusion® AI Coding Assistant overview - -The **Syncfusion® AI Coding Assistant** is designed to streamline development when building Blazor applications with Syncfusion® components. It uses contextual knowledge of the Syncfusion® component library to generate accurate code snippets, configuration examples, and guided explanations—minimizing documentation searches and maximizing productivity. - -AI Coding Assistants: - -* **SyncfusionBlazorAssistant MCP server** - Processes prompts and returns tailored code suggestions through [MCP-compatible clients](https://modelcontextprotocol.io/clients). - -## Getting started - -To use the AI Coding Assistant, the following are required: - -* A [Syncfusion® user account](https://www.syncfusion.com/account) -* An active Syncfusion® license (any of the following): - - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense) - - [Free Community License](https://www.syncfusion.com/products/communitylicense) - - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials) -* An active [API key](https://www.syncfusion.com/account/api-key) -* A [Blazor application that includes SyncfusionBlazor](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) - -## Unlimited access - -Syncfusion® offers unlimited access to the AI Coding Assistant with no limitations on: - -* Number of requests -* Components usage -* Query caps -* Usage duration - -This ensures users can fully leverage Syncfusion® components to enhance their development experience without limitations. - -## Best practices - -* Initial Setup: Use the tools to quickly add and configure Syncfusion® components in your Blazor application. -* Feature Tuning: Enable or disable component features through prompt-based configuration for tailored functionality. -* Data Binding: Generate sample data for testing and prototyping. Avoid using sensitive or production data to ensure security. -* Step-by-step explanations: Use annotated code to understand component behavior. The level of detail may vary based on the tool, mode, and AI model. Refer to the [Syncfusion® Blazor documentation](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) for in-depth information. -* Troubleshooting: Resolve common issues with AI-generated suggestions. For complex problems, see the [documentation](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) or contact [support](https://support.syncfusion.com/support/tickets/create). - -* Troubleshooting: Resolve common issues with AI-generated suggestions. For complex problems, refer to [documentation](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) or [support](https://support.syncfusion.com/support/tickets/create). - -> Always check AI-generated content and code for accuracy before using it. - -## Recommendations - -* Session Management: Start new sessions when switching tasks to ensure prompt relevance and maintain content focus. -* Model compatibility: For optimal performance, use the tools with advanced AI models such as GPT-5 or Claude Sonnet 4. - -## Privacy and data handling - -The Syncfusion® AI Coding Assistant is designed with privacy in mind: - -* The tools do not access your project files or workspace directly. -* User prompts are not stored by any of the tools or used for any other purpose. -* Prompts are not used to train Syncfusion® models. -* The assistant provides context, while the final output is generated by the AI model selected in your client. - -## See also - -* Add the [SyncfusionBlazorAssistant MCP server](https://blazor.syncfusion.com/documentation/ai-coding-assistant/mcp-server) to an MCP-enabled client -* [Syncfusion® Blazor documentation](https://blazor.syncfusion.com/documentation) diff --git a/blazor/ai-coding-assistant/prompt-library.md b/blazor/ai-coding-assistant/prompt-library.md deleted file mode 100644 index 433971e8d9..0000000000 --- a/blazor/ai-coding-assistant/prompt-library.md +++ /dev/null @@ -1,270 +0,0 @@ ---- -layout: post -title: Syncfusion AI Coding Assistant Prompt Library | Syncfusion -description: Explore the AI Coding Assistant Prompt Library to enhance Blazor development productivity with code generation, configuration examples, and contextual guidance. -control: Syncfusion AI Coding Assistant Prompt Library -platform: Blazor -documentation: ug -domainurl: ##DomainURL## ---- - -# Prompt Library - AI Coding Assistant - -Speed up your Blazor projects using these ready-made prompts for popular Syncfusion components. Each prompt is short, easy to understand, and focused on real tasks—like quick setups, tweaks, and fixes. - -## How to Use - -Before starting, make sure your MCP Server is set up and running. - -* Choose a prompt that fits your need. -* Copy the full prompt with the #SyncfusionBlazorAssistant handle. -* Customize the prompt for your specific use case. -* Execute via the MCP Server. -* Always check and test the code before adding it to your project. - -## Component-Specific Prompts - -### Grid - -The Syncfusion Blazor Data Grid delivers fast, flexible tables for large datasets with built-in interactivity. - -{% promptcards %} -{% promptcard Paging and Sorting %} -#SyncfusionBlazorAssistant How do I enable paging and sorting in the Syncfusion Blazor Grid? -{% endpromptcard %} -{% promptcard Grouping and Filtering %} -#SyncfusionBlazorAssistant Show me an example of grouping and filtering data in the Grid component. -{% endpromptcard %} -{% promptcard CRUD Operations %} -#SyncfusionBlazorAssistant What’s the code to implement full CRUD operations in Syncfusion Blazor Grid? -{% endpromptcard %} -{% promptcard Grid Export to PDF and Excel %} -#SyncfusionBlazorAssistant How can I add PDF and Excel export options to the Grid toolbar? -{% endpromptcard %} -{% promptcard Virtual Scrolling %} -#SyncfusionBlazorAssistant How do I configure virtual scrolling for large datasets in the Grid? -{% endpromptcard %} -{% promptcard Multicolumn Grid Setup %} -#SyncfusionBlazorAssistant Create a multicolumn Grid to display product details with sorting and filtering. -{% endpromptcard %} -{% promptcard Chat Integration %} -#SyncfusionBlazorAssistant How can I integrate a chat widget inside each row of the Syncfusion Grid? -{% endpromptcard %} -{% promptcard Advanced Grid Features %} -#SyncfusionBlazorAssistant Show me a Grid with paging, sorting, grouping, filtering, and virtual scrolling -{% endpromptcard %} -{% promptcard Troubleshooting Grid Export %} -#SyncfusionBlazorAssistant Why isn’t my Grid exporting to PDF and Excel correctly? -{% endpromptcard %} -{% promptcard Inline Editing %} -#SyncfusionBlazorAssistant How do I enable inline editing for CRUD operations in the Grid? -{% endpromptcard %} -{% promptcard Custom Toolbar %} -#SyncfusionBlazorAssistant Add custom toolbar buttons for PDF and Excel export in the Grid. -{% endpromptcard %} -{% promptcard Dynamic Column Configuration %} -#SyncfusionBlazorAssistant How can I dynamically configure multicolumn layout with filtering and sorting? -{% endpromptcard %} -{% endpromptcards %} - -### Chart - -The Syncfusion Blazor Chart suite offers versatile visualization tools across various series types for insightful data representation. - -{% promptcards %} -{% promptcard Local and Remote Data %} -#SyncfusionBlazorAssistant How do I bind both local and remote data sources to a Syncfusion Chart? -{% endpromptcard %} -{% promptcard Range Selection %} -#SyncfusionBlazorAssistant Show me how to enable range selection in a Syncfusion Blazor Chart. -{% endpromptcard %} -{% promptcard Chart Types Overview %} -#SyncfusionBlazorAssistant What chart types are available in Syncfusion Blazor Chart and how to configure them? -{% endpromptcard %} -{% promptcard Markers and Data Labels %} -#SyncfusionBlazorAssistant How can I display markers and data labels on a line chart? -{% endpromptcard %} -{% promptcard Annotations %} -#SyncfusionBlazorAssistant Add custom annotations to highlight specific data points in a chart. -{% endpromptcard %} -{% promptcard Chart Export to Image or PDF %} -#SyncfusionBlazorAssistant How do I export a Syncfusion Chart to PDF or image format? -{% endpromptcard %} -{% promptcard Print Support %} -#SyncfusionBlazorAssistant Enable print functionality for a Syncfusion Blazor Chart component. -{% endpromptcard %} -{% promptcard Dynamic Chart with Remote Data %} -#SyncfusionBlazorAssistant Create a chart that updates dynamically with remote API data. -{% endpromptcard %} -{% promptcard Multiple Series Types %} -#SyncfusionBlazorAssistant How do I combine bar and line chart types in a single Syncfusion Chart? -{% endpromptcard %} -{% promptcard Troubleshooting Chart Data Binding %} -#SyncfusionBlazorAssistant Why isn’t my remote data showing up in the Syncfusion Chart? -{% endpromptcard %} -{% promptcard Interactive Range Selector %} -#SyncfusionBlazorAssistant Configure a range selector for zooming and filtering in a time-series chart. -{% endpromptcard %} -{% promptcard Custom Markers and Labels %} -#SyncfusionBlazorAssistant Show me an example of customizing chart markers and data label styles. -{% endpromptcard %} -{% endpromptcards %} - -### Schedule - -The Syncfusion Blazor Schedule component helps manage events, resources, and timelines with powerful views and customization. - -{% promptcards %} -{% promptcard Remote Data Binding %} -#SyncfusionBlazorAssistant Bind the Schedule component to a remote API for dynamic event loading. -{% endpromptcard %} -{% promptcard CRUD Actions %} -#SyncfusionBlazorAssistant Show me how to implement full CRUD operations in the Schedule component. -{% endpromptcard %} -{% promptcard Virtual Scrolling %} -#SyncfusionBlazorAssistant Enable virtual scrolling for large event datasets in the Schedule view. -{% endpromptcard %} -{% promptcard Timezone Support %} -#SyncfusionBlazorAssistant How can I configure timezone support in the Syncfusion Blazor Schedule? -{% endpromptcard %} -{% promptcard Export Schedule to PDF or Excel %} -#SyncfusionBlazorAssistant Add export functionality to download the Schedule view as PDF or Excel. -{% endpromptcard %} -{% promptcard Timeline Header Rows %} -#SyncfusionBlazorAssistant How do I customize timeline header rows in the Schedule component? -{% endpromptcard %} -{% promptcard Troubleshooting Schedule CRUD %} -#SyncfusionBlazorAssistant Why aren’t my CRUD actions working correctly in the Schedule component? -{% endpromptcard %} -{% promptcard Local and Remote Data %} -#SyncfusionBlazorAssistant Bind both local and remote event data to the Schedule component. -{% endpromptcard %} -{% promptcard Export and Timezone %} -#SyncfusionBlazorAssistant Configure timezone-aware exporting for the Schedule view. -{% endpromptcard %} -{% endpromptcards %} - -### Kanban - -The Syncfusion Blazor Kanban organizes tasks in columns with drag-and-drop, swimlanes, and templating for agile workflows. - -{% promptcards %} -{% promptcard Data Binding %} -#SyncfusionBlazorAssistant How do I bind local or remote data to the Syncfusion Blazor Kanban board? -{% endpromptcard %} -{% promptcard Sorting %} -#SyncfusionBlazorAssistant Enable sorting of cards within columns in the Kanban component. -{% endpromptcard %} -{% promptcard Swimlane View %} -#SyncfusionBlazorAssistant Show me how to group Kanban cards using swimlane headers. -{% endpromptcard %} -{% promptcard Kanban Card Editing %} -#SyncfusionBlazorAssistant How can I enable inline editing of Kanban cards? -{% endpromptcard %} -{% promptcard Virtualization %} -#SyncfusionBlazorAssistant Configure virtualization for performance with large Kanban datasets. -{% endpromptcard %} -{% promptcard Localization %} -#SyncfusionBlazorAssistant How do I localize labels and messages in the Kanban component? -{% endpromptcard %} -{% promptcard Drag and Drop %} -#SyncfusionBlazorAssistant Enable drag-and-drop functionality for moving cards between columns. -{% endpromptcard %} -{% promptcard Sorting and Swimlane %} -#SyncfusionBlazorAssistant Create a Kanban board with swimlane grouping and sortable cards. -{% endpromptcard %} -{% promptcard Editable Cards and Localization %} -#SyncfusionBlazorAssistant Show me how to edit cards and apply localization in Kanban. -{% endpromptcard %} -{% promptcard Troubleshooting Kanban Drag and Drop %} -#SyncfusionBlazorAssistant Why isn’t drag-and-drop working correctly in my Kanban board? -{% endpromptcard %} -{% promptcard Remote Data and Virtualization %} -#SyncfusionBlazorAssistant Bind remote data to Kanban and enable virtualization for performance. -{% endpromptcard %} -{% promptcard Advanced Kanban Setup %} -#SyncfusionBlazorAssistant Create a Kanban board with data binding, swimlane, card editing, and drag-and-drop. -{% endpromptcard %} -{% endpromptcards %} - -### RichTextEditor - -The Syncfusion Blazor RichTextEditor offers a modern WYSIWYG editor with extensive formatting, media, and integration features. - -{% promptcards %} -{% promptcard Toolbar Configuration %} -#SyncfusionBlazorAssistant How do I customize the toolbar options in the Syncfusion RichTextEditor? -{% endpromptcard %} -{% promptcard Link Manipulation %} -#SyncfusionBlazorAssistant Show me how to add, edit, and remove hyperlinks in RichTextEditor content. -{% endpromptcard %} -{% promptcard Iframe Mode %} -#SyncfusionBlazorAssistant How can I render the RichTextEditor inside an iframe for isolated styling? -{% endpromptcard %} -{% promptcard Undo and Redo %} -#SyncfusionBlazorAssistant Enable undo and redo functionality in the RichTextEditor toolbar. -{% endpromptcard %} -{% promptcard Forms Integration %} -#SyncfusionBlazorAssistant How do I integrate a Blazor form and validate input? -{% endpromptcard %} -{% promptcard Content Import and Export %} -#SyncfusionBlazorAssistant Export RichTextEditor content to HTML or import existing HTML content. -{% endpromptcard %} -{% promptcard Advanced Toolbar %} -#SyncfusionBlazorAssistant Create a RichTextEditor with toolbar options for formatting, links, and undo/redo. -{% endpromptcard %} -{% promptcard Iframe and Forms Support %} -#SyncfusionBlazorAssistant Use RichTextEditor in iframe mode and bind it to a form for submission. -{% endpromptcard %} -{% promptcard Undo/Redo and Export %} -#SyncfusionBlazorAssistant Enable undo/redo and export content to HTML in RichTextEditor. -{% endpromptcard %} -{% endpromptcards %} - -### Calendar - -The Syncfusion Blazor Calendar supports flexible date selection, localization, and custom rendering. - -{% promptcards %} -{% promptcard Date Range Selection %} -#SyncfusionBlazorAssistant How do I enable date range selection in the Syncfusion Blazor Calendar? -{% endpromptcard %} -{% promptcard Globalization Support %} -#SyncfusionBlazorAssistant Configure the Calendar to support multiple cultures and languages. -{% endpromptcard %} -{% promptcard Multi-Date Selection %} -#SyncfusionBlazorAssistant Show me how to allow users to select multiple dates in the Calendar. -{% endpromptcard %} -{% promptcard Islamic Calendar Support %} -#SyncfusionBlazorAssistant How can I switch the Calendar to use the Islamic calendar system? -{% endpromptcard %} -{% promptcard Skip Months Feature %} -#SyncfusionBlazorAssistant Enable skipping months in the Calendar navigation for faster browsing. -{% endpromptcard %} -{% promptcard Calendar Showing Other Month Days %} -#SyncfusionBlazorAssistant How do I show days from adjacent months in the current Calendar view? -{% endpromptcard %} -{% promptcard Custom Day Cell Format %} -#SyncfusionBlazorAssistant Customize the day cell format in the Calendar to show short weekday names. -{% endpromptcard %} -{% promptcard Calendar Highlighting Weekends %} -#SyncfusionBlazorAssistant Highlight weekends in the Calendar with a different background color. -{% endpromptcard %} -{% promptcard Globalization and Islamic Calendar %} -#SyncfusionBlazorAssistant Configure the Calendar for Arabic culture using Islamic calendar and localization. -{% endpromptcard %} -{% promptcard Multi-Selection and Range %} -#SyncfusionBlazorAssistant Enable both multi-date selection and range selection in the Calendar. -{% endpromptcard %} -{% promptcard Troubleshooting Calendar Date Range %} -#SyncfusionBlazorAssistant Why isn’t my Calendar selecting the correct date range? -{% endpromptcard %} -{% promptcard Advanced Calendar Setup %} -#SyncfusionBlazorAssistant Create a Calendar with date range, multi-selection, globalization, and weekend highlights. -{% endpromptcard %} -{% endpromptcards %} - -## See also - -* [AI Coding Assistant Overview](https://blazor.syncfusion.com/documentation/ai-coding-assistant/overview) -* [SyncfusionBlazorAssistant MCP Server](https://blazor.syncfusion.com/documentation/ai-coding-assistant/mcp-server) diff --git a/blazor/mcp-server/agentic-ui-builder/getting-started.md b/blazor/mcp-server/agentic-ui-builder/getting-started.md new file mode 100644 index 0000000000..e92787418d --- /dev/null +++ b/blazor/mcp-server/agentic-ui-builder/getting-started.md @@ -0,0 +1,90 @@ +--- +layout: post +title: Getting Started with Blazor Agentic UI Builder | Syncfusion +description: Learn how to set up and use the Syncfusion Blazor UI Builder MCP Server for AI-powered assistance in building Blazor applications with Syncfusion components. +control: Getting started with Syncfusion Blazor UI Builder MCP Server +platform: blazor +documentation: ug +domainurl: ##DomainURL## +--- + +# Getting Started with Agentic UI Builder + +The **Syncfusion® Blazor UI Builder** uses AI to help you build Blazor applications with natural language commands. Simply describe what you want to create, and it generates complete UI implementations with Syncfusion components. + +## Installation + +Follow the [Installation Guide](../installation) to set up the MCP server in your development environment. + +## Usage + +Once installed, open your AI assistant in the IDE and describe what you want to build with the `#sf_blazor_ui_builder` command: + +``` +#sf_blazor_ui_builder Create a dashboard with a sales data grid and monthly trend chart. + +``` + +The UI Builder generates complete implementations including layout, components, and styling. + +> Note: Using the `#sf_blazor_ui_builder` tool ensures the Agentic UI Builder is invoked directly. Alternatively, you can use natural language without the tool - just make sure to include the "Syncfusion" keyword in your prompt so the AI model can automatically recognize and call the appropriate generator. + +## Individual Tools + +For targeted assistance, you can call individual tools directly using their specific tool names. This is useful when you need specialized help from a particular tool. + +### Layout Tool (`#sf_blazor_layout`) + +Provides a catalog of pre-built, responsive UI layout templates and blocks for common page sections and design patterns. + +**When to use:** Page structures, responsive layouts, or pre-built UI patterns. + +**Example:** + +``` +#sf_blazor_layout Create a responsive card layout for product listings. +``` + +### Component Tool (`#sf_blazor_component`) + +Provides quick reference guidelines for Syncfusion Blazor components, including properties, event handlers, methods, and usage examples. + +**When to use:** To get basic component API information and structure details for implementing specific components correctly. + +**Example:** +``` +#sf_blazor_component How do I integrate a data table? +``` + +### Style Tool (`#sf_blazor_style`) + +Provides theme configuration, styling setup, and icon integration for Syncfusion Blazor components. Supports multiple themes (Tailwind3 CSS, Bootstrap 5.3, Material 3, Fluent 2), light/dark mode implementation, and icon patterns for consistent UI styling. + +**When to use:** To apply themes, customize colors, modify the visual design of components, or integrate icons into your UI. + +**Example:** +``` +#sf_blazor_style How do I apply the Syncfusion Tailwind 3 dark theme and add a communication icon inside a button? +``` + +## Best Practices + +To maximize the effectiveness of the Agentic UI Builder and achieve optimal results: + +- **Minimize active tools:** Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy. +- **Start simple:** Begin with straightforward prompts and progressively add complexity as needed. +- **Be specific:** Provide clear, specific descriptions of your layout requirements, component behavior, and design preferences. +- **Reference patterns:** Mention existing design systems, component libraries, or specific patterns you want to replicate. +- **Stay consistent:** Maintain consistent file organization, naming conventions, and coding standards throughout your Blazor project. +- **Work incrementally:** For better control and precision—break down complex layouts into individual sections rather than requesting multiple blocks simultaneously. +- **Use advanced AI models:** For best results, use **Claude Sonnet 4.5 or higher** models. Other compatible models include **GPT-5 and Gemini 3 Pro**. Higher-capability models produce better code quality and more accurate component implementations. + +> Always review AI-generated code before using it in production. + +## What's Next + +Now that you've set up the Agentic UI Builder, explore these resources: + +* **[Prompt Library](./prompt-library)** - Ready-to-use prompts for common scenarios +* **[Showcase Sample Projects](https://www.syncfusion.com/showcase-apps/blazor)** - Full application examples +* **[Component Examples](https://blazor.syncfusion.com/demos/)** - Interactive demos of all Syncfusion Blazor components diff --git a/blazor/mcp-server/agentic-ui-builder/prompt-library.md b/blazor/mcp-server/agentic-ui-builder/prompt-library.md new file mode 100644 index 0000000000..f8f4eded00 --- /dev/null +++ b/blazor/mcp-server/agentic-ui-builder/prompt-library.md @@ -0,0 +1,126 @@ +--- +layout: post +title: Blazor Agentic UI Builder Prompt Library | Syncfusion +description: Explore the Agentic UI Builder Prompt Library to enhance Blazor productivity with layout blocks, component guidance, styling, and icons. +control: Syncfusion Blazor Agentic UI Builder Prompt Library +platform: blazor +documentation: ug +domainurl: ##DomainURL## +--- + +# Prompt Library - Agentic UI Builder + +Speed up Blazor development with ready-made prompts for common scenarios. Use them to generate complete applications, components, layouts, and custom styling. + +## How to Use + +Ensure that the Syncfusion MCP Server is configured and running before executing prompts. + +* Select a prompt that aligns with your development requirements. +* Copy the complete prompt, including the tool (e.g., #sf_blazor_ui_builder). +* Customize the prompt for your specific use case. +* Execute the prompt through the MCP Server. +* Validate all generated code through thorough testing before production deployment. + +## General Project Prompts + +These flexible prompts address common application development scenarios using intuitive natural language descriptions. + +{% promptcards %} +{% promptcard Authentication %} +#sf_blazor_ui_builder Create a login page with the Tailwind 3 theme using a centered card layout containing email and password input fields with validation. Include a "Remember Me" checkbox, a forgot password link, and a primary login button. Add a secondary "Create Account" button below. Ensure the layout is responsive and works on mobile, tablet, and desktop. +{% endpromptcard %} +{% promptcard Book Library Dashboard %} +#sf_blazor_ui_builder Create a book library dashboard page with the Bootstrap 5.3 theme displaying a grid of book cards showing cover images, titles, authors, and reading progress bars. Add a search box and genre filter dropdown at the top. Include a sidebar showing reading statistics with charts for books completed this month, reading streaks, and favorite genres. Make the grid responsive (4 columns on desktop, 2 on tablet, 1 on mobile). +{% endpromptcard %} +{% promptcard Product Listing %} +#sf_blazor_ui_builder Create a product catalog page with the Fluent 2 theme featuring a left sidebar containing category filters and a price range slider. The main content area should display product cards in a responsive grid layout (4 columns on desktop, 2 on tablet, 1 on mobile). Add a search box and sort dropdown at the top of the main content area. Include pagination at the bottom. +{% endpromptcard %} +{% promptcard Course Details Page %} +#sf_blazor_ui_builder Create a course details page with the Material 3 theme, including a video player section at the top. Below the video, display the course overview; curriculum using a TreeView component with expandable chapters and lessons; student reviews with rating distribution; and frequently asked questions in separate card sections. Add a right sidebar with a course enrollment card showing price, an enroll button, instructor details with avatar and biography, and a course progress indicator. +{% endpromptcard %} +{% promptcard Task Management %} +#sf_blazor_ui_builder Build a task board page using a Kanban layout with columns for To Do, In Progress, and Completed. Add an "Add Task" button and a search field at the top. Each task card should show title, assignee avatar, due date, and priority badge. Make the columns scrollable, with drag-and-drop functionality. Include filter dropdowns for priority and assignee. +{% endpromptcard %} +{% promptcard Order Tracking %} +#sf_blazor_ui_builder Create an order tracking page with the Tailwind 3 theme featuring a search bar at the top to look up orders by ID. Display order details in a card layout showing customer info, order items in a grid, and order status using a stepper component. Add a timeline on the right showing shipping updates and delivery progress. +{% endpromptcard %} +{% endpromptcards %} + +## Tool-Specific Prompts + +This section provides targeted prompt examples for directly invoking individual specialized tools, offering more precise control over specific aspects of your application. + +### Layout Tool + +The Layout tool orchestrates page structure, element positioning, and responsive behavior. Use #sf_blazor_layout when working with spatial arrangement and viewport adaptation. + +{% promptcards %} +{% promptcard Book Library Statistics Panel %} +#sf_blazor_layout Add a statistics panel below the search area with cards showing books completed, reading streak, and favorite genres. Use a 3-column layout (desktop), 2-column (tablet), and stacked (mobile). +{% endpromptcard %} +{% promptcard Product Quick View Modal %} +#sf_blazor_layout Create a centered modal with a product image gallery (left 50%) and details (right 50%). Add a close button at the top-right. Stack vertically on mobile. +{% endpromptcard %} +{% promptcard Two-Column Form %} +#sf_blazor_layout Design a form with a centered container (max-width 1200px). Two equal columns on desktop: user info (left), address (right). Full-width terms and submit button at the bottom. Stack on tablet/mobile. +{% endpromptcard %} +{% promptcard Admin Panel with Sidebar %} +#sf_blazor_layout Create a layout with a left sidebar (280px, navigation), top header (logo, user profile), breadcrumb, and main content area. Collapse the sidebar to a hamburger menu on mobile. +{% endpromptcard %} +{% endpromptcards %} + +### Component Tool + +The Component tool implements specific Syncfusion Blazor components with configured properties and event handlers. Use #sf_blazor_component for targeted component integration. + +{% promptcards %} +{% promptcard Advanced Data Grid Setup %} +#sf_blazor_component Create a Grid with paging (20 per page), sorting, and filtering. Columns: product image, name (link), category, price (currency), stock status (badge), actions (edit/delete). Enable row selection and Excel export. +{% endpromptcard %} +{% promptcard Event Calendar Integration %} +#sf_blazor_component Add a Scheduler with month/day/week/agenda views. Toolbar with date navigation, view switcher, and an "Add Event" button. Color-coded categories and drag-and-drop rescheduling. +{% endpromptcard %} +{% promptcard Multi-Step Form Wizard %} +#sf_blazor_component Build a step-by-step registration form with validation per step. Steps: TextBox (personal info), DropDownList (preferences), FileUpload (documents), summary. Add progress indicators and navigation with validation. +{% endpromptcard %} +{% promptcard Real-Time Chart Dashboard %} +#sf_blazor_component Create a Chart component with a line series for real-time data visualization. Configure multiple y-axes, a tooltip with custom formatting, a legend with toggling, and zoom/pan functionality. Update data every 5 seconds. +{% endpromptcard %} +{% endpromptcards %} + +### Styling Tool + +The Styling tool applies custom themes, color schemes, visual treatments, and iconography across your application. Use #sf_blazor_style for branding, aesthetic customization, and icon integration. + +{% promptcards %} +{% promptcard Tailwind3 Dark Mode Setup %} +#sf_blazor_style Apply the Syncfusion Tailwind 3 dark theme to the application. Configure CSS variables for the dark mode color scheme and enable theme toggle functionality. +{% endpromptcard %} +{% promptcard Bootstrap5.3 Theme Customization %} +#sf_blazor_style Customize the Syncfusion Bootstrap 5.3 theme using CSS variables. Modify primary colors, component spacing, and typography to match brand guidelines. +{% endpromptcard %} +{% promptcard Fluent2 Responsive Styling %} +#sf_blazor_style Apply the Syncfusion Fluent 2 theme with responsive adjustments. Customize component sizes, spacing, and layout breakpoints for mobile, tablet, and desktop views. +{% endpromptcard %} +{% promptcard Material3 CSS Variables %} +#sf_blazor_style Configure the Syncfusion Material 3 theme CSS variables for a custom color palette, elevation shadows, border radius, and component-specific styling properties. +{% endpromptcard %} +{% promptcard User Actions & Navigation %} +#sf_blazor_style Add appropriate icons for common user interactions in the application toolbar, including editing capabilities, navigation controls, and accessing various options. +{% endpromptcard %} +{% promptcard Content Editor Toolbar %} +#sf_blazor_style Implement icons for text formatting operations, table manipulation, and image editing tools in the Rich Text Editor. +{% endpromptcard %} +{% promptcard Analytics Dashboard %} +#sf_blazor_style Update icons for data visualization elements, chart representations, and trend indicators in the analytics dashboard. +{% endpromptcard %} +{% promptcard Document Management %} +#sf_blazor_icon Find icons for file operations, document processing, printing capabilities, and export functionality in the File Manager toolbar. +{% endpromptcard %} +{% endpromptcards %} + +## See also + +* [Agentic UI Builder - Getting Started](./getting-started) +* [AI Coding Assistant - Getting Started](../ai-coding-assistant/getting-started) diff --git a/blazor/mcp-server/ai-coding-assistant/getting-started.md b/blazor/mcp-server/ai-coding-assistant/getting-started.md new file mode 100644 index 0000000000..00a22cb3e6 --- /dev/null +++ b/blazor/mcp-server/ai-coding-assistant/getting-started.md @@ -0,0 +1,53 @@ +--- +layout: post +title: Getting Started with the AI Coding Assistant for Blazor | Syncfusion +description: Learn how to configure and use AI Coding Assistant for intelligent code generation, documentation, and troubleshooting in Blazor apps. +control: Getting Started with the AI Coding Assistant +platform: blazor +documentation: ug +domainurl: ##DomainURL## +--- + +# Getting Started with the AI Coding Assistant + +The **Syncfusion® AI Coding Assistant** is designed to streamline the development workflow for Blazor applications that use Syncfusion® components. It leverages contextual knowledge of the Syncfusion component library to generate code snippets, configuration examples, and guided explanations—reducing documentation lookups and increasing productivity. + +## Installation + +Follow the [Installation Guide](../installation) to set up the MCP Server in your development environment. + +## Usage + +Activate the AI Coding Assistant in your IDE by using the `#sf_blazor_assistant` command followed by your query: + +``` +#sf_blazor_assistant How do I enable paging and sorting in the Syncfusion Blazor Grid? + +``` + +### Common Use Cases + +| Use Case | Description | Example Query | +|----------|-------------|---------------| +| **Component Generation** | Generate complete component implementations with configurations | `#sf_blazor_assistant Create a data grid with inline editing, paging, and toolbar options for CRUD operations` | +| **Feature Implementation** | Get specific feature implementations for existing components | `#sf_blazor_assistant Add export to Excel functionality in my existing Grid component` | +| **Troubleshooting** | Resolve issues by describing the problem | `#sf_blazor_assistant Scheduler is not displaying events properly. What could be wrong with the data binding?` | +| **API Reference** | Quickly access API information | `#sf_blazor_assistant What are the available event arguments for the Grid's actionComplete event?` | + +### Best Practices + +1. **Be Specific**: Include platform and component (e.g., "Create a Syncfusion Blazor Grid with paging and filtering"). +2. **Provide Context**: Share versions, desired behavior, and constraints. +3. **Use Descriptive Queries**: Avoid vague questions. +4. **Troubleshooting**: Use AI suggestions for common issues; consult official [documentation](https://blazor.syncfusion.com/documentation) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems. +5. **Start Fresh**: Begin a new chat for new topics to maintain clean context. + +> Always review AI-generated code before using it in production. + +## What's Next + +Now that you've set up the AI Coding Assistant, explore these resources: + +* **[Prompt Library](./prompt-library)** - Ready-to-use prompts for common scenarios +* **[Component Examples](https://blazor.syncfusion.com/demos/)** - Interactive demos of all Syncfusion Blazor components +* **[API Documentation](https://help.syncfusion.com/cr/blazor)** - Complete API reference diff --git a/blazor/mcp-server/ai-coding-assistant/prompt-library.md b/blazor/mcp-server/ai-coding-assistant/prompt-library.md new file mode 100644 index 0000000000..0ffb0280e4 --- /dev/null +++ b/blazor/mcp-server/ai-coding-assistant/prompt-library.md @@ -0,0 +1,270 @@ +--- +layout: post +title: Syncfusion AI Coding Assistant Prompt Library | Syncfusion +description: Explore the AI Coding Assistant Prompt Library to enhance Blazor development productivity with code generation, configuration examples, and contextual guidance. +control: Syncfusion AI Coding Assistant Prompt Library +platform: Blazor +documentation: ug +domainurl: ##DomainURL## +--- + +# Prompt Library - AI Coding Assistant + +Speed up your Blazor projects using these ready-made prompts for popular Syncfusion components. Each prompt is short, easy to understand, and focused on real tasks—like quick setups, tweaks, and fixes. + +## How to use + +Before starting, make sure your MCP Server is set up and running. + +* Choose a prompt that fits your need. +* Copy the full prompt with the #sf_blazor_assistant tool. +* Customize the prompt for your specific use case. +* Execute via the MCP Server. +* Always check and test the code before adding it to your project. + +## Component-specific Prompts + +### Grid + +The Syncfusion Blazor Data Grid delivers fast, flexible tables for large datasets with built-in interactivity. + +{% promptcards %} +{% promptcard Paging and Sorting %} +#sf_blazor_assistant How do I enable paging and sorting in the Syncfusion Blazor Grid? +{% endpromptcard %} +{% promptcard Grouping and Filtering %} +#sf_blazor_assistant Show me an example of grouping and filtering data in the Grid component. +{% endpromptcard %} +{% promptcard CRUD Operations %} +#sf_blazor_assistant What’s the code to implement full CRUD operations in Syncfusion Blazor Grid? +{% endpromptcard %} +{% promptcard Grid Export to PDF and Excel %} +#sf_blazor_assistant How can I add PDF and Excel export options to the Grid toolbar? +{% endpromptcard %} +{% promptcard Virtual Scrolling %} +#sf_blazor_assistant How do I configure virtual scrolling for large datasets in the Grid? +{% endpromptcard %} +{% promptcard Multicolumn Grid Setup %} +#sf_blazor_assistant Create a multicolumn Grid to display product details with sorting and filtering. +{% endpromptcard %} +{% promptcard Chat Integration %} +#sf_blazor_assistant How can I integrate a chat widget inside each row of the Syncfusion Grid? +{% endpromptcard %} +{% promptcard Advanced Grid Features %} +#sf_blazor_assistant Show me a Grid with paging, sorting, grouping, filtering, and virtual scrolling +{% endpromptcard %} +{% promptcard Troubleshooting Grid Export %} +#sf_blazor_assistant Why isn’t my Grid exporting to PDF and Excel correctly? +{% endpromptcard %} +{% promptcard Inline Editing %} +#sf_blazor_assistant How do I enable inline editing for CRUD operations in the Grid? +{% endpromptcard %} +{% promptcard Custom Toolbar %} +#sf_blazor_assistant Add custom toolbar buttons for PDF and Excel export in the Grid. +{% endpromptcard %} +{% promptcard Dynamic Column Configuration %} +#sf_blazor_assistant How can I dynamically configure multicolumn layout with filtering and sorting? +{% endpromptcard %} +{% endpromptcards %} + +### Chart + +The Syncfusion Blazor Chart suite offers versatile visualization tools across various series types for insightful data representation. + +{% promptcards %} +{% promptcard Local and Remote Data %} +#sf_blazor_assistant How do I bind both local and remote data sources to a Syncfusion Chart? +{% endpromptcard %} +{% promptcard Range Selection %} +#sf_blazor_assistant Show me how to enable range selection in a Syncfusion Blazor Chart. +{% endpromptcard %} +{% promptcard Chart Types Overview %} +#sf_blazor_assistant What chart types are available in Syncfusion Blazor Chart and how to configure them? +{% endpromptcard %} +{% promptcard Markers and Data Labels %} +#sf_blazor_assistant How can I display markers and data labels on a line chart? +{% endpromptcard %} +{% promptcard Annotations %} +#sf_blazor_assistant Add custom annotations to highlight specific data points in a chart. +{% endpromptcard %} +{% promptcard Chart Export to Image or PDF %} +#sf_blazor_assistant How do I export a Syncfusion Chart to PDF or image format? +{% endpromptcard %} +{% promptcard Print Support %} +#sf_blazor_assistant Enable print functionality for a Syncfusion Blazor Chart component. +{% endpromptcard %} +{% promptcard Dynamic Chart with Remote Data %} +#sf_blazor_assistant Create a chart that updates dynamically with remote API data. +{% endpromptcard %} +{% promptcard Multiple Series Types %} +#sf_blazor_assistant How do I combine bar and line chart types in a single Syncfusion Chart? +{% endpromptcard %} +{% promptcard Troubleshooting Chart Data Binding %} +#sf_blazor_assistant Why isn’t my remote data showing up in the Syncfusion Chart? +{% endpromptcard %} +{% promptcard Interactive Range Selector %} +#sf_blazor_assistant Configure a range selector for zooming and filtering in a time-series chart. +{% endpromptcard %} +{% promptcard Custom Markers and Labels %} +#sf_blazor_assistant Show me an example of customizing chart markers and data label styles. +{% endpromptcard %} +{% endpromptcards %} + +### Schedule + +The Syncfusion Blazor Schedule component helps manage events, resources, and timelines with powerful views and customization. + +{% promptcards %} +{% promptcard Remote Data Binding %} +#sf_blazor_assistant Bind the Schedule component to a remote API for dynamic event loading. +{% endpromptcard %} +{% promptcard CRUD Actions %} +#sf_blazor_assistant Show me how to implement full CRUD operations in the Schedule component. +{% endpromptcard %} +{% promptcard Virtual Scrolling %} +#sf_blazor_assistant Enable virtual scrolling for large event datasets in the Schedule view. +{% endpromptcard %} +{% promptcard Timezone Support %} +#sf_blazor_assistant How can I configure timezone support in the Syncfusion Blazor Schedule? +{% endpromptcard %} +{% promptcard Export Schedule to PDF or Excel %} +#sf_blazor_assistant Add export functionality to download the Schedule view as PDF or Excel. +{% endpromptcard %} +{% promptcard Timeline Header Rows %} +#sf_blazor_assistant How do I customize timeline header rows in the Schedule component? +{% endpromptcard %} +{% promptcard Troubleshooting Schedule CRUD %} +#sf_blazor_assistant Why aren’t my CRUD actions working correctly in the Schedule component? +{% endpromptcard %} +{% promptcard Local and Remote Data %} +#sf_blazor_assistant Bind both local and remote event data to the Schedule component. +{% endpromptcard %} +{% promptcard Export and Timezone %} +#sf_blazor_assistant Configure timezone-aware exporting for the Schedule view. +{% endpromptcard %} +{% endpromptcards %} + +### Kanban + +The Syncfusion Blazor Kanban organizes tasks in columns with drag-and-drop, swimlanes, and templating for agile workflows. + +{% promptcards %} +{% promptcard Data Binding %} +#sf_blazor_assistant How do I bind local or remote data to the Syncfusion Blazor Kanban board? +{% endpromptcard %} +{% promptcard Sorting %} +#sf_blazor_assistant Enable sorting of cards within columns in the Kanban component. +{% endpromptcard %} +{% promptcard Swimlane View %} +#sf_blazor_assistant Show me how to group Kanban cards using swimlane headers. +{% endpromptcard %} +{% promptcard Kanban Card Editing %} +#sf_blazor_assistant How can I enable inline editing of Kanban cards? +{% endpromptcard %} +{% promptcard Virtualization %} +#sf_blazor_assistant Configure virtualization for performance with large Kanban datasets. +{% endpromptcard %} +{% promptcard Localization %} +#sf_blazor_assistant How do I localize labels and messages in the Kanban component? +{% endpromptcard %} +{% promptcard Drag and Drop %} +#sf_blazor_assistant Enable drag-and-drop functionality for moving cards between columns. +{% endpromptcard %} +{% promptcard Sorting and Swimlane %} +#sf_blazor_assistant Create a Kanban board with swimlane grouping and sortable cards. +{% endpromptcard %} +{% promptcard Editable Cards and Localization %} +#sf_blazor_assistant Show me how to edit cards and apply localization in Kanban. +{% endpromptcard %} +{% promptcard Troubleshooting Kanban Drag and Drop %} +#sf_blazor_assistant Why isn’t drag-and-drop working correctly in my Kanban board? +{% endpromptcard %} +{% promptcard Remote Data and Virtualization %} +#sf_blazor_assistant Bind remote data to Kanban and enable virtualization for performance. +{% endpromptcard %} +{% promptcard Advanced Kanban Setup %} +#sf_blazor_assistant Create a Kanban board with data binding, swimlane, card editing, and drag-and-drop. +{% endpromptcard %} +{% endpromptcards %} + +### RichTextEditor + +The Syncfusion Blazor RichTextEditor offers a modern WYSIWYG editor with extensive formatting, media, and integration features. + +{% promptcards %} +{% promptcard Toolbar Configuration %} +#sf_blazor_assistant How do I customize the toolbar options in the Syncfusion RichTextEditor? +{% endpromptcard %} +{% promptcard Link Manipulation %} +#sf_blazor_assistant Show me how to add, edit, and remove hyperlinks in RichTextEditor content. +{% endpromptcard %} +{% promptcard Iframe Mode %} +#sf_blazor_assistant How can I render the RichTextEditor inside an iframe for isolated styling? +{% endpromptcard %} +{% promptcard Undo and Redo %} +#sf_blazor_assistant Enable undo and redo functionality in the RichTextEditor toolbar. +{% endpromptcard %} +{% promptcard Forms Integration %} +#sf_blazor_assistant How do I integrate a Blazor form and validate input? +{% endpromptcard %} +{% promptcard Content Import and Export %} +#sf_blazor_assistant Export RichTextEditor content to HTML or import existing HTML content. +{% endpromptcard %} +{% promptcard Advanced Toolbar %} +#sf_blazor_assistant Create a RichTextEditor with toolbar options for formatting, links, and undo/redo. +{% endpromptcard %} +{% promptcard Iframe and Forms Support %} +#sf_blazor_assistant Use RichTextEditor in iframe mode and bind it to a form for submission. +{% endpromptcard %} +{% promptcard Undo/Redo and Export %} +#sf_blazor_assistant Enable undo/redo and export content to HTML in RichTextEditor. +{% endpromptcard %} +{% endpromptcards %} + +### Calendar + +The Syncfusion Blazor Calendar supports flexible date selection, localization, and custom rendering. + +{% promptcards %} +{% promptcard Date Range Selection %} +#sf_blazor_assistant How do I enable date range selection in the Syncfusion Blazor Calendar? +{% endpromptcard %} +{% promptcard Globalization Support %} +#sf_blazor_assistant Configure the Calendar to support multiple cultures and languages. +{% endpromptcard %} +{% promptcard Multi-Date Selection %} +#sf_blazor_assistant Show me how to allow users to select multiple dates in the Calendar. +{% endpromptcard %} +{% promptcard Islamic Calendar Support %} +#sf_blazor_assistant How can I switch the Calendar to use the Islamic calendar system? +{% endpromptcard %} +{% promptcard Skip Months Feature %} +#sf_blazor_assistant Enable skipping months in the Calendar navigation for faster browsing. +{% endpromptcard %} +{% promptcard Calendar Showing Other Month Days %} +#sf_blazor_assistant How do I show days from adjacent months in the current Calendar view? +{% endpromptcard %} +{% promptcard Custom Day Cell Format %} +#sf_blazor_assistant Customize the day cell format in the Calendar to show short weekday names. +{% endpromptcard %} +{% promptcard Calendar Highlighting Weekends %} +#sf_blazor_assistant Highlight weekends in the Calendar with a different background color. +{% endpromptcard %} +{% promptcard Globalization and Islamic Calendar %} +#sf_blazor_assistant Configure the Calendar for Arabic culture using Islamic calendar and localization. +{% endpromptcard %} +{% promptcard Multi-Selection and Range %} +#sf_blazor_assistant Enable both multi-date selection and range selection in the Calendar. +{% endpromptcard %} +{% promptcard Troubleshooting Calendar Date Range %} +#sf_blazor_assistant Why isn’t my Calendar selecting the correct date range? +{% endpromptcard %} +{% promptcard Advanced Calendar Setup %} +#sf_blazor_assistant Create a Calendar with date range, multi-selection, globalization, and weekend highlights. +{% endpromptcard %} +{% endpromptcards %} + +## See also + +* [AI Coding Assistant - Getting Started](./getting-started) +* [Agentic UI Builder - Getting Started](../agentic-ui-builder/getting-started) diff --git a/blazor/mcp-server/installation.md b/blazor/mcp-server/installation.md new file mode 100644 index 0000000000..a3cfc865ce --- /dev/null +++ b/blazor/mcp-server/installation.md @@ -0,0 +1,207 @@ +--- +layout: post +title: Installation Guide | Syncfusion Blazor MCP Server +description: Step-by-step guide to install and set up the Syncfusion Blazor MCP server in VS Code, Cursor, and Code Studio for AI-powered Blazor development. +control: Installation +platform: blazor +documentation: ug +domainurl: ##DomainURL## +--- + +# Installing Syncfusion MCP Server + +Syncfusion MCP Server provide AI-powered assistance for building Blazor applications with Syncfusion components. This guide will help you install and configure the MCP server in your development environment. + +## Available Modes + +The Syncfusion MCP Server offer two modes: + +* **Agentic UI Builder** – Complete toolkit for building user interfaces with Layout, Component, and Styling tools. Coordinates multi-step workflows automatically. +* **AI Coding Assistant** – Provides contextual component documentation, code snippets, and configuration examples to accelerate development and reduce documentation lookups. + +## Prerequisites + +Before you begin, ensure you have: + +* Required [Node.js](https://nodejs.org/en/) version >= 18 +* A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, etc.) +* Active [Syncfusion® API key](https://syncfusion.com/account/api-key) +* Blazor application (existing or new); see [Quick Start](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app) +* Active Syncfusion® license (any of the following): + - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense) + - [Free Community License](https://www.syncfusion.com/products/communitylicense) + - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials) + +### Getting your API Key + +Obtain your Syncfusion API key before proceeding: + +1. Log in to your [Syncfusion account](https://www.syncfusion.com/account/) +2. Navigate to the [API Key page](https://www.syncfusion.com/account/api-key) +3. Generate your API key +4. Keep this key ready for configuration + +**Configuration Options:** + +* **Option 1: Using an API Key File (Recommended)** + + Store your API key in a separate file and reference its path in the `Syncfusion_API_Key_Path` environment parameter. This approach enhances security by keeping the key separate from configuration files. + + **Supported formats:** `.txt` or `.key` + +```json +"env": { + "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH" // "D:\\syncfusion-key.txt" or "D:\\syncfusion-key.key" +} +``` + +* **Option 2: Using a Direct API Key** + + Set the key directly in the MCP configuration: + +```json +"env": { + "Syncfusion_API_Key": "YOUR_API_KEY" +} +``` + +> If both the key file and the environment variable are provided, the file path specified in `Syncfusion_API_Key_Path` takes priority. + +## Generic MCP Server Settings + +All MCP clients require these standard settings for the Syncfusion MCP Server: + +* **npm package name**: `@syncfusion/blazor-assistant` +* **Type**: `stdio` (standard input/output transport) +* **Command**: `npx` +* **Arguments**: `-y` +* **Server name**: `sf-blazor-mcp` + +## Setting up in MCP Clients + +Syncfusion MCP Server can be configured at two levels: + +* **Global-level**—Server is available across all projects in your IDE +* **Workspace-level**—Server is available only for a specific project or workspace + +The following sections provide detailed setup instructions for popular development environments. + +### Global Configuration + +Configure the Syncfusion MCP Server globally to make it available across all workspaces in your IDE. + +{% tabs %} +{% highlight bash tabtitle="VS Code" %} + +1. Click here to open the installation link. +2. Replace `YOUR_API_KEY` with your actual Syncfusion API key. +3. Follow the prompts to complete the installation. + +For more information, see the [VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers). + +{% endhighlight %} +{% highlight bash tabtitle="Cursor" %} + +1. Click here to open the installation link. +2. Update the `YOUR_API_KEY_FILE_PATH` with the path to your API key file. +3. Follow the prompts to complete the installation. + +For more information, see the [Cursor MCP documentation](https://cursor.com/docs/context/mcp). + +{% endhighlight %} +{% highlight bash tabtitle="Code Studio" %} + +1. Open the [MCP Marketplace](https://www.syncfusion.com/code-studio/) in Code Studio. +2. Search for `Syncfusion Blazor Assistant` and click **Install**. +3. Enter your [Syncfusion API key](https://syncfusion.com/account/api-key) when prompted. +4. The server installs and appears in the Installed list. + +For more information, see the [Code Studio MCP documentation](https://help.syncfusion.com/code-studio/reference/configure-properties/mcp/marketplace). + +{% endhighlight %} +{% endtabs %} + +### Workspace Configuration + +Install the server for a specific project, create a configuration file in your project folder. + +**Important:** Replace `YOUR_API_KEY_FILE_PATH` or `YOUR_API_KEY` with your actual API key. + +{% tabs %} +{% highlight bash tabtitle="VS Code" %} + +Create a `.vscode/mcp.json` file in your workspace with the MCP server configuration: + +{ + "servers": { + "sf-blazor-mcp": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@syncfusion/blazor-assistant@latest"], + "env": { + "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH" + // or + // "Syncfusion_API_Key": "YOUR_API_KEY" + } + } + } +} + +{% endhighlight %} +{% highlight bash tabtitle="Cursor" %} + +Create a `.cursor/mcp.json` file in your workspace with the MCP server configuration: + +{ + "mcpServers": { + "sf-blazor-mcp": { + "command": "npx", + "args": ["-y", "@syncfusion/blazor-assistant@latest"], + "env": { + "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH" + // or + // "Syncfusion_API_Key": "YOUR_API_KEY" + } + } + } +} + +{% endhighlight %} +{% endtabs %} + +**Verify Installation:** Check your editor's MCP Server list for `sf-blazor-mcp` appears with a "Connected" status to confirm successful installation. + +## What's Next + +With the MCP server installed, explore the getting started guide for your chosen configuration: + +* [Agentic UI Builder - Getting Started](./agentic-ui-builder/getting-started) +* [AI Coding Assistant - Getting Started](./ai-coding-assistant/getting-started) + +## Troubleshooting + +If you encounter issues during installation or while using the MCP server, refer to the solutions below: + +| Issue | Solution | +|-------|----------| +| **Clear npm cache** | Run `npx clear-npx-cache` and restart your IDE to resolve package caching issues | +| **Server failed to start** | Update to Node.js 18+, verify JSON syntax in config file, and restart your IDE | +| **Invalid API key** | Verify your key is active at [Syncfusion Account Page](https://syncfusion.com/account/api-key) | +| **Incorrect API key config** | For the file path: Verify file location and content. For inline key: Check key is properly updated | +| **Wrong config file location** | VS Code: `.vscode/mcp.json` • CodeStudio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root | +| **Check IDE logs** | VS Code/CodeStudio: Output panel → "MCP" • Cursor: Developer Console for MCP errors | + +## Support + +Product support is available through the following media. + +* [Support ticket](https://support.syncfusion.com/support/tickets/create) - Guaranteed response in 24 hours \| Unlimited tickets \| Holiday support +* [Community forum](https://www.syncfusion.com/forums/essential-js2) +* [Request feature or report bug](https://www.syncfusion.com/feedback/javascript) +* [Live chat](https://www.syncfusion.com/support) + +## See also + +* [MCP Server Overview](./overview) +* [Agentic UI Builder - Getting Started](./agentic-ui-builder/getting-started) +* [AI Coding Assistant - Getting Started](./ai-coding-assistant/getting-started) diff --git a/blazor/mcp-server/overview.md b/blazor/mcp-server/overview.md new file mode 100644 index 0000000000..e8922d4d75 --- /dev/null +++ b/blazor/mcp-server/overview.md @@ -0,0 +1,87 @@ +--- +layout: post +title: AI and Smart Tooling for Blazor Development | Syncfusion +description: Accelerate Blazor development with Syncfusion MCP Server - instant access to component APIs, UI blocks, themes, and 600+ icons via MCP in your IDE. +control: Syncfusion Blazor MCP Server Overview +platform: blazor +documentation: ug +domainurl: ##DomainURL## +--- + +# Syncfusion MCP Server Overview + +Syncfusion's MCP Server accelerate Blazor application development by providing deep context-aware knowledge directly in your AI-powered IDE. Through Model Context Protocol (MCP) integration, you get instant access to component APIs, pre-built UI blocks, styling configurations, icon libraries, and code generation - all without leaving your development environment. + +Use these tools to speed up development and follow best practices when building dashboards, interfaces, or integrating components. + +## Key Benefits + +* **Expert Component Knowledge** - Deep understanding of 145+ Blazor components and their implementation patterns. +* **Design System Integration** - Guidance for Tailwind3 CSS, Bootstrap 5.3, Material 3, and Fluent 2 design systems with utility-based styling. +* **Pre-Built Layouts** - Ready-to-use UI blocks for rapid application development. +* **Comprehensive Icon Library** - 600+ icons with component integration and accessibility guidance. +* **Unlimited Usage** - No request limits, time restrictions, or query caps. +* **Privacy-Focused** - Your data remains secure. The tools do not access files, store data, or use your prompts for training purposes. + +## How it works + +Syncfusion MCP Server are delivered as an npm-based Model Context Protocol (MCP) server that integrates seamlessly with AI-powered development environments. The server provides two specialized modes tailored to different development workflows: + +**Agentic UI Builder** (`#sf_blazor_ui_builder`) +Build complete UIs with coordinated tools for layout, components, styling, and icons. Perfect for creating pages, dashboards, and complex sections from scratch. + +**AI Coding Assistant** (`#sf_blazor_assistant`) +Implement individual components with focused API guidance. Ideal for adding components to existing projects and troubleshooting integration issues. + +## Getting Started + +1. **Install** the MCP server package in your AI-powered IDE. +2. **Choose your mode** - `#sf_blazor_ui_builder` for complete UIs or `#sf_blazor_assistant` for component-specific tasks. +3. **Describe** what you want to build - the AI generates production-ready code that follows best practices. + +For detailed setup instructions, see the [Installation Guide](installation). + +## Available Tools + +Syncfusion MCP Server includes five specialized tools that work together to streamline your development workflow: + +* **UI Builder Orchestrator** - Analyzes requirements and coordinates multiple tools to build complete UIs +* **Layout Tool** - Provides pre-built, responsive UI blocks (headers, footers, sidebars, dashboards, forms) +* **Component Tool** - Delivers API and implementation guidance for Syncfusion Blazor components +* **Styling Tool** - Generates theme configurations for Tailwind CSS, Bootstrap, Material, and Fluent with light/dark mode support, and also provides a comprehensive icon library with component‑level integration patterns and accessibility guidance. +* **Coding Assistant Tool** - Provides contextual component documentation, code snippets, and configuration examples for individual Syncfusion Blazor components + +## Unlimited Access + +Syncfusion provides unlimited access to the MCP Server with no restrictions on: + +* Number of requests +* Tool usage +* Query caps +* Usage duration + +This unlimited access empowers you to experiment freely, iterate rapidly, and fully leverage the tool's capabilities throughout your development lifecycle. + +## Best Practices + +For optimal results, use high-performance AI models like **Claude Sonnet 4.5** (recommended), GPT-5, or Gemini 3 Pro. These models understand complex component relationships better and generate more accurate Blazor code. + +> Always review AI-generated code before using it in production. + +## Privacy & Security + +The Syncfusion MCP Server are designed with privacy considerations: + +* The tools do not access project files or workspace contents directly. +* User prompts are not stored or used for other purposes. +* Prompts are not used to train Syncfusion models. +* The assistant provides context; the final output is produced by the selected AI model. + +The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security. + +## See also + +* [AI Tools - Installation](./installation) +* [Agentic UI Builder - Getting Started](./agentic-ui-builder/getting-started) +* [AI Coding Assistant - Getting Started](./ai-coding-assistant/getting-started) +* [Model Context Protocol](https://modelcontextprotocol.io/docs/getting-started/intro) diff --git a/blazor/mcp-server/release-notes.md b/blazor/mcp-server/release-notes.md new file mode 100644 index 0000000000..853aeb96ad --- /dev/null +++ b/blazor/mcp-server/release-notes.md @@ -0,0 +1,39 @@ +# Syncfusion Blazor MCP Server Release Notes + +This document provides information about the changes and new features included in each version of to the [@syncfusion/blazor-assistant](https://www.npmjs.com/package/@syncfusion/blazor-assistant) MCP server package. + +## (v2.0.0) – February 23, 2026 + +### Features + +- Introduced **Agentic UI Builder** — a composite MCP tool that analyzes your UI requirements and coordinates specialized tools (Layout, Component, and Styling) to generate complete Blazor applications using natural language prompts, significantly boosting your productivity and accelerating development workflow. +- Agentic UI Builder sub-tools: + - **Layout Tool** (#sf_blazor_layout) — Generates responsive UI blocks, grids, dashboards, and pre-built patterns. + - **Component Tool** (#sf_blazor_component) — Provides full metadata, APIs, props, events, and configuration for 145+ Syncfusion Blazor components. + - **Styling Tool** (#sf_blazor_style) — Applies theme configurations (Tailwind3 CSS, Bootstrap 5.3, Material 3, Fluent 2), dark mode, color customization, and icon integration. +- Unlimited, unrestricted access with strict privacy (no project file access, no prompt storage or training). + +### Breaking Changes + +- Renamed the coding assistant tool identifier from **`SyncfusionBlazorAssistant`** to **`sf_blazor_assistant`** for consistency, brevity, and improved user experience. + +## (v1.0.1) – February 10, 2026 + +### Features + +- Updated package dependencies to resolve security vulnerabilities and enhance stability. + +## (v1.0.0) – December 16, 2025 + +### Features + +- Added support for API key validation through file path reference. +- Updated package dependencies and security standards for improved reliability and safety. + +## (v0.1.0) – October 10, 2025 + +### Features + +- Initial release of AI Coding Assistant for Syncfusion Blazor components. +- Provides context-aware assistance for building Blazor applications with Syncfusion components. +- Includes support for component APIs, properties, and troubleshooting guidance. From e372cc833a04cf601b7fa130779a0dc1ece5c508 Mon Sep 17 00:00:00 2001 From: MuthukumarK <33709971+kmuthukumarmkm@users.noreply.github.com> Date: Mon, 23 Feb 2026 16:46:42 +0530 Subject: [PATCH 02/49] 1003667: Fix typo in release notes introduction --- blazor/mcp-server/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/mcp-server/release-notes.md b/blazor/mcp-server/release-notes.md index 853aeb96ad..618f0de4fd 100644 --- a/blazor/mcp-server/release-notes.md +++ b/blazor/mcp-server/release-notes.md @@ -1,6 +1,6 @@ # Syncfusion Blazor MCP Server Release Notes -This document provides information about the changes and new features included in each version of to the [@syncfusion/blazor-assistant](https://www.npmjs.com/package/@syncfusion/blazor-assistant) MCP server package. +This document provides information about the changes and new features included in each version of the [@syncfusion/blazor-assistant](https://www.npmjs.com/package/@syncfusion/blazor-assistant) MCP server package. ## (v2.0.0) – February 23, 2026 From e96f68dbce658bfbe1f1ab92252325f3c79ecc52 Mon Sep 17 00:00:00 2001 From: Deepak Raj Sundar Date: Mon, 23 Feb 2026 23:52:07 +0530 Subject: [PATCH 03/49] Added the release notes MD file and corresponding node entry in the TOC.html file --- blazor-toc.html | 6 ++- blazor/Release-Notes/32.2.7.md | 94 ++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 blazor/Release-Notes/32.2.7.md diff --git a/blazor-toc.html b/blazor-toc.html index 9a4da0feac..7cae2f3cb2 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -5261,6 +5261,7 @@
  • 2025 Volume 3 - 31.* diff --git a/blazor/Release-Notes/32.2.7.md b/blazor/Release-Notes/32.2.7.md new file mode 100644 index 0000000000..09cf64c355 --- /dev/null +++ b/blazor/Release-Notes/32.2.7.md @@ -0,0 +1,94 @@ +--- +title: Essential Studio for Blazor Release Notes - v32.2.7 +description: Learn here about the controls in the Essential Studio for Blazor Weekly Release - Release Notes - v32.2.7 +platform: blazor +documentation: ug +--- + +# Essential Studio for Blazor - v32.2.7 Release Notes + +{% include release-info.html date="February 24, 2026" version="v32.2.7" passed="85132" failed="0" %} + +{% directory path: _includes/release-notes/v32.2.7 %} + +{% include {{file.url}} %} + +{% enddirectory %} + +## Test Results + +| Component Name | Test Cases | Passed | Failed | Remarks | +|---------------|------------|--------|--------|---------| +| 3DChart | 198 | 198 | 0 | All Passed | +| Accordion | 232 | 232 | 0 | All Passed | +| AiAssistView | 395 | 395 | 0 | All Passed | +| Appbar | 102 | 102 | 0 | All Passed | +| Autocomplete | 482 | 482 | 0 | All Passed | +| BarcodeGenerator | 440 | 440 | 0 | All Passed | +| Breadcrumb | 137 | 137 | 0 | All Passed | +| Bulletchart | 237 | 237 | 0 | All Passed | +| Button | 255 | 255 | 0 | All Passed | +| Calendar | 148 | 148 | 0 | All Passed | +| Carousel | 175 | 175 | 0 | All Passed | +| Charts | 5688 | 5688 | 0 | All Passed | +| ChatUI | 148 | 148 | 0 | All Passed | +| Chips | 214 | 214 | 0 | All Passed | +| CircularGauge | 1011 | 1011 | 0 | All Passed | +| ColorPicker | 114 | 114 | 0 | All Passed | +| ComboBox | 329 | 329 | 0 | All Passed | +| DashboardLayout | 259 | 259 | 0 | All Passed | +| DataForm | 547 | 547 | 0 | All Passed | +| DataGrid | 9930 | 9930 | 0 | All Passed | +| DatePicker | 580 | 580 | 0 | All Passed | +| DateRangePicker | 366 | 366 | 0 | All Passed | +| DateTimePicker | 475 | 475 | 0 | All Passed | +| Diagram | 16459 | 16459 | 0 | All Passed | +| Dialog | 485 | 485 | 0 | All Passed | +| DropdownList | 638 | 638 | 0 | All Passed | +| Dropdowntree | 164 | 164 | 0 | All Passed | +| FileManager | 3109 | 3109 | 0 | All Passed | +| FileUpload | 330 | 330 | 0 | All Passed | +| FloatingActionButton | 128 | 128 | 0 | All Passed | +| Gantt | 5430 | 5430 | 0 | All Passed | +| HeatMap | 403 | 403 | 0 | All Passed | +| ImageEditor | 3611 | 3611 | 0 | All Passed | +| InPlaceEditor | 768 | 768 | 0 | All Passed | +| InputMask | 168 | 168 | 0 | All Passed | +| Kanban | 513 | 513 | 0 | All Passed | +| LinearGauge | 797 | 797 | 0 | All Passed | +| ListBox | 138 | 138 | 0 | All Passed | +| ListView | 442 | 442 | 0 | All Passed | +| Maps | 1581 | 1581 | 0 | All Passed | +| Mention | 153 | 153 | 0 | All Passed | +| Menu | 398 | 398 | 0 | All Passed | +| Message | 211 | 211 | 0 | All Passed | +| MultiselectDropdown | 501 | 501 | 0 | All Passed | +| NumericTextbox | 464 | 464 | 0 | All Passed | +| OtpInput | 123 | 123 | 0 | All Passed | +| PivotTable | 1527 | 1527 | 0 | All Passed | +| ProgressBar | 199 | 199 | 0 | All Passed | +| progressbutton | 101 | 101 | 0 | All Passed | +| QueryBuilder | 585 | 585 | 0 | All Passed | +| RangeNavigator | 196 | 196 | 0 | All Passed | +| Rating | 106 | 106 | 0 | All Passed | +| Ribbon | 542 | 542 | 0 | All Passed | +| RichTextEditor | 2422 | 2422 | 0 | All Passed | +| Scheduler | 6372 | 6372 | 0 | All Passed | +| Sidebar | 150 | 150 | 0 | All Passed | +| Slider | 272 | 272 | 0 | All Passed | +| SmithChart | 259 | 259 | 0 | All Passed | +| SparklineChart | 150 | 150 | 0 | All Passed | +| SpeedDial | 353 | 353 | 0 | All Passed | +| Splitter | 190 | 190 | 0 | All Passed | +| Stepper | 218 | 218 | 0 | All Passed | +| StockChart | 350 | 350 | 0 | All Passed | +| Tabs | 951 | 951 | 0 | All Passed | +| TextArea | 126 | 126 | 0 | All Passed | +| Textbox | 678 | 678 | 0 | All Passed | +| Timeline | 182 | 182 | 0 | All Passed | +| TimePicker | 420 | 420 | 0 | All Passed | +| Toast | 234 | 234 | 0 | All Passed | +| Toolbar | 235 | 235 | 0 | All Passed | +| TreeGrid | 6705 | 6705 | 0 | All Passed | +| TreeMap | 767 | 767 | 0 | All Passed | +| TreeView | 1366 | 1366 | 0 | All Passed | \ No newline at end of file From ee851871cb3b2a6d12fe7dca214682d5120f6dcb Mon Sep 17 00:00:00 2001 From: JafarAli Date: Tue, 24 Feb 2026 12:00:08 +0530 Subject: [PATCH 04/49] 1009240: Need to update the azure and amazon providers documentation for blazor platform. --- .../amazon-S3-cloud-file-provider.md | 59 ++++++++++---- .../azure-cloud-file-system-provider.md | 78 +++++++++++-------- 2 files changed, 92 insertions(+), 45 deletions(-) diff --git a/blazor/file-manager/amazon-S3-cloud-file-provider.md b/blazor/file-manager/amazon-S3-cloud-file-provider.md index cca74a416e..74362f6f93 100644 --- a/blazor/file-manager/amazon-S3-cloud-file-provider.md +++ b/blazor/file-manager/amazon-S3-cloud-file-provider.md @@ -1,7 +1,7 @@ --- layout: post title: Amazon S3 cloud Provider in Blazor File Manager Component | Syncfusion -description: Checkout and learn here all about Amazon S3 cloud file provider in Syncfusion Blazor File Manager component and more. +description: Check out and learn about the Amazon S3 cloud file provider in the Syncfusion Blazor File Manager component. platform: Blazor control: File Manager documentation: ug @@ -9,30 +9,53 @@ documentation: ug # Amazon S3 cloud file provider -To get started with the Amazon S3 cloud file provider, ensure that you have an active Amazon Web Services (AWS) account and an S3 bucket created in the required AWS Region. You will also need the `AWS Access Key ID`, `Secret Access Key`, `bucket name` , and the `bucket region` to connect the File Manager to the S3 storage. +## Introduction to Amazon S3 -To learn more about creating and configuring an Amazon S3 bucket, refer to this [link](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html). +Amazon Simple Storage Service (Amazon S3) is AWS's object storage service for storing and retrieving any amount of data. S3 is durable, scalable, and pay‑as‑you‑go. In this guide the Syncfusion Blazor File Manager connects to S3 through an ASP.NET Core backend so you can securely browse and perform file operations in the File Manager component. -The Amazon ***S3*** (*Simple Storage Service*) cloud file provider allows the users to access and manage a server hosted file system as collection of objects stored in the Amazon S3 Bucket. To get started, clone the [Amazon S3 File Provider](https://github.com/SyncfusionExamples/ej2-amazon-s3-aspcore-file-provider) using the following command +## Prerequisites -``` +Before you integrate Amazon S3 with the Syncfusion Blazor File Manager, ensure you have: + - An AWS Account + - A configured S3 Bucket + - AWS credentials: `awsAccessKeyId`, `awsSecretAccessKeyId`, `bucketRegion`, `awsRegion`. + +## Setting Up Amazon S3 + +### Create an S3 Bucket + + - Open the [AWS Management Console guide](https://docs.aws.amazon.com/awsconsolehelpdocs/) and log into AWS Console -> Navigate to S3. + - Proceed by clicking `Create Bucket`. A bucket is a container for objects. An object is a file and any metadata that describes that file. The Amazon S3 provider requires a top-level root folder in your bucket to place all required files and subfolders inside this root. Click this [link](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) for more details. + - Provide a DNS-compliant bucket name. Click this [link](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) for more details. + - Choose the AWS region. Click this [link](https://docs.aws.amazon.com/general/latest/gr/s3.html) for more details. -git clone https://github.com/SyncfusionExamples/ej2-amazon-s3-aspcore-file-provider.git ej2-amazon-s3-aspcore-file-provider.git +## Backend Setup +Clone the [Amazon S3 File Provider](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider) using the following command, + +```bash +git clone https://github.com/SyncfusionExamples/ej2-amazon-s3-aspcore-file-provider ej2-amazon-s3-aspcore-file-provider ``` -After cloning, open the project in Visual Studio and restore the NuGet packages. Now, register Amazon S3 client account details like **bucketName**, **awsAccessKeyId**, **awsSecretAccessKeyId** and **awsRegion** details in **RegisterAmazonS3** method in the `AmazonS3ProviderController.cs` file to perform the file operations. +N> This Amazon S3 provider for the Syncfusion Blazor File Manager is intended for demonstration and evaluation only. Before using it consult your security team and complete a security review. -```csharp +To initialize a local service with the above-mentioned file operations, create a folder named `Controllers` in the server project. Then, create a `.cs` file in the `Controllers` folder and add the required file operation code from [AmazonS3ProviderController.cs](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Controllers/AmazonS3ProviderController.cs). You can also find the method-level details for this provider in the same repository. -this.operation.RegisterAmazonS3("<---bucketName--->", "<---awsAccessKeyId--->", "<---awsSecretAccessKey--->", "<---region--->"); +## Registering S3 Credentials in the Provider + +After cloning, open the project in Visual Studio and restore the NuGet packages. Then, register the Amazon S3 client details (for example, **bucketName**, **awsAccessKeyId**, **awsSecretAccessKeyId**, and **awsRegion**) in the `RegisterAmazonS3` method in the `AmazonS3ProviderController.cs` file. +```csharp +this.operation.RegisterAmazonS3("<---bucketName--->", "<---awsAccessKeyId--->", "<---awsSecretAccessKey--->", "<---region--->"); ``` -After registering the Amazon client account details, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the [FileManagerAjaxSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerAjaxSettings.html) property of the File Manager component to the appropriate controller methods allows to manage the Amazon ***S3*** (*Simple Storage Service*) bucket's objects storage. +## Configuring Syncfusion File Manager UI -```cshtml +To configure File Manager component, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), then search and install **Syncfusion.Blazor.FileManager** and **Syncfusion.Blazor.Themes**. Integrate the FileManager component by pasting the below code in your .razor file of the Blazor application. Click this [link](https://blazor.syncfusion.com/documentation/file-manager/getting-started-with-web-app) for more details. +Now, build and run the Amazon File Service provider project. It will be hosted at `http://localhost:{port}`. Map the [FileManagerAjaxSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerAjaxSettings.html) of the File Manager component to the AmazonS3Provider controller endpoints (Url, UploadUrl, DownloadUrl, GetImageUrl) to manage objects in your S3 bucket. + +```razor @*Initializing File Manager with Amazon service*@ @* Replace the hosted port number in the place of "{port}" *@ @@ -44,11 +67,19 @@ After registering the Amazon client account details, just build and run the proj GetImageUrl="http://localhost:{port}/api/AmazonS3Provider/AmazonS3GetImage"> - ``` -To perform file operations (Read, Create, Rename, Delete, Get file details, Search, Copy, Move, Upload, Download, GetImage) in the Syncfusion® Blazor File Manager component using the Amazon S3 cloud file provider, you need to initialize the Amazon S3 cloud file provider in the controller. +To perform file operations (Read, Create, Rename, Delete, Get file details, Search, Copy, Move, Upload, Download, GetImage) in the Syncfusion® Blazor File Manager component using the Amazon S3 cloud file provider, initialize the Amazon S3 cloud file provider in the controller. + +## Supported File Operations + +We have enabled below list of features that can be performed using Amazon File Service provider, + +|Operation | Function | +|---|---| +| Upload |
    • [Directory upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_DirectoryUpload)
    • [Sequential upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_SequentialUpload)
    • [Chunk upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_ChunkSize)
    • [Auto upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_AutoUpload)
    • [Drag and drop upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_DropArea)
    | +| Access Control |
    • [Setting rules to files/folders](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Models/AmazonS3FileProvider.cs#L51)
    • [Supported rules](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Models/Base/AccessDetails.cs#L13)
    | -To initialize a local service with the above-mentioned file operations, create a new folder named `Controllers` inside the server part of the project. Then, create a new file with the extension `.cs` inside the Controllers folder and add the necessary file operations code available in the `AmazonS3ProviderController.cs` found at this [link](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Controllers/AmazonS3ProviderController.cs). Additionally, you can check out all the necessary file operation method details for this provider in the same GitHub repository. +Additionally, you can check out all the necessary file operation method details for this provider in the same GitHub repository. N> To learn more about the file actions that can be performed with Amazon S3 Cloud File provider, refer to this [link](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider#key-features) \ No newline at end of file diff --git a/blazor/file-manager/azure-cloud-file-system-provider.md b/blazor/file-manager/azure-cloud-file-system-provider.md index bbf79552de..637bc986da 100644 --- a/blazor/file-manager/azure-cloud-file-system-provider.md +++ b/blazor/file-manager/azure-cloud-file-system-provider.md @@ -1,7 +1,7 @@ --- layout: post title: Azure cloud provider in Blazor File Manager Component | Syncfusion -description: Checkout and learn here all about Azure cloud file system provider in Syncfusion Blazor File Manager component and more. +description: Check out and learn about the Azure cloud file system provider in the Syncfusion Blazor File Manager component. platform: Blazor control: File Manager documentation: ug @@ -9,57 +9,75 @@ documentation: ug # Azure cloud file system provider -To get started with the Azure cloud file system provider, ensure you have an active Microsoft Azure account with a configured Blob Storage service. Create a Blob Storage container and add a subfolder to manage files and directories through the File Manager. +## Introduction to Azure Blob Storage -The Azure file system provider allows the users to access and manage the blobs in the Azure blob storage. To get started, clone the [Azure File Provider](https://github.com/SyncfusionExamples/ej2-azure-aspcore-file-provider) using the following command. +Azure Blob Storage is Microsoft Azure's object storage solution for the cloud, optimized for storing massive amounts of unstructured data. In this guide, the Syncfusion Blazor File Manager connects to Blob Storage through an ASP.NET Core backend so you can securely browse and perform file operations in the File Manager component. -``` +## Prerequisites -git clone https://github.com/SyncfusionExamples/ej2-azure-aspcore-file-provider ej2-azure-aspcore-file-provider +Before you integrate Azure Blob Storage with the Syncfusion Blazor File Manager, ensure you have: +- An active Microsoft Azure subscription +- A Storage Account with Blob service enabled +- A Blob Container and an optional root folder inside that container +- Azure credentials: `accountName`, `accountKey`, and `blobName` -``` +## Setting Up Azure Blob Storage -After cloning, just open the project in Visual Studio and restore the NuGet packages. Now, you need to register the Azure storage by passing details like **accountName**, **accountKey**, and **blobName** to the `RegisterAzure` method in the `AzureProviderController.cs` file. +- Sign in to the [Azure Portal](https://portal.azure.com/) and [create a storage account](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal) with Blob service enabled. +- [Create a Blob Container](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal?tabs=azure-portal#create-a-container) (example: files). See Azure docs for [container naming rules](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction#naming-and-referencing-containers-blobs-and-metadata). -```csharp +## Backend Setup -this.operation.RegisterAzure("<--accountName-->", "<--accountKey-->", "<--blobName-->"); +Clone the [Azure File Provider](https://github.com/SyncfusionExamples/azure-aspcore-file-provider) using the following command, + +```bash +git clone https://github.com/SyncfusionExamples/ej2-azure-aspcore-file-provider ej2-azure-aspcore-file-provider +``` + +N> This Azure Blob Storage provider for the Syncfusion Blazor File Manager is intended for demonstration and evaluation only. Before using it in production, consult your security team and complete a security review. + +To initialize a local service with the above-mentioned file operations, create a folder named `Controllers` in the server project. Then, create a `.cs` file in the `Controllers` folder and add the required file operation code from [AzureProviderController.cs](https://github.com/SyncfusionExamples/azure-aspcore-file-provider/blob/master/Controllers/AzureProviderController.cs). You can also find the method-level details for this provider in the same repository. - ``` +## Registering Azure Credentials in the Provider -Then, set the blob container and the root blob directory by passing the corresponding URLs as parameters in the `SetBlobContainer` method as shown below. +After cloning, open the project in Visual Studio and restore the NuGet packages. Then, register Azure Storage by passing **accountName**, **accountKey**, and **blobName** to the `RegisterAzure` method in the `AzureProviderController.cs` file. ```csharp +this.operation.RegisterAzure("<--accountName-->", "<--accountKey-->", "<--blobName-->"); +``` +Then, set the blob container and the root blob directory by passing the corresponding URLs as parameters to the `SetBlobContainer` method, as shown below. + +```csharp public AzureProviderController(IHostingEnvironment hostingEnvironment) { this.operation = new AzureFileProvider(); blobPath = "<--blobPath-->"; filePath = "<--filePath-->"; ... - this.operation.SetBlobContainer(blobPath, filePath); + this.operation.SetBlobContainer(blobPath, filePath); } - ``` -N> The **blobPath** represents a container path in Azure Blob Storage, and **filePath** refers to the file location path. For example, create a container named **files** in the specified Azure Blob Storage account. Inside that container, create a new folder named **Files**, which contains all the files and folders that need to be displayed in the File Manager. Refer to the following path as an example. +N> The **blobPath** represents a container path in Azure Blob Storage, and **filePath** refers to the file location path. For example, create a container named **blob** in the specified Azure Blob Storage account. Inside that container, create a folder named **Files** that contains all the files and folders to be displayed in the File Manager. Refer to the following paths as an example. ```csharp - public AzureProviderController(IHostingEnvironment hostingEnvironment) { this.operation = new AzureFileProvider(); - blobPath = "https://azure_service_account.blob.core.windows.net/files/"; - filePath = "https://azure_service_account.blob.core.windows.net/files/Files"; + blobPath = "https://azure_service_account.blob.core.windows.net/blob/"; + filePath = "https://azure_service_account.blob.core.windows.net/blob/Files"; ... } +``` -``` +## Configuring Syncfusion File Manager UI -After setting the blob container references, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the [FileManagerAjaxSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerAjaxSettings.html) property of the File Manager component to the appropriate controller methods allows to manage the Azure blob storage. +To configure File Manager component, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), then search and install **Syncfusion.Blazor.FileManager** and **Syncfusion.Blazor.Themes**. Integrate the FileManager component by pasting the below code in your .razor file of the Blazor application. Click this [link](https://blazor.syncfusion.com/documentation/file-manager/getting-started-with-web-app) for more details. -```cshtml +Now, build and run the Azure File Service provider project. It will be hosted in `http://localhost:{port}`. Map the [FileManagerAjaxSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerAjaxSettings.html) of the File Manager component to the AzureProvider controller endpoints (Url, UploadUrl, DownloadUrl, GetImageUrl) to manage blobs in your Azure Blob Storage container. +```razor @*Initializing File Manager with Azure service.*@ @* Replace the hosted port number in the place of "{port}" *@ @@ -71,21 +89,19 @@ After setting the blob container references, just build and run the project. Now GetImageUrl="http://localhost:{port}/api/AzureProvider/AzureGetImage"> - ``` -N> **NuGet:** Additionally, a [NuGet](https://www.nuget.org/packages/Syncfusion.EJ2.FileManager.AzureFileProvider.AspNet.Core) package of **ASP.NET Core Azure file system provider** has been created. - -Use the following command to install the NuGet package in an application. +To perform file operations (Read, Create, Rename, Delete, Get file details, Search, Copy, Move, Upload, Download, GetImage) in the Syncfusion® Blazor File Manager component using the Azure cloud file system provider, initialize the Azure cloud provider in the controller. -``` +## Supported File Operations - dotnet add package Syncfusion.EJ2.FileManager.AzureFileProvider.AspNet.Core - -``` +We have enabled below list of features that can be performed using Azure File Service provider, -To perform file operations (Read, Create, Rename, Delete, Get file details, Search, Copy, Move, Upload, Download, GetImage) in the Syncfusion® Blazor File Manager component using the Azure cloud file system provider, you need to initialize the Azure cloud provider in the controller. +|Operation | Function | +|---|---| +| Upload |
    • [Directory upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_DirectoryUpload)
    • [Sequential upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_SequentialUpload)
    • [Chunk upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_ChunkSize)
    • [Auto upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_AutoUpload)
    • [Drag and drop upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_DropArea)
    | +| Access Control |
    • [Setting rules to files/folders](https://github.com/SyncfusionExamples/azure-aspcore-file-provider/blob/master/Models/AzureFileProvider.cs#L58)
    • [Supported rules](https://github.com/SyncfusionExamples/azure-aspcore-file-provider/blob/master/Models/Base/AccessDetails.cs#L65)
    | -To initialize a local service with the above-mentioned file operations, create a new folder named `Controllers` inside the server part of the project. Then, create a new file with the extension `.cs` inside the Controllers folder and add the necessary file operations code available in the `AzureProviderController.cs` found at this [link](https://github.com/SyncfusionExamples/azure-aspcore-file-provider/blob/master/Controllers/AzureProviderController.cs). Additionally, you can check out all the necessary file operation method details for this provider in the same GitHub repository. +Additionally, you can check out all the necessary file operation method details for this provider in the same GitHub repository. -N> To learn more about file actions that can be performed with Azure cloud file system provider, refer to this [link](https://github.com/SyncfusionExamples/ej2-azure-aspcore-file-provider#key-features) \ No newline at end of file +N> To learn more about the file actions supported by the Azure cloud file system provider, refer to the [key features](https://github.com/SyncfusionExamples/azure-aspcore-file-provider#key-features). \ No newline at end of file From b43541837e498b0de94ed38ed6b43c13c97a4c8c Mon Sep 17 00:00:00 2001 From: Amrisharjun Date: Tue, 24 Feb 2026 15:18:21 +0530 Subject: [PATCH 05/49] 1009707: Need to create DataGrid sample with Firebase DB and prepare documentations --- blazor-toc.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blazor-toc.html b/blazor-toc.html index 7cae2f3cb2..23313ead5e 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -2178,8 +2178,8 @@
  • PostgreSQL Server
  • SQLite Server
  • MongoDB Server
  • -
  • Firebase-Firestore DB
  • -
  • Firebase-Realtime DB
  • +
  • Firebase (Firestore DB)
  • +
  • Firebase (Realtime DB)
  • Connecting to ORM From 261a54658e5c98c325959d0109bc0ecb5967e068 Mon Sep 17 00:00:00 2001 From: JafarAli Date: Wed, 25 Feb 2026 12:15:44 +0530 Subject: [PATCH 06/49] 1009240: Need to update the amazon and azure provider documentation for angular platform. --- blazor/file-manager/amazon-S3-cloud-file-provider.md | 2 +- blazor/file-manager/azure-cloud-file-system-provider.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/blazor/file-manager/amazon-S3-cloud-file-provider.md b/blazor/file-manager/amazon-S3-cloud-file-provider.md index 74362f6f93..57917e5bf6 100644 --- a/blazor/file-manager/amazon-S3-cloud-file-provider.md +++ b/blazor/file-manager/amazon-S3-cloud-file-provider.md @@ -55,7 +55,7 @@ To configure File Manager component, open the NuGet package manager in Visual St Now, build and run the Amazon File Service provider project. It will be hosted at `http://localhost:{port}`. Map the [FileManagerAjaxSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerAjaxSettings.html) of the File Manager component to the AmazonS3Provider controller endpoints (Url, UploadUrl, DownloadUrl, GetImageUrl) to manage objects in your S3 bucket. -```razor +```cshtml @*Initializing File Manager with Amazon service*@ @* Replace the hosted port number in the place of "{port}" *@ diff --git a/blazor/file-manager/azure-cloud-file-system-provider.md b/blazor/file-manager/azure-cloud-file-system-provider.md index 637bc986da..369505ca3a 100644 --- a/blazor/file-manager/azure-cloud-file-system-provider.md +++ b/blazor/file-manager/azure-cloud-file-system-provider.md @@ -77,7 +77,7 @@ To configure File Manager component, open the NuGet package manager in Visual St Now, build and run the Azure File Service provider project. It will be hosted in `http://localhost:{port}`. Map the [FileManagerAjaxSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerAjaxSettings.html) of the File Manager component to the AzureProvider controller endpoints (Url, UploadUrl, DownloadUrl, GetImageUrl) to manage blobs in your Azure Blob Storage container. -```razor +```cshtml @*Initializing File Manager with Azure service.*@ @* Replace the hosted port number in the place of "{port}" *@ From d936d83dd27d01be33847dab6eaf820a884f769e Mon Sep 17 00:00:00 2001 From: Backiaraj Date: Thu, 26 Feb 2026 10:27:12 +0530 Subject: [PATCH 07/49] Updated Install NuGet Packages UG documentation --- .../images/ConsoleInstallationOutput.png | Bin 22452 -> 100057 bytes blazor/installation/images/InstallNuGet.png | Bin 40903 -> 99568 bytes blazor/installation/images/ManageNuGet.png | Bin 53538 -> 64991 bytes blazor/installation/images/NuGetsearch.png | Bin 42366 -> 100753 bytes blazor/installation/images/console.png | Bin 42490 -> 37183 bytes blazor/installation/images/packageentry.png | Bin 31588 -> 67410 bytes blazor/installation/install-nuget-packages.md | 85 +++++++++++------- 7 files changed, 52 insertions(+), 33 deletions(-) diff --git a/blazor/installation/images/ConsoleInstallationOutput.png b/blazor/installation/images/ConsoleInstallationOutput.png index a3440ed5f5c15642f585e562ad82c3e6d97e5718..9bc192aab979cca8e092617c877d5932e3300acb 100644 GIT binary patch literal 100057 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�)b1WUZV(Q=R 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 literal 22452 zcmZs?3p~^N|2VFr(?u>*LNY?7B3k6m$|V(%bRn137ISypuiGlc+>;80B}H;sbIo;? zF>;w(%ys3qFxN4c+4g^{b3W()`TV{fkJ6yRqWB?5I3agw?L4aE-6Bm1)Ew}hTISVem4Sw9ienN<7>FH?6@H7T{gU? zIp5O~@%REb%n(fIng9HC>g>G^uwi1}WOH;={xacOPuS_=WwsmGt?9iR;hyQ@^1y{K z|Ms4#r#WBAF)?88%G(+9-YF5wDaI{5AHcWof=$kY5g)pqTrx2^?^VinGl|J_JHNPG z3BK^`EZFom*t83vX5w}M42jNd0Bg9# zgoK8@Z;rhHHom=OC5T&03_02(+QhAMy2~33Ns`+W4cHC)Asu@1EErr>PwVXIA8GpX zHYcyd*0i*?uPVePEMxxkX*CZI4`*j*C=`0(EadGw0(mk&43T*2)~%it zDc*+0-h>R#C%3O9M4i89VNx0fd0fi&DjmRAP~2jgZ)bb}yTv?7iKx7Dr6nT~@!)}p z33%s0B#MvkdeBAVbJv0g80mzBfwQ1U%F@B~hZmB=1U}f`bMY~8YB8Di7ZXc*DHig; zUEU<-iHhorG~96Q#6ywho9W7RmP5g58F#8JM;gfW3Vfg9LV}g~_?-9b<-cbeLE^jJ zdkDgpdgg*4pR>?^4_U#l+demPurIz<(Qx^FN1)zH!(l1AP(p2Odlny`WKybFr{IcM z^s}7~FX_AYGSArGc8DeMeXreXS14kAm{mi4ANYdwqRpZ&dN14j5NJ-f<_Q&T``l~) z?BcED)VZfu%Zq1dBe`Ykf*DsGa-;p;p5ffezx}3rkA*L7v1fAdQvQY7jGK|Ay%&co z>oa$4|Kbp37F`z4eyeGldWXfchdL%*@X<2g#_-(TaM7m%Z&ULiOOTB znCCS=hcSh*MG3C3?@kVU_ml>krwgLIO1e2o1(PhFryR#HCm8i?a#lBOj_CQ);JO>a zEw9sJ|M=eSxKKF0cB!;5xvJl4@2-cEOWumZH{*-0#SYM>!|_>e8RUd8F-q(cQC{B&u{8RoD+5{&3akg)7-W7o3cvD zr1QG9hXgl^Wr<^?ir;je4oxlPwjGNTEjFpN(7IJ%9cUg$=95`i@Hif zlmcX+o<|5&++0qh&h{h^F68X_ab2>%BOR_9JS z@0T}zw_E(aVtaG^+dZ0D-kZdRQ!^onI5{|(X0UMfqNNxHBmuG9z*H zW~F#YWg&>LAZV;yonw;ZSi+9LQ6+xiBEQv!y?>v7T}f1)o2DZxPD5hu}F zty3wVj;0xl_>3KS5iDA=Yxl18d+|Hs_F+{-Rb@!;NO%*mbE4O_b8t6m^D@&cx^z!C zpBWRYPO}KOEc?F8^1WNArcbdT&|M*83R z3j0K-SR{K`vPQFWBQlI_zfp5CBz&DPBTmk|wX+~!5$KjE+EgcQ^V4Y&s`QPl z#Wd9XC3PyeJo(%omsy2XZx({Fa z;XbJdK`aI=_~3f6hSy&5!;P-O%da*bzL8tmv4-m3Res{EYD8OWdz_1%NOg`rB(^{l zUWjZ6G3a>Z;KR~3Dli^2E|t6~X34x~{)VycIDYW%!37Y9{&hR7G$sXU`Y9iv5<+&*JwW_#bld$6JdXUos0X zhTL*szVDvg7r{$p=C=tw7tr zFr~~_$`5T`ooSUgA$39SIH)B~RyFXVv^ooE(7gO<*r0$QBL8RIUSu~_fS_Y<0gBym z?^~$ou|m+k4}y8Jy}DxX^wOk(9T36CxwES~n@Cs8Uo_tNu#X>NJSadQC_T|&3E2i6 zZOq%(CufEA+%HskR*+xRZ76u%=ul+r#Bt2I0mX~=sb3YupT<;XPc5(9p9w_KQ^9ai zN`2Jm8tq=H@?L(3|LSh}3as^uOUsC}g2xQsX&LCnRvsh0dSz=5YLlzj6hf#`+XQ=s zb{Xm#JLLyT9y5J7^Q~5^wo+j@X0qxU85%ebLi1WK6Q<*y4 z4@!q3r|rUzWOXD+)&wS4zWSvH3^lwVbTN#DB zh-=-tZm|?5;EefDk$6F>@%)E89jAi_JkZqcOezedOY#C0%XFI7y*bDpI@mjq5!*#2 zFSj3L#9fND-6{0hVh%6~DE`f%@un=Vs9Q+>h^UkEV<|4Css z*ysJ(xT3CYE=lDo!{@<#)F$~+%n)2l_G0Q)t*0V2#%Gi3Lj)d3densVP@xBI+y_7M z*#*(Qe6A#w0h<-^6}VJS-NmXukwcGY3)fmt2AS~~O;5{=%wND#prH33P0Je|39w>Z zDtT`Q;>$}rrmvc}n+o+F%D6HTa$M2r0ECWOCT^}fzDX~rmF|;%P4y(pdRr#;TQc}9 z25#O<6^;sguV>V2sx0HHHJ)@4^pAi6230nuCzd>)rQ-|hzcw$!7B_Ft3wwbg?;N{# zdZ*IUJ!&8Ru=~Kv=ure2<|REI9oJv!LA>VnUUyfVFj7`h*~>eGG*tHbnppe9!h zeaAxmBMxNiuOP7veafp763}yD(*uz%4QfgehBx3>ntTik;iQAmNhz z!X3>mLKb>8mK4Rw>*vjuYlCf_Q~J-?B58%vm*=suw4 z*>flMIp1xAH$DQ_Z(O(9ieFdtu1} zITLBtzRSmoVIXUp7==s9yN>CS|MZi_Q?`ja1zjbdsIQ;XPtf;q@9OFgSLp}u&86R$ z^Aks0-S4P6A|$fSCm`0ZLma#Rvh~^4X8WKPJoFDIcdzB$@JQ18i)GejB5)QyAQ-WE z^G)IG{c9eUUk*sM3Tuj=v+!vWX}Y*5_v{Yn3Nxs7A0qSkpwR8CGo^y|$P16np^Q1MNJ9$eVUP z08e`S)NBbKu)L_*8fyReb+xr+(pu8QVp()VFQ{d)QV_9p1G|27LhEea?CTW6J7$Ro z4I@+AMN;AS+nuWU$9ig@7mL_w0?5ddD!bGM{vf=LK4E0OZkAOp3x8_xK=Mc%_hss4 zScc?m$?^x&Jo;DL1(?M4L5Ze^fMUHPOEXB+%2nfaSPqI*~ zy^G$hM$TT(e1Sie@(NZg6>WoAUl)%joXW<@HMUV^#7wI_Qw}xOo!H|EWneZS=i)vR z5LsDTGKx##W*=iBCbIrS@lJaH5r}z%VNeo|RlJ*GVF!xdy?gglBrGU()EH#EZ7pie z=x~Aj_;&f9=k)IFTw;`$q1C$^4z>B8QtM^^`0jtbZ{`v!iE$L4d5tvivYQxQyz&-} zw>~D8d6VQwYpkWgifET51Rmvz6AZJi91~R%6X1zlA_+YDl4m7<_f4OXgO64txrdi$cP#{mXRfWN?U_XG z58v3Fb=*u?R1!6lKaVfQUPd@RnXF~brg)iSQ-ia*J1SPWszhvs!Sd zpIa*T;%7sr?dD8Lxtl?MBN`ZJr&rp0@*`pe0EHO|Zj^dEzzIf zNc*$9L|}k_xf&W=B~HxVbi5x`)jKh$YKT{WudbzyZG#5?MB>-y-qb8MMtzihc{y}C ze-GiwjH2kwF7eUX3c9CiCepyM{aLWk41(5(#>z4e&JPZ%o=m1jCwyd-CH_*dioF44 zo!gvF`?I7(Kq}TnC$p$w{uGfX0H)6tSwRgIV`$1@#q$xm&VF{ z^S$~V`!*uHi2B}Pi+apO-y)K`jVxP(Wwe=UNop1RWHj{iUnbtT*^oYpa%#r)j?jIY zi~c9kQR{yKRtz0q-n+vo6`4M#3 z2x~NCa%{q00bg1-Wj7bK2Ek#|4%~~9Q+)4?ii!>fz95p$W1n#rA(>)h|PNgaJqi?A&Vdc32F9vo6Q zd+V>g-bC=%V)DJU80}KiSECOGXZ(II`?R=#^igsEXl&RvkuW%GSW6n(g;~ z1{Ahb(B2w*6lxmWNo}%=3cjj$3O!pHDVOBlp3h@1Qcjn=+A@0VniB&Lo1Psv^bWuL zvc+yYC4Xn5s(wn}a&Un*o;y#5wzNKI>@Hj5@Qbn+)J7IFrHwr@H0yFMk30N@?&Ma= zK-CVd@?4SP>RW*VtJz!aaObserH$CXYr_%vBf}pOVaS3(V~|Pbi3{7BzdTZSYrb3d z+{-`Ee8(R=k$rVGT))-Gl+xSnX458C-R~D;9>@qOLA2atef6tx7lerRpNUMxGNg>m zjRWK5j>=abMZtMTVoj&d$9e_Xs%KVLlkHihMvUxUBiHW0VM^t6eT4AVb!-FMuJLr-2T z-2Mg`)3MVqPWO?UmbYHT{w)G>$K?XGuanU_L^JHkY8F8|9P02$(#hwuHHO+Ik~~a* z>M(mZ7B&7fV^YrEdnhXGw1hwhfh4m9VQ3qC89J4$}@(B|v#S7atz3J&f=H6Qt3iBofahIb12 zGkgkC(2W)A^L2lX^wXv@{KAz6gC)r8PBup7cRdC>!;xHNP2P~i*% zz2K3!qsZ(s{Eb8^XRjIe;B{l}I$yBYW08GNQ?Wza_hz@4D525BocZS$ox37)qbUXI zEZ3Iq9@PO(dJwfF=7{|4UIk|WCewF-@hq+2;Y*t`f~8%iIND>?Z{!XISz+=91}`10 zpiC`>I8Qzzy^lu?ER`-Gs&UNru)4EW#si1X!}co#Tq>xEmQ%mAMi{1~P{QiI-ZH** z_`H#9p8qiEYoozl1^BK~c8f-B$|=#QCzALAMJ+@!g+|b=ankc$BE9lK2uL zSJ(yEX94Y4@%Bux+_gZ)T6h#?u{S>X;ymjL&WX{38fpC{kh%m zf!B-tW#QTP)kRe^vr3S)SL^q`M}zof4%r)bv?|b(o=UbXT)~|#^~d*oyYOEY13xwh;aTjqCwF07e(?Kc<8;$1cF`h8GYpy%K%X|9P6()A*T1H zzuA)bL>lfOn#uJK$g?Zo@xJ1`k(cJ^iM)uWiavD}VupMmZ!>W}LDv(C-=E0djJTM| z-3+eT48I&G-+yd`FDN#(PEvbr;O*^KMC|7Xnd9)_U3u=XJdvZ>|5SYK z!{+H~#NvF?oslf7z`$=~j+Ah^lgQ?ugM$dn3yNi~zeP&Qw+n~mmXr=GYYGh5U%Tk# zbNjmNX{C&qc0wpylPjr;7etr)+*763=eC$Va39?Un+c2hyezG^Pv)FK6m*&(rDz50bGx_V<;dx>q_)hMT-u@Sz_ z=0NZSbGd&^;`2`LzRDR3)IH64e{b;ET1`GS?`7x^U7tDjZYOtq%)>H~^IeO#5o+OH zFv+M^XzvcPUrrOY)f21zBkCr5QCT&`P83nXB5T!Hqcwc^-c6!bw%u&tuj^bDj(7wo z@r!899|Eb?j4f(2qcYdy$q($7`|~)@Bxc5dD%}oO_qfE&65Yn^CMpE$^=&U){M_v$ zhF%y9mXtYE=lvimpsgE8d9WQa%j! zm)P?ul3In&zNv96L}T9u$|&xUcJvf&dEOqAI>If3HvVY1kMorN-d3$;J-(|bVP|+D z9`^F^*tRHWSTKHVNH%m*O=jEsF+Nq*-U?y%sCRnZb{@l;Ln?Yn?&4p&V{)V?aJ96We&di##6iW(Xrv;SsnBWseE(SiahvPIt>I(q z&Wwyk+rND4BVeJdMxzV$ibZ}iD&mmP!igwpoTo{_jU7lpmyP(d;-#@R1s`);mZJ!| z0<*P zA5@d%Qae?H$JgTbjh#{5WFo>(`LZVEmeh#Lqa;Ce!q}5X!PBNcc3L`u6Ccxt7QUxs z)-HycwCYsM=>)+qL&w)V!sf@zuASA?Y^t1WMZDx5V8_@%Zn&C%F`XlQSFb7U4{Dqs zdbGjy#ut_jwWsb}d$&qdwr|}TUV4+%CCIC7t@%+CaY!7p=K(Zud3?z;T@oMi10!lV zX4Gh4U5{Uv+ebfKV@I?;N6_DN&Xs*6s}~ZWXN*pn!EPC6W)@MWdx>gZ|7LDB&YI+X|FNZtf41g`5e@!$} zk^C1#cA?Wz^yMd!RdSkUdJw2dV#KRr9brlwCrBgrduK>+$I8!h*OA^baf1VM*lzVN zW7=<(MX>Z9kp_{>8XcK?80|T*2zsjjpom=H+IPx9~crl?k&s#J|?V z+coa_+kDgNqxU7aOOJvkw3%>IOBEVKWFb&tbIdb*osO#wIi;e@{h8vUx)_`}E#Ya& zxC9j>#wgw-?f4Fh;g{L$D$#Vz$Nu;)0R_0aI0Ej;rp%`B`d^d;GM$uvYIR|AzH6aJ z{vjcll)seKKA%w~89uok*MP3vnO|SZfpe0NvLtuB{?73R zuPwxEe<-(IzTRWZ@Q~+(uW?a=rMYpDFak#)cHSetl|^9ANwVWO@jEt;a3tALydQed z`8y0X)&XEp)@fC-k&0x@pZ-4olT78cQ@tH|b8TUn=r~lP!4`@7Un4?cnNb7^0I0_5 zlVrEe&}#2cx)c9r#1bI?3k?%Rpw)1P53+jx0SWpCDXQ`}l>=;y2J2-XF|0c?$PWh) zB6fYCjU*Cy@Ofe1QSAL=f~v2#XSLsbuy^G|{srw@?MX^^Gn_00c5siMd34=DDpn1A`Pr+L{&bB=xO3Gsk$R`*U7)sHPLe%Ky~ zmP)!C&X@6^I>1p@p&Ay5N!r*5$^i;;O$+qq;ENbs74W2_@4aR5vngu0*MT+ z)XJZMn5yPC41XD@-M%pKmEP~og6{C7ESxv|uoryOF2WmL%ywGsd#Cz=oh|4FFCpFS zvu5rg6jh!aai7vP%5*1xZI{}JBX1u4AQ-2q6h0AI+f6E;-`^3p9JNOvl7a5$yq)DX zeL-df8!(tk6eT7zc-2qqXpL1<#7^d7cSu8(GbHfVM*Cy>KuK|Oqyc{$NHKLYu3o^~ zzEmivg45&9MB5CIJ-qul#cZWP&izM}jm2=AwS0h7HHt);$J*>;v)O$q%!bLF-i+sU zYU7ox0!Dh4C79c%mE)X#=RU@3?g8}a%PTXqOBP#Ne+|Uk{ZV3}C(Bwdqd!~MW&iws zl(kL|z16D=HG*Kklox`H{aOOCuFH(nxn#TjroO zb)V)EmBS-HWTxY`(Vyv1O&`sXq&7BIbc6QZm@zP;9bB>xyAjycfvicRB|?&MJ}gvU zAbAgR=7r?SY5Yk;cEOfa%VxQs0IS+qB1aS{N@MTpXS4TSW=wtWAhj<1uWJB%swstg zDm-`Gm+d%->i;DO-ec8NysnUzhX4r7lt)*huDy=F>^YSy4@3{oe5KZFRZ)5KM`hs# zyf5!0$9zk8-21w|S?iqfM0A}b~<>hcj zUs0_!eE5to1YzE%MT&zsjDge|{o{>VQ;q6xwz7`1CS7pXhL4j-6Lk(!u8Or8%X8ky zDE&u@Q`Q^ExJFf=2`4khWa&nxRt=rWI%`Qt9>Mi29mgGZ8mDTZZORq4WLS{hVZ>Ry; zj-4|a((6kC=jMDwv0pCT4Y%(rIEd-~Q7ZJ%#<#L0Xtdn2C_s8Ouxs$*Joo6V$ZL_J z+#Chyajg{@2`PARYp-V0k1FS3mpdO1YN6Cf) zWw{%rR7>ddn{fNSmMZ;`I8S$M!^mNJ^~c!~cQ6@HKd`GBI;(1@Xj3uT#2W*R-P{ZB z3m}USoFbku9fnx_W$j9TD>wjam+$q|TGEWN=`8`sRMitR;!a&^5AqpA_UR;q{iEP5 z50UgcQ$?Kn{VL}vPYv#0963YJ2@JTS1Sm}uH*pl2w1oU}Y5 zR$+C+FfIV^ExbdB0K4?esz&BumQM};7?(C4Qpe|| z$T^#(MS-2|JYXFu#& z&SL2Bprv9;pXBnMyxG{ayKa4**6RcF87)iU>F7+WDKm5}%HA+8#MgV9$;|V0 zJEOReLXfr7HW)kw!Lpi>IPcg0(#poL;KwoAPnEs}E0zes(pyF^ggjAOhKYHv=3vBF zKP=a1T_F@;Cs&Rl4#+jq#32`TyrQU7m9TDAQTWB9sECsv;+j1v$1-!I4H|4^u}b## z+>fo+V4sZ^zZKSxHh*0!TwQX#efs(`WuvD)Ei?V6AG#J@aiQ&JRLJBI3)THt8-hImwn?_@VdB}PqOx08N#UV-pa(c*UJM(wVv z4y?3wD~z_~r1guBP8gShQ7lqh@D#{*D5ZvxjOYkcQeOUEtf@FI1=sr8aJl`MS6E}C z5~Q@_kgw)+fpp(3({%1$xTQgOU99%U<&(n9@m73o1}QBw<7aI8%4wc4^f>ALs(e#` zAJ!+GZvDdg!D;+77G`!DJu+}p?(KW&h!MLxSvyl|wdH{3lU3&Mc-&|?(&M3IJM$K{ z(1ELbIG|?=FTfZ)K1GQbKV{jz>4yDbPO(^?Fd42;rO0%PFxQYd1GT$+hi_ruu0I|3 z{=z*4aKP_+|K*F>v9|~zNPp{CHKXl7G)SqdkZ}|#wrYS-ApMouXQ*7c>62y#IL00O zb_U%AQt}E*$d`-Uve8(>&%PP0lDX~xAw^Av0kK_cCf)_f;3V=J)qDt&UG7c7=%Fy_zE zspQ%}-B#rvR}o;Xs_Z1XL{O-2tr~t53u`_k`y3SiKtfx5d_>@;FawCHBZeNBgi$>j zg{u9922Upkp!GICrVg9L>f+wrPTB%tNPI`5@hawz0 ziQK1*>VNB9SK>#0C&YhF^1M)9{K8vbp288W&28}lMgnSTA^1HP@}G%YrijFIDl}L# z0SDl=M2(+*7%;p)<+*_igIGp@;afm08)fHk>={r?UFq^U1g|ij6Y3CY(~B3{7{U>m zH4HN|S#=g|fQs*P!a8vVUQsyfx|EhMm#K(GbZoIZ%`oq|!LTc%Lh>{U^XArue=dOr zZ}R6P$=uo~&4q7^bH;AVJ^=sZ5-EA=h1`z++)A-^rP#Tg-uZX^_1(Cky@Z76d1mjO6-4+E(l&-oG0VWOda4s{6qsIg7` zzlHF&a;z;Pu1Kr1D~BV6An_dGnN{tbZD_9wD;RqC-+& z?l(hVOc2C6BpCi1?KJ^LD-nhWp;%p1K$&4{sc#+hvO7ivW`nh>kNcU~-M}rNi%VDF zyusb_&7ZZFTcIZI+akLuOsLq6+?Zd^w|VYa$oqPMz&9- z_Nvi@tePtS=|`#Q$#h$>rE{Sck#+u^+^Rd+ZI{(Z_i_%v&vpw!Ub#xK9n@Lm+|6v4 z8&H>NKhUpxZ$Zdql&~R!7~9C5n4-LpFgj2uF9F?uN#5RHWG5eN$<&vJ$KA|45T7yEc_s;O^A}jPOaZtB>K!?c~4p z(9!W*j@Q@Y;p+@wMuPF248gP;m|doqQ5rx3sJDUmUjRw)U)n}Wb^sy88=z8jXdv%z ztvlm6vj^F>^!Ty@)=K*m*gGmshHlJFPnuLwjG0y@*WUNz59B~Mg21G(!x2w?iv z&FQjRd}@o*M5Nd+HCQF>>3DW~o^;>LFC^E0kyd^qZL#}bBzjz6dkPAP(Jtyc!#sz; zbT@MKJpAey|5A=RfiGu;94{-bm&+m0#M{DeWfQ!yvp<=qNz`Ew|3^4>n(RCpxRa;o5o!vsWqhIj1^3J*_8YAPg zmlQXzn?~#;4$C51IP#$0>0SA(@$}0I>3W&CdW=)NKw*Q$}_3%sKU(c?6EPTUuJlsK`^$`-)aFrdZ94k%x z1(HC33v9KvNztDX6u=m3MXD^DVS0ol!XHY~uv2vs>#gdlx&y1KSEe!0a=f;i{WG6V z0`%h6R40M=`Kes_Pv8nJCm%)v?Muqr+Ffu1w#L%7cExfU|1;#z=*Adenj|7}R~wSc z64Ov#P$g93S;y&QRQK&9E1*#o7n{KGXCR2wx%qWaeOgogMH&b$M{EbRz)zxz=O6zO z{2Qi>#{z|c4F&O6qCjCr5LQOeKQmDYoYC%EJbjt=f^Jh5&Vp^PD%YrY2|Sq=;7!l; zLQP)66512(!lmaed1VHEv=GI6LED=?{-k2QQ|b9j{_8hJVK+Wl$S%Wz2Ix9+tUDfW zgxfa?S`3&ztOontkY3k^iDR58;(+4qwP@XKH40}NO~~jK^2Ln}6ufr1bGj6%Zxp8^ zSzMyRZYB3i_&MbkbnlWSv%4{6mfx#$Kkoaa`^Q~-e};FYB=NR$hQX~2RslURx#zPj zE}$Q2&|a77euOl~R%Yj~9#DMxAHCdw-Dbn4rA<#jBgHTkzZ_xMQ`;2O1X;%vZZIk+%Fpp;?RLlf zw!22fVW*uJwbY&q07>ZqB8wB zK9atpv49VRtRJOfo4~+sDt2oh_49wi=0A~io?HinM;B9yoZGxnwduqUX6vwYwOBq~ zNUW1u{7S%j%TXOx0E0*)BqnoLKz5xIswaO^`v|mp0xW%*Sl8J%yAHg(<`E16{MTFd zZ=qLfvAQqf==FNqxxE|8GfOEC5>Q|^SeiZchQhp)nQrZln*RAeqbmRJXf96>(wdLz91 z&|u?Txf}$H%+(0n2v;KwY#B=~etvA>x-|QGAZr~s-vhahjm8e$0saAdcuOf6y0=`V zch#Sgrt%-xm;7q@*=&L9-61z=txN65*1?23iWlo%)NpzQJ+Y!~9+~>4>j3=8B_#IZ zi43`;dH!)6x+J@z6~vFbuiA(P7Q-McWZ}RXoI&wo%nL(y81Td5IQ{V)&qQB`)Q9c~ zW8AwL_bHzw5EuajG%RW6%W=BaoMrEUHNkKQEB6#jjpXaVD=|=wUC8vX86_kanH_c?WlWx%cy|k zy2!~A0=7;!7dMj(p7u+w-2#TqpLm@n9c~6C`=<&*F1}SG9e&mhO1`FJWPWu@l1))( zMXVC$`&VyCvd_eGgs$JEmCQF#Rb3h0#62O-|G7EbdZtmAorwZWb{xS&>?kvf3u5WB z9pgAx8_|Q2Hg`S#x#MmSmt952GEkH{2?X&e0mlp}DFGP387Ze(eQduv2kI0n>% zz~+3J|3wr(g_&&<(TY6!%%p$yy%d7iDQrNZ{(YrSl43hLW!qf%?Y{rVpIZYE7S5GH zekD79klQwboCjQxN1#Dl(;&rarBpTp1z{%>hZp3c_1@9J#d~+OO5Xgidj~e)!|n8k-A|ODo zVK}us^u*@s=4<-~FF$!5mV^%j39~kg)0WYFTQ`Ri1+({Pv0$R`dj7;gE7)osHi2_Q zn%!*_hj#28{!wp+8fO2Egw%>i0W3I|5!mPp-9SEdsRK)pdVB(BfWZ5JRLPYs^MmcI zYbyIm#Q_gZ$QZ3sx~h0LcuoFhHUe{lY#YSt%h1c&#|lpJ9|N z7ua!MHQzM$5uo`0VT=C^{iNpd)|^&v68yLyJH7l~s|piGY@wdn>2^f{%dtPHmSlq+ zvAG;=(iZ|o;49uL%ePk~!beO3GggRx!QZir3_FvSG$#^nUm}hI5GY1*$umo=Ys%eN$p!q`V5abKiSV_m=EL z0YddKWfx@Qpig@@Y(G35kdA#9+xZU#?mGm}e{k}+k;m;Iu0*VVd$(*N1vFOk&d7n) z49bSL#&c|cX$c*r(lcoH@f(w|hHGIkOiFvmMhnOcsUPsJ#oz#ZIn57&>DAdV@n_(r z!JIA~9oEf+1hgv{%+8;Dl?{9GU(RZh4Q#(%mUl>?ep_DGbB(~PV;_B{%s%#*;6CjH ziT)|EaY)5~qVX9e&zgOm*;je-!Y6G_+D_j)T7J&$^3cVu@VCG_+ncSxf4cR$)&-=& z)fZ`6tT2mBu6;kAm~bPKoeP4W+^qRI`g|YEbSn#4igd7|fgfRt_sAyS8yaJwSeFnE zr0YW}G<~hLtO67pc9od2lWO%^?TgOI?Vx#EbuQ=Vh6 zsuolicj<55$rj<0U%Ba)(B6K^hB3DA=W{>aY~@S%V)@@K@*=FvtSw&wcL-k5h3 zjsBO$Yy0~% zG{3gj_9Ut9OcdWEdVDL_{;|9VC8}ailGP~^36u=jACA4~DhPp)-l+TeG3r(P-aPxD znoOz8aoAX{wz(EGbr60U1k40&co~@XdZ)&dMKa670_``}jk2ayP)6oE;9dzFG;PI? z0fMipT7IOzF~d=h&vj{%?jD+)q!Qm7q)PKsLZr});~>pmuMhbg-SuQl>P-O za!+JkG&eKA>&0YUDBS*3!u*rB3cB zKSYhpy*!+3NlT&BW#ncXv^$|Zu}&x`X+s6&!j7q47J?kWrfIXhr&Vy7vP7cZ#otn0 z!DPpCzqsdo+wj6(u3k>dsxqTVuz#5b_N|O#8Z;QC2L7evIsL5ec6ZC^63g~8vt7g@ z-IMdbjN#9axO4263|R=`E~CmVPP@SDBQ^;WzvfGAu;P2RJT=Ii8#BBs2E2{_m*4)* zm{t;jC@aC4v)CA_I1{3ZF5liQjCr%BmtVbUB1|R_6@Sm|ypudM)X!U(mi73)01aDN zOGgHz5SzAXvx5HWoc{*2j><(K>6{BfW8-!8xMwMe?IAaU)?=j;5Ez=g_T#Vu^y}rD`wjG%ug0v;c+&YKl(&67wW|lgXikTIxV~E%D@f3raZ@MOwG(pAJK5* znm&ID6*|ZzLKOCMeSE1oI6;@3AtHvtwnYc29MAP zXETeOVfhmxOjXD|MHL8NisWAhR3NX;q)2wWFcWlXJF=rRhk!9eV8ZQDs0>p-n4fGs z=dBdm)O=yqGDC4%?*;n>+l8UpOI79lu`?xgvTo8qifwj=mHg%F#%a?u-Wpnl)j8BR zWQxFeA)vJI-ac(#i^=9HMs_8>GO>}{(})&FqB0cdcQb(k^EWk1PX?WQ)fPr?(oR#H zDNg)Nlqtnd8;cD&ZHiKS9?<`{D0x69W`0pg{C|P153 z-S5B&@qgr7Xa~+$l#80&k-VOLkN=7E_M)CQyYDKv)(8h3@4hQB)g7EC)4XwjeIK%; zen=@JQS3)s$z=SYl#i+1TkrcbKmkw)6aZyF0nnq<$jv>-uI%^M1P(#Kyc?)^Pln}p z;}NM0kv8BEgnI%3Hb|w(j_$10QU?x6;IG3OH#J!z6nYc)$NJVG2nfslAe&vk9zTP74q@Td8|ze#G;*(( zBN#LA*ESd2wu-s{pa|#%s=Ql3mG|!ege7r`MV?VcixVZ;6Y(4od*out8lWhWf%&cz zi)#S*9{@VanJCDFAEyRg*Wk<8(5DN&n6-MlF+>9;eXqg7BasE*QWfZ6a zt$^lTzl60xUx|T_UG)@YIM_fO8Vl5nCh?pCB+Pu>p0d%lL94IFPi_45UsDFEeI<3! z&5$9^CJ{^_|7P>+T6fa=Y(PmQ_4M=~6Rg#HXud&DV^}!N&@5sMI=o`g@ zAuP(7XXdt>?`06Y+M;kQVePtpBR9-p1vCg;8pJ&MKdkYOdB6ysbv$P=a17;(4g_i% zRZj+9gS>ix=S7o(Gs2^{oFq%rlBQ7FfokY&JV)AKrqZ&V(vGD6av+6_)Q94jCCvWy zU(U)^7?I)SKUvuf{{=G>U8`$z`S7mnQ`0vL|4LiMbZ=jge=a3zzu9MiR6BLp;akba zR(W*4E5p)@fx)F{VsNT$oUM%Oq~eCDy!9$wcqMTw?WEY*KxXqyhYt{jV7f3}U^VKD z=X6)Ddzz-qQ+}c3ty7a4x#k1w;R5lT_^x)kHPC?VI;V?E%z|&brUslPQrPi7U)@v; z23VX{zfj<=a}kZ)f=2EVVG=o?UkS8ov!&Shgw#o(jhpDkK$4bfO2_@sBbuunzgM+u z2&lqy`r9KoCUft)(eDM)DxS01G7;k1j8}Lb<}&9#mra1aClC{CZY|AVCuDxFasV}8 znqKfPNIroW2Y_fp=U?J`{zDzgs455cW&h@gWRMfoS-Ju_FW9ABRLot3LQbWnQas00 z;|zRf8_F%uhVNUPV5 zKw!p7S6p)mMAx03sOf(dATowNyA7WG|LVB*K&aF1zq{>5kr}Iv6-}cuDBZN~U2Y#1z9Qm&ql@Wk_mVW+X<#+<(uMcK7|g zzu$lJJ>T=3%lG@7=X{^fdCsgp*IBuu()!GrEwb(8^Dpan=@<%9$*Oxx zy55t%sof&_u4nXrhPrxkv$<3p4h5<8R^A{gk*26@5R==QmE|sl2)9s*vfnYA_S~vj z*$GG#MLt|SCCapxf*bYKI%i7;eImey6Rup$~n6UFZSln6RW%!PfrJF^~N>fXfvbs>DlymS# z?+H6T5^_+eJNVS3uI4aBe$_`0)zSCj<(hoX)1CLRz1Y6bIlkP*2cil#aVB ziQTNigS7AulP#OG%SEqjK_o+Vu(*;bL$HrbF~sV})er1u{MPf|dGCwMI3Y6yR2j87 zN2e>qm29pR2ojaZsMjR~!}*lk#wh->Qu3-#zx#dK7DtC9*J9o!su|K1hM;VzXG1~8 z*Yg9a3oAJTz=tFtj+GAM6wn>~%J4v{>S2t=-HW?GSwo{}MbQdVJ*y(PY~)jlA%}!NZHZ@sX_F*!Vp>r z%t+>JB+El|EdFm&NpBytHSnZ!pG%*MR3V%g%1{vR_?D6Poy9Su=b&Q)?Cthq^Aa6~ zR-a4rGwj#DZgd=co|Y6#N~F*(S{U&$==?k;$v_{akFpmJ+KU&YPpo8jsQeeAHx2ZK zrY24k@Bn8lBhW0elzHZy`&!Il{m) zL-h)@wQsZgJSvkQ>?4;)NbzMzx}`iC^CuT(;d#A8t$3=z>WgAk%)tu5<&(!xeaBWB z!gstbOg69=_h~Y|Ua(+2#eV%dW&M)F7op3x8p4cgVuiM#UEDIBhi=$vp8OdTEuJajF8JD$^X?NuQH`Gl}JnsziqrtgH7>cE8S9q zlu7@SBm@ztZ#iU;zuo59QGvFr@3@AcFC_UFj_ftVP$u|&?N*Lr zT;a1OS7FqkruEI8cFb@JK=is9KB=<|`s3mlR4%4>^nyZy_yk4?#M~_DGC#B(gq&wV7U51oOQbU_a=mD2*tq-U0^97d~WztH7tNec>Jc@jN_zEJ^6aXn=|p8_BLW)(m9^c$7iN6>93G2`+{O7W1pJ&MEe+ z;ks9+i?uNN^+rWF>IydHod0`|`!Mzj2zs&R!=_FK^OQP&EZpMFJPmM~Xy{9}@&MzT zKaI~4w0yj>pD-$D$m#whlzE=WqP%sCCKm^&&2sRxqZ>cyW?)|9@C98zka$1q*AH!W z6f-ZkzlZ3fpB3EK!h{1f3Xed&MK|U+!D2^S+iy0x?y6CPe(I*M+vNkf2(|BVzY zWRncNiOt0jx}Mi?DLnAhy6bn!C}_n^9QEp6mx8(CGf|T8k%HQ2TZNYs>qJa*F-HzPIkdwy{im0&==Z^7r8NSt4hlA~784#z9yJ-$GKjsE z5XN}by|ClX#6nW5OOIfx?-hs%goAjm;@RW*e%^GW$J1Bo&45>uAL=k4XgpYo;8aWq z-RhPMx`d-$zZfO*EL}(1tYWG8^x%(vd;#h0UddSEqJrYY>bs}6rmsBvtJ8Mpf24== zG!u383wM4nuw-5Iv$Gw|dK+SH6MTHVtzvk$`2mT!S&K(kw;DyZa}f8_h&HSi?V;Jp zT$N91okSF(iR-nIN)|T@wg&n!%Rs;~n;0CzlQ=~0m9;A^_e_;0aqo}K%w|M)!ZObs z!W#kS{g@NnkqIt>m22l#Dnv^o*(JC_(am86+X>a`o~w8)X4CzT6&!uC2E_$V zeF*An^rFI$kH@;LImC9?Q0}$@PC2cC+-s(B^RraynzAZY5g%@gmBF;r-)Zj6wCKtxETT7$e_Ol$Ld&nR%w4J@0O# z7)c92JoV3hFAEhs0RSwjL!Z!3{V9&5kRVy!x>(}=vDgxwK@lmsU@qL6xA55s^Hu7eGBAAgkgXr{f(r_*ia@p;2R^CZ{=jSRNT!8E1or(c1<;|U1d0_)woH3 z97P_YE0>>Ip#82tJqFpNZL%tQf9kWC6ayqWl}Dzgkxd5TVa&;Sz2M(88S$_h?1Uhy zX)Kf-cS__uG&ccBd{JJYm?*I%7yt((6A%QcMsnX$8cd>b&L{c*;lp#?w@1VT(ZWZ1olMGaqzTojd5N zy=)rE`W^M)Y{WBYKOzcouxyyldwbg>)=$g&5yaKtghewRMYwB|@(|QM5Xdc8iCtU4oceo`KCB6RzL$far z(4bE7*->t~k zBk3Ijw$;owXanm-rl>t-Fe^hsE%fesZJ6!Hn;#@dX?M15YrZvD{qK~;lVlHBXx$l= zm@RX16ywuVkb`ZXM90}jemP?QO@jEY~oMG$YyJG^0q97gX$ZoR@viL_ic(lDPmQkdPzf8T* zi`l@+MIrJRYW9S|S%uFzL6>8}$sA7rEgt7$;byjA-*^IC^Z*d`F2Ec9oJd<-)8Fk5 zl6a4}o9`O;!d$wvo^|KDq2h)+YhQ2=xmuZ>cTaU6@luII0vR3V;Z(Kp-NTg(QKZAi zu^@{ST%7&hJ-_N=JNpUiq@#npp!6RUNol+N+ZoysxYBh|&4v zRs&2@ZeP3dA6bb(5+173$HS%U z`pLY`)ulf=+XuHv*`3)WLg{$FG}YC}_KAf|2Ohcl?Mv$yALrjCQQYT?ya&=V7VkRs zpS{jT-2D!nDfV1HxU5Ty6pfqGaR@J5ypQfaJnQwIK6x6+j?}ks?@nt1lO)gxJ#nykQiqLU&7gC3P582k9E z>}mmjy-X|4?=DvjqZ(I&dG~_7c({MOAN>69Z~k5@0mWjRKafTHg3-wjS!Z1#Re9}` zKVVA(G}>*F$EPZ>@_xkKe$kV?>aOX@hpO()vdE;Ig0IdQoMwn5J&brxmC2=Eu|2 zI_bxCd1~Y{5}%4ZqT`riHXVkgxbJx2T_9-vA69;ZHQKkR*Y^I7)-$A`XMsKMQc$q0$6MH&5e zw|R(d5YjZJZTVlfySs*;h4*G7bVgo~N-g2CCrYo|+|+T;z&3;C$zRRyutiH|g<$GM z4yl9u9R~%gQ0^@Y>|@bPPexh))ftUOuxe4IXAhBLmN+Ye#&TBTS=Zi&JTO`Qx{IetdUOIp>w z29DvTd}+qdm}TQ{?Og^DJE!Lt7?ABgw&0?aU|=-K_vD25m?U2eapw<$c$Iaa0110j zvoy&|>yd7_k$Mv%4nEd#=0=AU);~nCsY=)65IffoSq(<15~xhwwdMl|iN0v6I|oj~ zdOLBKX*1%8T|2jeMVgfqny>rrEbSPSU+*6L+R@WZMIE|fMo^@`(U`bILDo&az3SR2K5)C!+#S-skG3)BeNhy)5lu*tAUT&9l!&m%HGZI}6djFsss$#BB{AUude5S7fQ6JI~#E0AMc-a=N`MYJ<mdo}nw)H_!y|UVitAyxEX`Q}AA<1O#gsS6~5} zT<3ctW?_Q#%HgMpy8(Gx0#oi z1_1n*q=VrBL10(_Jnp}Ijq-nuFZ98UU7e0XK3+P$9;C1NKlgb376G@IMbgu!p63NJ zcQ@k^!)Q&?UMounWyf|`i~`g9cD;@#W`vsDIsOJa1Bhi_Ku7E3n&J6xhpKC_>qvbq z>#4yv*$xSDGx(H`fo7)P;pUSAlT2F=V+v446Qo^;3V?y;oJ0y1wQZd830$zNIT8 zPJ;pE2k|`^Add2E-DLs>4dS=P!5Bz*E|y#YA%BX`i%E6W=UNNAoc82#Udc+oyIlgN zz0O!8hu+tWm)ri2d{^i4s*W}*0ax4((M}Jikx$r?`Y>g7X-|Wu)4qMm0j&~OD2Xd$ zhYrS%9uglZMbpfvyP|?|w1bvD;WARn8?J`=3sEVvB7=_PK8k@NQ{>K*D|XUqF0L%x z&_G9dH%5zvYUKicFwlaX2j}+p_c1;4SW+T{ZO0JEDkx#@oUtyhl}`)`UF#y%~11h_vB5)86k8ej2?* zLhlP^AjZQi16O;I9g*}-g|)98aO7t`?}kHg5pijF3s80G6DG!+1@I3#MBdTc#a*XW z2RrQ^Q>;KjI?r7o(c-KeP4*6*4e0xaeRasmwtH0kI&Dc$1zyemF;Ygo%9?UxrehvZ zw0GL>yjAbi)NUMAZw-i&jUN|uw}(1#zu_EV6G~51teq#BY<``*N%EwJIrW6(qJsoD zg+=58en`MhXH-LDnF*_6_V8M>q~hi9ONs524zRw6E$Rbjl7_4I+=ASlCQ+Ot_DaJ3 z8plvh6XdO+$-qJsw9GkemBNRnwZxMN&rf}zW;|UAwk#$tPwU#GN{D7SN2w$)Uyq9VK_YC_$X(d>=h;kW z{wfC|I|vR0yU^$lD!dW`@ghAGY}?2lzExW<8RDjDGw7{JTw%r*#t{%1HKChyPKlVZ zIw!_*2v0z4{}uCwi5wyI`}{jMwU z-$s5XOcez^x}!3Sl4}nw+=xeLxXUB)*P;>O>hqStUZAgz_p;Lq7;97?tzdvh1Hbq= z8H*r6x@Kr$&^eaSy7M~Zt(SQ9^?|knOK&SiOpyg~n zN?gA-0xK`15|Db%KkPHH$gXEG+{KoF)%Xll*RJp`E18+xcNbMkTv7+H0vI2XV9MLd zvK}@$G3mw;*K$b!Ou(8m#ZWjeJ?l(N_B!7-*|s{Z2O-5Bd9$9&i; zQS0?3;z6vV_$6pl%WsCx0wxszbyDKNPkYvE4&jd>I(|t)j?%-EE@{;K70#1X7(clp zMt$KwxW(9rR6?HVO$=h2q&k{M4<2-_E`Hcg>$&6|dNc{|R(4^&9~e5UvWz*Yafv|cSStx&shP8lv`3@@}s6^tOR?285A=SINo|E%o9i~tR12&{u# zA$)Egqw3O&zz4*%GeVF3lrCevq)#B2{S!(`N&!fm;BKi=Zu%$<2loY(Ha7^tjG>lj z7;=d`$)4Sto#AT`*o=R6dd%<;R*O?8t7g78Rk#0&+oNe>C7{y-qCWmY78BzSkNcAy zN4+sn4?OUbuli&O#@*DMP-6Bd-vZ0M(R9YxP$suz#}RYHZX!6?A?T5G{3f|#=zysl z`BI^#d`s^gdjq|5Bn!g;9v9Z7SMa3ijVUhN4*jpoMlJ19&JcU}K&3}F&sVuIQJ-W| zB^%TtxwZ}})L0tb+Rry3l=4SYCPym>fwt*b+L#V(QbHuED!E87*v>x4=G?NtJ;s7Q)52kf373fF&wnUBLe%Q zg2KT`Gk=97fWZ;L@wU5-X^Au8A8;wU7_~5>+ZSP@HfQ7E9U&=jfjUjtl_9FA%QU7F z;v`#0ImFC7$c8Or7J?A=k}inRKD0y@#4F(r$rz?kA3{Ygqi~Yea_fgy3`sLzL$yQ( zC*|x)!DdLtHgn(E+c>NMnB|L@GTTEC9>9hkqvKU)vW?Ppl8~X_2YS?8DC%#~a@d7q zzcfgj71AN9e;Y@cy6YKhnT8p?w!6k6%+aj?XcTdLf;SkSv4_k>lz5R45nta>`d(=% znwz28B-9pBr_#iB;t@VG2$f71h%3@;LUOoOh&rsrf;CrldYOy}CZRg{{u4JiY=kUD z0@ya@KIWlasuMyga5&o{;Dj6mpb> zqeR@+n;DKj>?8j({Mw|KezW#pXe2xn`#k_6a8@w2)hosM!$CDnf@CARUNL^MTSaKu zQ#t-%?uWW*{1fs_=BiIR;ybQ^K>5eBrH9~JuR z0tTuA;v_YPSKBoq#Rv-fM6{DJefrJm85Tk`smMU_nUzPJbEQ6CqTh)AruKbrIdFE= zGIh&|shKJ83<^owAq(QFH+ZqctR%<&Be|lG2+~xqqU(x5NsKtBGHtrm{mwsrG(5=t zAzKxomSSJ9<09d%;%yg^@R5O~m`PP{>NgcjK8B22ICd~mXGFLcxV@4zlLdMHs}c^I z>|S)qzgQJx#%H20t3sCWQqA~D3=Q~Xo$(a(SkEhqTJ+*sf#&-`txpFYmw2&Pr)1IY zWs#~b=agO_=z&5C2wU8A&rBjD2L@Om z6&XGzPd5l^RF&wVeadRKzEQNNOG_Rm%LI_{1lbjCDh|$d-9ziO8J@$nH{A?290x8+ zq9zgve{fpPo(zNxCbL0X!AAl{B;W|ah(Y|Z(~=sxQL{4`#%d-ovS;0#X(pzMT~?lo zAbF?z z2W<<}29pnKvz3MzUI^14tqs0mRJ}w;hT|^=P@l2p6&vu!A-y{aHJ2|&Ll>{4Jw|{Z zb#QoY0{A@It&2V~qru`$>@hI>7d9m{&yMIs`mwQ5ZrQLl@Uj&@<|iL$_#RR0gw!x*x_ApVbwd$7px>p__>T4EzT+DmemKl`!btmh%UCjc);{LDndKzbju5A)B^kWs z#CTD`?)yLj!GkFp0mF}GOgxiVk&zFmh`F0MD&rnLZrX&ZJ6eVbildn>^^;ruLj4w{ zb=7VGpY+RjMAD#2ap`Dpwpnr=Nmk{@GD`}DPe%DGp&q*2(w;5`nteh>Y=R9r>Xm;_ zmNaRa(2M)6P8H*xZgrG7SHI4F`SSAcx5b$9H|LZ{uw+kdjlMf$vvZJQ%|r3MYWE>r zyk5brfT&`2W%lt4$M~GTNp}DV9n|LCZHaHp>eJjgrv>qZD#D^Td8;8WWF(%_L0yKs z^_rDX2-RKw${rO|xolbX9knM1&cSjy?q)8z-9=QvBU`pcM8$VpU;={-Q<33 zmslSlS~;5q_AD5LrJ-Oh$98i zT?Z4k50z^O+mybWTIkWQ&UGN971*c`v^3Coe8@Cn((h@m>;@$|Pp#d=Nb{8#Zz2v6 zbZ5V}YXmhR5`S~}=@=w6-IQ?(+>sIHE+sc^p2@R??sZwM?6WyxR=k%f6#pfOk0;fw zhLch|<2}KW<}N&_{Zk3TXC#o4bvmQmPD=_IH(9LrU-YZoC#QTX-Sxy=%7I1q$DT>Y zq?MWJza*6RkwJ$`6lzZ4Rz+DkeUDlUfyuxn!HzS@L>BaOarOf0GzOcNlCP30MV~0!M63mfleJzx;1XbeynPQGTKZb2 zcz=_b*~H1aGujb3wC>P0T;c0i9wG%MS%7ox6mSW`<}1GzhBliC8q^OZtiOJwRTa8; zIZOakyB@4=PlBVz=7=z<T{;i~Wk4K=pJ`4MYcnKJ>#)w7UOgjT_}&jNqrSCU z9*0YmOWCG%B0{Diyo!z=4KRzAzvR|;*%U8jYuo9oCvGf66>JD_t9Qa0^n@DPEnE=h zmIbznaS9@WwOW)-kU&3G{{lc~UuJIok;Pfg!70L>I*>{GKiUyoPlKCZQI`=hNmx)` z$hi++94*M(Mtzpwv3teT>ZIN{A_j>L3S?U#@RJz!ItfG$QoS<gHv?t~?vjgzZi=A#rs-kWt})w4o#1%&dea@|k>rQb0EFq@Z*U37dE3K1)*FB* z7sUBCmTMcVqDhi3+qyoe;FR{?*bpIj?`2qqtMMrs=rHFBi|)nu@7;C8F?C$wrSy-8 zptksYfe1q-f$}jjV4r$$N@c`nxJMlgXKjQv^9ad;_2fVYOh(fAlNp9*Y~k!Mob>Ep z%sl+16v6}!@6uB;6MR$~R?6Rzez*MKM8HMTctHYQJ~b&-&T^GoE|)aW);dFEKjQ!t zZoXvPXxa5F7}i@@th|b!zi`fc8?fkX`*FHt)o3EyZSM8b%3k7WjR6l2m43C=H@;Ry zQZJ5n^kRc!ZV`1%ingzPyTwG&Y;o)|7oMczaPk*A&sia^M^YQpA271mQ#OW;vaC>f zU*rZpp%&$TAS}0C;F&79R9_!b*f` zUTLyf!m9)W9!jFIEBDZ5As4{&OW!$kc8IYqUE2^CuBb2+Q z@~ESuQgqJ=nPKi2K!YuaCCOP+vAqxzOnogqVS}U4Vpi^diScSO~;ojwo)lz)JJZfHO6+Becg&Z;mP(n_Sa$0$C!!+pIM>wXWQonCJS+t;KYifjmiN;E_e_*Spc z{S_7 z8Io7l?mq(VJ-lXv>Ai4|9*8CjmI$d@KU(}r0l_gZ$qtTuU8M3yD>^*hdF02?y{VSa zV-J(t;_AI1h72IUB4PO!ug9vb&;U@g;qdL%JrMSkD3iUUZfXczyff9$>1>@a9p$XA zM;6hFR3p@0XGo#(l7!0uRj9cN*we&#Dcr}{5K%S_^f9FW00ow@$AZWusQ*YK%jmn4 zvtJDzETjp@7SQpd^6TD=;JPPo<~Ksja@WbRC#wVK4|-Rr+p)XY<2$?Q+=fWP4TMCl zSy!C}k+qA`mru}E1xNF-g7cu1LIG|?b&AK)r&0=;4Svv;Pufrl`Llepr4LyVnB;lfN;un84FTH7$V1qm z*}&MaMGR}3X)BOlu--JYI^*2Q`4q`4;I!AI@W~CY2V<`gyKU;yOi07Y@Rc*2lU`L& z4^X6N{fX`M@ndu@+d|XVYg>)Rrd}*a3+1RFFwW0t`k-Ie-9Y=i*5!N?I!o|5VL=c` z-}v`Go}!NB=dO{4-1+kcT}1Jb9}T`RMKRXEwIRTeSExg)^|U9BKueVa!53BitM#)x~N5CuJ>m>K>V6O`0pRz11IY-ghazM?9YD;H`m5JI^Dki_)8h6 z6pWu>RnjI6WYY)b(S=_!9+_ z!(XKWn%m1Vo0`;)zBSFQ;JN*xIuc(AY86V9PVd9UNgm(VF7*1AAD(gPJYbbs7764B z0l9hD^*;QxS1YKD>X!Bb28I2CV_ccnmP|_Sr-7Lrhk5w;iyh715Ze-|tG&r`@Sq0VN`Ucc!qBcI+UCHLW-vLI4sa+rCqy?p zf=yVMvd+WbM8mdBZaWD3<$>hx0JTDtIA3Od7AWexW*#3piI%3)K4r& z8p|HaiA6+|HWwnzgvi`n!Q59gTus&XHdQ6c@IVgOTdq*r2*3KnR|FFbI-fr*jVowB zb1kgFZ3>inE;+djIkR&gAx-UOI^OK}X!786H(bC<((jPoKm!Kzoykb8ojyOyI`SLd z@lwzX5eS-SfA0S*iP}DWgap|GM*(-`y4H#BdJiSbw&wgN-9=CtVBZjSo z!QIeI(~N^TD>cVbDIn;hT9s03C)~+}FGt?z<8kR^qV2#+6kz?gnif+Wc}))V%-wWY z|NHI8_vMk9G&p;Ez+7-LKPB82hVjp1w^|s74>7sOQ2HH5FmIqcms&kp5Gd0s!xG9j zE|V1ZBbz6y+7SXSAM?o#O|ljF3Fv@@jw(jLK$P6R#Wm>-&53A6QkLjF9ZS*8pEBe1Ea) zJ@zio(#M^Bz9Q8uEKUw0WU6VuGL7rsJtXLAR2DAZN_`$>T?E%tU5))aI?Y+WIcJ+L z+95=#)khCC)oyf)65uk`-m#6uY|zt-21czUO$jLRqt4f~FZbZMD&U0S7cY(VF#mjT zTFIz=OC|ay1f-{&`9_(g?@9Guw=8PkY18yl>F{IlqH1n=W9;mo3RQxpQty-vURcj9 zT;n4}PBO81r7N`{Ex*2uIg!Sb~`9f(;V}9pLk1n$E52f zn~yF8=8zcAH(@Z*16RF$rB(k9UOKSJnBEoBnqPh?uo?7N0%%Yv4u$ft;-dsHEx-cA zV8Kv85D*3k0sIrNL4f}&Amje0QRaYr&->6Ty@s0P0x&78dUqlzg1}5_cJ^}2UwiBE zutgv6zd3}bT)z=arp}_JG+1M#Yc6(5PReGzsFP0Sx*sTp4BB7p)5i1=g@ipJjL<^h zQB1<&L*PSpCv2?#brz$6N5kq_#M3;8jB4;G+-ON!rc*B5pNdY=)GT)B#KfyZiZtnw zVF%D{pF@hs?9D^M1Q299jMzPQ4?V0Qad%!MT6Gr7G{0P^|5?VN3Y$oMq@uC6zMqO- zek^=8zP8Z%n0Yg-V^1yxRVfAf;MpVEmad(6e#vD}yA_KrC|g9qJ;n!R7byKw9V*=Y7k=*1NTNs}tREq84< z{n8=FV-Yi90cH$dJ_knM>!L;SE1h&^cX`pTMpa$IO=K9K--53Sc-v-lUZ;*xncq&# zn0z(X2=bra=PfiW!zTuN|8a2Y%wAtH8DZ7fVAX2jz_6kC$8{2NX<6eXeJ@AlUi?xV z#yQ8K^KCvW5xdcfP^7ufS#1b_Osw5#JKtF)*Xm0{z7!|oMiQQdz^aAc&2Px0T3%t< zf64^wV?EG|bn4!AFr#3P-d4`35->9*i*~ADkG%u4(3D#gj<_R0T3Vmk+BG6;f;}jk zVWwZdR$*IqmeIG=N!em7;zzd)?ev+%er^$;_T_}d_lP?l1W?C02qUUh=>#@Nm{ll~ z;YI=&>)yaoH+!VB68_)r$ z=jLcww@ffTYsi%fJOUHRl$%6IzieJ;eXS)T3=y)yrRR`c()SG3+QSz(Xp*-xh20OS z@aQ^bVUD_RJg>Iz@eV;r4e`PFO!FJZ&@+n9OTGy~gRAe)_fM}hq;6G~TBPi>ZSlYE z|E3h&IP_=B>#FJ{x0f`gQ0xn+XJj0A{C1KHB}SAGOU7S`F1R6I%p8evm$zjpQ9uTT z0vKH((1;MJGzzCZJi%e=sSy8)a^2f;ugu94Qh$+G zvGe&&&bLc^Tu?+GPmj?eV<_fvThsXldk_0_6C0%93+$L|y zB6SwpE3q8&)Tm1>onV2s6&20QHY&jCt!JKUgvKn7QU$}pE%hHFnRq&m6SNhJ2WP`yVyB;qv`PeX^;s(iuvd6)_KTQ(pRlUfLEvu|psA+5X(b6PpFLJ+VUX(*DJ*ghxl5#BwdS{l!|!opK&f)AN2K z*mW{}wxL>m=ZrL?5QOwh+ii^p8s&cGE;1B#I$tP-q8dMEt$i}lqKz;TUG z*4SnTRp~GFW zh)r41iJd@+0@)Cq)LZHaXpAR*xfcd%x>V`BYdGGLsU0+Kh@MJdmZKo}k;`s$huy!N z8~@(lQzx930pkMzfyeM*JvjJ`1F#$}kakA5SiJ)!2p^Q6WU%qfZd`=|<>XCBT4n@e zXQuBqX_e>{MLtgPX#b!B?esDdDddJ*!(N05mThRjf&>*DzUD2jT2^9CAeno!1k0?z zjF4bxV`!KccmO<2!4v@5MyI5vYts2E-0eq2OYnLD-xY3LqP9`&f(pCY zKj-IwHn)z=hZ@|KDyluN^sEDL%hsve3SCG{u8|?>)z+9JH10wCVDhYwzWY!kz(^|% zt6d%SwdV?X1Pne5Gz5}BK8*s##DM$8^)Nt9Q10V$qYCY9o+aw3ro6t z3!3pv%Ri5zyI%s;rO!YDa{SVhiTJYufXHU`JOb~#iYP^jUxgwXVWw*);V~Ke;7-Kp zn-H}nT_HzpGP060;v>XWSV4{J`mp|bB^0{FaT0PD6|ya%39b;hNLV3il2y89K+@@= z;TVh}1ZN+bAp;Jf={>kujo3|$@sRd|FXG75CLIJv6TsO%A3(d2iX;WtqNv&6uzSPG z2J0Py+$R|gRhhZ9@gXQiCy{2|Qh((z+Vz94VU*qMB*Jp~9D*d9y%gFlqs;U|rz|Lb z6w#&aS0J=q#UhiemqH#glP;5Bpz$yQoB1i2Z6J)P1{cWG8mAN^TW&aJlnac6k$bJ< zH{&$&_;#8HLM>Cew&Qw$^XtfeZtCu;?WF25OtB4$5rez!F-xah?}cGcJ# zP`z1_8+MZ@)h$@*J>*#d7_AV4rn1+XD(8ne(BWKXCv0|Soag}4aa`1Gj`NKU5W9C( zQr$Ed#zL4)>q%G)Eq1m#Yw^JU?}#oCWj9Ehwi{$59KL{mOJa%okEhfil;%i2I!Qy9 zzTdj|Jikex>X04Te!i$sj!>ao?10KQ9rVLo&Y~9V4*5 z1m{K4U5QSNO}3O=BHUnmB$~_Q%uf4;X8$SlG&iP5yb#AzX2KN(X@i7#Yg@Qe?r(?J zNc5+#%Q@!X0Y38tzouZce*QrHyyEinBrHKYXdqg>uJga51Nf?fS?)V~^jk3dtzh*p zRPSAV??OH=UDlBfJcI6l%0)!?w=g@u61j9L_`s~c#>N&meybbx_zz%C;$_!rPg*qw zv!@kVZ>h>8>CGGL!ZnYl&v+Cs9nVd|%A(f!rn5^qEcyfS{W?l_u8`bk3b zDVPo!0UWf+BR%zhCwQxHhO^M$m-Vd1~^z@>`M4J70u`$g#TR=y;whNK>G3 zT6eYk7%G``>LaR0)goZ<_FZQMuAIb1J;qxy#c442R_Fakhl6tRa$cJ|tf6G)%ELXZ z7}w;jF{~OlUYTw=Lh4ueuDFfD6-))40S!RuzsB zWG47aPahj787NE@MiHOzG4ilfB;tk+`osZ!TLFvzc_#Di<;|fU> z1hjD^2XGWOEJ+b?UtOif?)y>DPSBmdy)W)3py&={v&$+Y0LW%Hli>P8S3`Y{NcwTck->B z`@8M+5a){=h|-aS?JYav5AVS1BcT6Wk+6A@=Z~(eoS`5%LroDs-XL}?310Z;q#MLb z*%c!Ea2Cd2WQ1Pyt_j?d&bm4z5+#&livGH!C$*q@0eA3B)Q1NDHNio9WxN@s zq}>)DqdPozSUF!18WV$mI&7459$ujwJ5GF~#fseIPaWnqqC{5w*y9!~uy}7_spK+$ zpYqoStC^p*5QiKgr@2+@0eUv=6uIIu!l>LzqPk+W>gXTHGO@Z3m;L#pY6Ly3bys?& z!5iP8A}3lLcW$~&4~=A#^vH6JzjQ^pBWC&IS{!;vpzLFTKHR}v-x;e>u!{|t`G}&1 ztZ19c4Dhp9O*QLO+$Sug#`&zJNE_G@>dM7U|7|T2o)gLvY&C?id_dzttyZ*dA7eD! zhNA1hz&&hMslapBO&p*h{E~qhhe)Z%TIqcbDSNfS|D;wYy*>Rs6&u#}Fh?E3zK0Fur^Ar$;ok}ZAz5@n0d@(_XnNV%z zZ6W_2m5a7_^}*K*EP$<`#sz>hjvEV#`B=XECQD-TFEJ+Q5tEl)-iT?R=MaCRcZGCO zDB8(@3$}YM{xYF?E2{R8L=yBa|AmpA$Wy#C$WRo^&j=BZ5BtQg$e}y!K>VrrVE=Hq zX~#`YUJGCRg9<8%E0g*y3iOyH(-EdPQs5z}*^#Z9F{}RKA{byQAy~lp!;MMYpbo>W z5gRhhSDKa7v(`okU{v?NT6e2&x+29gWGAASaU&EymWoW9%Oi)0YUKT@^Tf;$1DMS! z5U`=wXKEsFQ=V%4?Vb=51b^a_h2!JOsA_O6wQ2_!BuR1(5rkF5fSnN)7werhg8#Ag zVJ3GQY7~uvrJxZ1P8{Km&!BFLn3{l#IcIXoL}D~$EP)8Qi8bih1LU<6!1Mxc*qN+7 zGih>yy>kroIee-uHRX2DPG>_0o4ep7FZoQ+m0|Gqpp7}Fe^~T2Q`DBrRYj<9$Z@E( z*npq25!b(KaD+!14vw*CX8*O3lc|_U>6V%BB8IX341WE?wblOzE9j<)!C0BZhcuCJ z=`K?}%rnIEW3nbotekG!McdjjPs$Ks6cyitGN1ucCTsMVDR1w+onX#H0;y3r=b6rM@oSt7@- z!bM{Js*8#QR1+^_BdxZkstb*n^>ht6Rf@4E2$oZZ0Ydn}KtW@2Iq;NK-@z+D47fE_ zB{zqsH(!MM7O$fe?nt_##cXuaDimaa5cT&Xdt@tW_CAyvIM+AK4EkJ>t<@(76s|5e z$D|``OpT2YV_#WA`ep$p3r*$ATPqjaXG{|bt+OPbkXTJto=_l5%1GrNS`SXgJUC9@ zVjlii2fb~sW@AQ*E(2tnE*y-u6oj+M%~kZ?cJm~H8x6OXTRS~{mRRKx`9Pjdg-@#h zHc(r`Z!Y1M%VLMfEZq+uC;(CF*^Pf^59mliDLRgBGKr3OKvUyc--!VIaV9(?CL4Ij zp_->o{&}<;nv#<-g^#UAzS~9fZ|N1u??;pSh~ETUrEEvXk_}b{(W$5N*&Trw* z(152=pzxNGpMHZB6*1ST^2C)7xbqf@JyG|EC6R+HoJSLp`1HMzsT8bEgr>d%j>K&V zt~Q~5I7;kN|7g^(|A_9VZgN;QsfA!WU1S(2348oq*m&Bw32rY9^j~!-(#F7>YY^b7 z4g+^DDaP%;e20Js*mcfi45J5+ssW2Fe#tbT@AnR!qVeQ%zr-ZqL(u#(n%Lrn!pbqD zeRS(6;B1i>?3D7?XE_ae;K8VOWDNe6MIydL;uqH(+7CJtO4Hirluvw2NMxXet%Vq$ zx%~r*2Y4oWwoR^c>AxuR!6W6$>XbGbm8f(n0}UirZNKqsPmFMj}HM!Q33h4LQ1OS%mM))0ZDQ^dUWRx7MuW-pM7XJD#8Fp4@VlO z9jGs6DRVDrcDsfBzFD63*!az>K5JCPbuqs$*x{^Nm_iZ=qbS)*y2U%8Rh`L ze-kWzEP#;XTV1D3qWN1t1q6XC8WtwH^Q;m+;=yq0XLTVSR? z*TUMCH0i;kc@N{D=5fK`%IYoHx-QM~7oUsQPOA|Ny(or?d-Pvw{UhBU=KvtYTA}`H zI|opctbz)?b4eAGiuv;CK9k>zG+1KOtt{S(fQVVDTOr>HWC&3(KgoBzIEkm1I1g|mts~IVT>dufakU7zh6Y>?;if1n~~1DIICbb%kU7$r+KO42_6X7b zD&=0}_?V^?GzfF3;LdNHQoj%FsBmF90rP!yfl9!VT6WixsX2pa`xz>*hyH~He^I)A zGh6M3WsC?T*B8Z=DN>4@S+U9If)I*=iSd-OV4lic=3mONJM=Nwm|w$dOk*Qdzl;X5 z?kj>pd{hb^iIarr_>JmJNtCIWdn^f`pMPchd}xg#1Mwl7e7*0hC4gsB+(Qt&=&Pc1&3az$iY!isHU#L zr`*8J^O>Wm4$Dn?2RIq@8adkQp25mn!^GT;!BqY3MXNf3VPG*`@2v&6e$oEf-3`Bj zWDvHCY|BWc%PAdRk>_H=-KJ2;u!pjDVk>!Ehkr@Op+%O>CW{O&FGp=U?f}ogn^_gS z+We?daJ;C5pjsw~{xCbu(EnABO>ZjH01L;ZnplRh^r+_QXs$F2sQ5{x4X3=`H_R0Q zws^4g2Rbgr5)-nXCL5&Lxn{T-o>ly*CG19k{8gCBzY=#kczm$K>=mzh<(g7ux3N22 zK6q0e@libQ&$vm_wg%8UiI>n7-~a0T;fKi2F?1Ju&c;94Bwk!uC{8bjvWt8y-+NE4 zOx+B|V=OYLv_6+@mxWBLuHCwsOINwjSKheIW$u;bfn&6bL|cPan3I$PQjmCPj+fdO|FE!ME1zEO zUZQ5lQ$CfY=|xhA(T6Hj-0n5ZR%s;3%OP7Z7fU~%A?X!POVdp8BVg>mo;?=k!$Zo@ z(X*g{J*H&0Rm_rEz5M7;<%V3po<0|-9!E}imz<4~Y*=h2Sfyq*KjZNu5ih)HACnl? zlv}WWNhuJ)Qr;+Lx;;_HT}!EJly_@eejS*YJLHK5ZISo=+){4sBTB$CH%E(*`o#Iz(7KQw|@-7WZnBkr# z%%hv9ai`GF%_qT6m@fUVNa3%~^d6AhfJLe;>09|KQKtBhc6xqik~(X%v=V|Jlhz%H z5Q!y1a{HSa0vzJLWABFSMx<>2NkFY867O+Akv%sgZM?knZLdRTD=Y!R+Z|vY(uI>} zyGRopY^$7}L2OV&s4tBJ&X}=MyCE9YYQyZpKyw2%ezq^yt5T|>TEU*oqjg;Zgn zH`8%!m=Y>rTDx$lBB9mFcQkWz@Wje3s%hYd-!v;@E zjM;nJIOhrva-Wq0%0j*EQ03?q-01#Q z7$>EWX8d^muz)f{4I3|*(#AFQ4@ z5SLyrM&9#Q5vN!M6+R;u8s<5IbN+dw2wbvO&+2Tdkpw14fD@0ZPXP>KaoJ~P77$X_ zSA^VO2yQdekge(IMXQEJi|m?2E2VtQ)#Ks|YPx6#cXtRr1PdBm z2MG-B8ru6JM-JUcb#h8KS#j*s1(rZm8igo5tGmDISu4>JK>Ms2=PfIH^*HOnN z4z1kEuzJnAth{uI(Z;0T1a>fZbgZ~emKKXknb=P9EkDY$Cmw4zcMFz$fkH9}T)?>Ffa0GVvf?q-F$ z$B@sU{-yyG$G7Xsr%W`M{k`1?ANNoRpLLNxl#a?LvGyi4yjuU#OQiw+T;h34XO3Sg z8VR&Cf}=S-Y>>b`wBi{@b*M+R_;qmV4j$WDzuabc-B{Uol)hx#2vpmLh19Ipc6)6_ z9&5qPl!*>_JWMD1=9kWjmK+R|t40fvf85Tlvtfjd(^sqNN%?AGSZ*yd=-NtQdGj?n zfB9;X*7ys;Fc$*5iplr)S6wPT(@9c!Qs8GXPlpW3urpmjvuf>gw zoG}9w{|w+jE=-G)bv3G7)yXDUM#uo^a!P;|6{YGb60ZQL2ytn~<+sH6Uky$BXYwHSSks2Rnc?#fB4QQ{+C@?>gLde7zJX{LmEVqd2{6$konr#y&Fm$1UX@ z*~M?*8hVxkhV@6)cC-sZonMS!f2Hv&dQi0Ja+^_}Xhp~)l`?$dwS0!(^ zd)&2sz5$@S@A%IwV}*RZjG(433DC4u8IVmg+`UHS3ZX6m0Q%3Mu}6~wiG9iV6MTCpX6*&70}Zrj6qNdvY?jnN0IZIO=@~ab3r(PCRkO zK(T|R;;=_AB=qfhh|~<_&72m2n~_+Z9r}~vpcFLI!1>`S8O5e&Rc>oymgczbfN5v z%)FDooGR@7Pm9$5z$HI7>9!K<78RqyZDR5jkZR;s*E-q?#ISkWu6#R!S89LIn{rR4 zz7NwZ^?vrxshsSkWKDjbe0Z!kbg-&u+%!WP+6S*SOuEMpfSd! zK7?{rNo%RWUBZY4=D11p>TTRI!!#Ng6nZA22Pc8$FI$h2uS*5#A7mzY8#=!Yd%ilY zBqlva-Ko{`^nVyq-^r5Au#_P28x91PI^4$w*Ne)>N`|vqb>n=HiN_SvD8poJ4His4 zelRNp_yzm5Rs%?_L_Zn&S;}}~SL<&rzH+Kl3EdGjll7NS@U}B%BXYu)^UMx9dC!9m z_7nDp^Nsol_PQvXG8?E@YmU~oSqiL(^uP6AUa;c*5JmvC%X<{=m3fEU<}<$UyG}j} zc$M-5e7r=55YAXJymD#Bb_tt~WLv|tZlPDj=oYqJHUekqF1f=g-pv{eU^OQFlChYi{Kaj|NUyFF1#p0(0y=zj=08+L zaUMx>pYX&KPN^xIu`KZe#R)LjlG=H@_=bO**`qs|3CxH^)bt=LPxZPz;+#-*Lx_oL z*#5HL#`7KUCC*W=41{V-Y@rjGt&4sdQXS`${0 zRP*E#pxM$oSZhTw2{wrJh_fi#RZtd!94J#ex^tiRkiaW#geCSk3iWK*KR4#24>DFn zbB;Ya?IC`cTSp<4`e1^eNuBa1gDs@Es_dwWD*TIkER(yM4|RfuPU30FQ5hATQ8fR?Z~jvgXY@;h?2zz-RZ;s4O#! zUb0|qnwa0Pl6G*vzTzqdb}5Ww z!m8nuufrNpO-6=Jm`N8(aN#Un;AhH`=9kP#hs zaSpHsGl6<@n|~C6>YTan>IIp&=3EpR>%`N*5nT?G!Rher#-xh%QQRMjBkPo*;n-f zD0FU0^KWbe53AO7<;3c_MaA<$)@nqbtvQ7*O5mLjFJkW-ZqWcJ(Wqmvw2r} ziS;|8heA3YNC2ihF41PY{2CSq>qCLURPGy$wJ#3LSz?|$m@jzUw@OS}uI22{?I^P5 zt4ird*4bt~Kq>DeKyhdIHK)Es8_za6BP>vPrH~CF-L@VCSBx(4d{GV@=Oe(}D5Q<<3gd7cdICk^0jeLH(2M5>~SQIpLU^ZvHQe zN_L=`SН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 literal 40903 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

    BW$AIO3fs3cf6jQ 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 Jaxd6C{vT@)U@-sy literal 53538 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 I=H18t1J3$_>Hq)$ diff --git a/blazor/installation/images/NuGetsearch.png b/blazor/installation/images/NuGetsearch.png index f3be66cb01dd0cf1a7e74c56b4daa8cb60694056..c842e9b2f6fe66ce8f82544c3b03afe06985b44c 100644 GIT binary patch literal 100753 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 QZOII-uBY3FUeg4 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 z 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 Jf^)b3{9jf~xu*aC literal 42490 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 R{I%I{M1`aTOZl~Y{vTXah|mB4 diff --git a/blazor/installation/install-nuget-packages.md b/blazor/installation/install-nuget-packages.md index 5ae692d06d..f56c24f176 100644 --- a/blazor/installation/install-nuget-packages.md +++ b/blazor/installation/install-nuget-packages.md @@ -18,88 +18,107 @@ N> The Syncfusion® Blazor NuGet package, wh ## Installation using Package Manager UI -The NuGet **Package Manager UI** allows you to search, install, uninstall, and update Syncfusion® Blazor NuGet packages in your applications and solutions. You can find and install the Syncfusion® Blazor NuGet packages in your Visual Studio Blazor application and this process is easy with the steps below: +The NuGet **Package Manager UI** allows you to search, install, uninstall, and update Syncfusion® Blazor NuGet packages in your applications and solutions. -1. Right-click on the Blazor application or solution in the Solution Explorer, and choose **Manage NuGet Packages...** +Follow the steps below to locate and install the Syncfusion® Blazor NuGet packages into a Blazor application: + +1. Right-click on the Blazor application or solution in Solution Explorer and select **Manage NuGet Packages...** from the context menu. ![Open Manage NuGet Packages from Solution Explorer](images/ManageNuGet.png) - As an alternative, after opening the Blazor application in Visual Studio, go to the **Tools** menu and after hovering **NuGet Package Manager**, select **Manage NuGet Packages for Solution...** + Alternatively, open the NuGet package manager in Visual Studio, select **Tools → NuGet Package Manager → Manage NuGet Packages for Solution...**. -2. The Manage NuGet Packages window will open. Navigate to the **Browse** tab, then search for the Syncfusion® Blazor NuGet packages using a term like **"Syncfusion® Blazor"** and select the appropriate Syncfusion® Blazor NuGet package for your development. +2. In the **Manage NuGet Packages** window, go to **Browse** tab and type **Syncfusion.Blazor** in the search field. This displays all Syncfusion® Blazor NuGet package options. Select the appropriate package based on the component requirements. - N> The [nuget.org]([nuget.org](https://api.nuget.org/v3/index.json)) package source is selected by default. If Visual Studio does not have nuget.org configured, follow the instructions in the [Microsoft documents](https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-visual-studio#package-sources) to set up the nuget.org feed URL. + N> By default, the [nuget.org](https://api.nuget.org/v3/index.json) package source is configured in Visual Studio. If `nuget.org` is not available, refer to the [Microsoft documents](https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-visual-studio#package-sources) to configure the `nuget.org` feed URL. ![Search for Syncfusion Blazor packages in the Browse tab](images/NuGetsearch.png) -3. When you select a Blazor package, the right side panel will provide more information about it. +3. When a Blazor package is selected, the right side panel displays detailed information about that package. -4. By default, the package is selected with the latest version. You can choose the required version and click the **Install** button and accept the license terms. The package will be added to your Blazor application. +4. By default, the latest version is selected. To install a specific release, select the required version from the available options, click **Install** and accept the license terms. The package will be added to the Blazor application. ![Install a Syncfusion Blazor package from the Package Manager UI](images/InstallNuGet.png) -5. At this point, your application has all the required Syncfusion® assemblies, and you will be ready to start building high-performance, responsive app with [Syncfusion® Blazor components](https://www.syncfusion.com/blazor-components). Also, you can refer to the [Blazor help document](https://blazor.syncfusion.com/documentation/introduction) for development. +5. Now, all required Syncfusion® assemblies have been installed. the application is ready to build high-performance, responsive solutions with [Syncfusion® Blazor components](https://www.syncfusion.com/blazor-components). See the [Blazor documentation](https://blazor.syncfusion.com/documentation/introduction) for further development assistance. ## Installation using Dotnet (.NET) CLI -The [dotnet Command Line Interface (CLI)]((https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli)) lets you add, restore, pack, publish, and manage packages without making any changes to your application files. [Dotnet add package](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-add-package?tabs=netcore2x) adds a package reference to the application file, then runs [dotnet restore](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-restore?tabs=netcore2x) to install the package. +The [.NET CLI](https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli) provides functionality to add, restore, pack, publish, and manage packages without modifying project files. Use [dotnet add package](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-package-add?tabs=netcore2x) to add a package reference, and [dotnet restore](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-restore?tabs=netcore2x) to install it. + +Follow the below steps to install Syncfusion® Blazor NuGet packages using the .NET CLI command. -Follow the below instructions to use the dotnet CLI command to install the Syncfusion® Blazor NuGet packages. +1. Open a command prompt and navigate the directory to where the Blazor application file is located. +2. Run the following command to install the NuGet package. -1. Open a command prompt and navigate to the directory where your Blazor application file is located. -2. To install a NuGet package, run the following command. + ```bash + dotnet add package + ``` - ```dotnet add package ``` + **For example:** - **For Example:** + ```bash dotnet add package Syncfusion.Blazor.Grid + ``` - N> If you don’t provide a version flag, this command will be upgrading to the latest version by default. To specify a version, add the -v parameter: dotnet add package Syncfusion.Blazor.Grid -v 19.2.0.44. + N> By default, the command upgrades to the latest version when no version flag is provided. Add the `-v` parameter to specify a version: `dotnet add package Syncfusion.Blazor.Grid -v {{ site.releaseversion }}` -3. Examine the Blazor application file after the command has completed to ensure that the Syncfusion® Blazor package was installed. To see the added reference, open the .csproj file. +3. After the installation command completes, check the `.csproj` file to verify that the Syncfusion® Blazor package reference has been added to the Blazor application. ![Blazor Package Entry ](images/packageentry.png) -4. Then, run [dotnet restore](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-restore?tabs=netcore2x) command to restore all the packages listed in the application file. - - N> Restoring is done automatically with **dotnet build** and **dotnet run** in .NET Core 2.0 and later. +4. Then, run [dotnet restore](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-restore?tabs=netcore2x) command to restore all required packages to the application file. -5. At this point, your application has all the required Syncfusion® assemblies, and you will be ready to start building high-performance, responsive app with [Syncfusion® Blazor components](https://www.syncfusion.com/blazor-components). Also, you can refer to the [Blazor help document](https://blazor.syncfusion.com/documentation/introduction) for development. +5. Now, all required Syncfusion® assemblies have been installed. the application is ready to build high-performance, responsive solutions with [Syncfusion® Blazor components](https://www.syncfusion.com/blazor-components). See the [Blazor documentation](https://blazor.syncfusion.com/documentation/introduction) for further development assistance. ## Installation using Package Manager Console -The **Package Manager Console** saves NuGet packages installation time since you don't have to search for the Syncfusion® Blazor NuGet package which you want to install, and you can just type the installation command to install the appropriate Syncfusion® Blazor NuGet package. Follow the instructions below to use the Package Manager Console to reference the Syncfusion® Blazor component as NuGet packages in your Blazor application. +The **Package Manager Console** saves NuGet package installation time since there is no need to search for the Syncfusion® Blazor NuGet package that needs to be installed. Instead of browsing for the Syncfusion® Blazor NuGet package, developers can simply type an installation command. Follow the instructions below to use the Package Manager Console to install Syncfusion® Blazor components as NuGet packages in Blazor application. -1. To show the Package Manager Console, open your Blazor application in Visual Studio and navigate to **Tools -> NuGet Package Manager -> Package Manager Console**. +1. Open the Blazor application in Visual Studio, then go to **Tools → NuGet Package Manager → Package Manager Console**. ![Package Manager Console in Visual Studio](images/console.png) -2. The **Package Manager Console** will be shown at the bottom of the screen. You can install the Syncfusion® Blazor NuGet packages by entering the following NuGet installation commands. +2. The **Package Manager Console** appears at the bottom of Visual Studio. Enter the following NuGet commands to install the Syncfusion® Blazor NuGet packages. ***Install specified Syncfusion® Blazor NuGet package.*** The following command will install the Syncfusion® Blazor NuGet package in the default Blazor application. - ```Install-Package ``` + ```powershell + Install-Package + ``` - **For example:** Install-Package Syncfusion.Blazor.Grid + **For example:** - N> Browse Syncfusion® Blazor NuGet packages on [NuGet.org](https://www.nuget.org/packages?q=Tags%3A%22Blazor%22+syncfusion). + ```powershell + Install-Package Syncfusion.Blazor.Grid + ``` + + > **Note:** Browse Syncfusion® Blazor NuGet packages on [NuGet.org](https://www.nuget.org/packages?q=Tags%3A%22Blazor%22+syncfusion). ***Install specified Syncfusion® Blazor NuGet package in specified Blazor application*** - The following command will install the Syncfusion® Blazor NuGet package in the given Blazor application. + The following command installs the Syncfusion® Blazor NuGet package into the specified Blazor application. + + ```powershell + Install-Package -ProjectName + ``` - ```Install-Package -ProjectName ``` + **For example:** - **For example:** Install-Package Syncfusion.Blazor.Grid -ProjectName SyncfusionBlazorApp + ```powershell + Install-Package Syncfusion.Blazor.Grid -ProjectName SyncfusionBlazorApp + ``` -3. By default, the package will be installed with latest version. You can give the required version with the -Version term like below to install the Syncfusion® Blazor NuGet packages in the appropriate version. +3. By default, the package will be installed with latest version. To install a specific Syncfusion® Blazor release, specify `-Version` parameter with the Package Manager Console command. - ```Install-Package Syncfusion.Blazor.Grid -Version 19.2.0.44``` + ```powershell + Install-Package Syncfusion.Blazor.Grid -Version {{ site.releaseversion }} + ``` ![Package Manager Console output showing installed package](images/ConsoleInstallationOutput.png) -4. The NuGet package manager console will install the Syncfusion® Blazor NuGet package as well as the dependencies it has. When the installation is complete, the console will show that your Syncfusion® Blazor package has been successfully added to the application. +4. The Package Manager Console installs the Syncfusion® Blazor NuGet package and its dependencies. After installation finishes, check the console output for a confirmation message indicating the Syncfusion® Blazor package was added to the application. -5. At this point, your application has all the required Syncfusion® assemblies, and you will be ready to start building high-performance, responsive app with [Syncfusion® Blazor components](https://www.syncfusion.com/blazor-components). Also, you can refer to the [Blazor help document](https://blazor.syncfusion.com/documentation/introduction) for development. \ No newline at end of file +5. Now, all required Syncfusion® assemblies have been installed. the application is ready to build high-performance, responsive solutions with [Syncfusion® Blazor components](https://www.syncfusion.com/blazor-components). See the [Blazor documentation](https://blazor.syncfusion.com/documentation/introduction) for further development assistance. \ No newline at end of file From 070e0f543d5ccffc5801d29d5ce3cf83e90b369b Mon Sep 17 00:00:00 2001 From: PavithraG-SF5066 Date: Thu, 26 Feb 2026 11:14:21 +0530 Subject: [PATCH 08/49] 1008491: added links in toc file. --- blazor-toc.html | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/blazor-toc.html b/blazor-toc.html index ffca85b777..c6e2722da9 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -3244,6 +3244,24 @@

    +
  • +
  • Connecting to Adaptors + +
  • +
  • Connecting to Database + +
  • +
  • Connecting to ORM +
  • Resource Allocation From a6067baf84cc488191a580055971bf6833bc7458 Mon Sep 17 00:00:00 2001 From: subhasri Date: Thu, 26 Feb 2026 16:56:24 +0530 Subject: [PATCH 09/49] fixed the serpstat issue --- blazor/Release-Notes/17.1.32.md | 4 ++-- blazor/Release-Notes/17.1.34.md | 4 ++-- blazor/Release-Notes/17.1.38.md | 2 +- blazor/Release-Notes/17.1.42.md | 2 +- blazor/Release-Notes/17.1.43.md | 2 +- blazor/Release-Notes/17.1.44.md | 2 +- blazor/Release-Notes/17.1.47.md | 4 ++-- blazor/Release-Notes/17.1.53.md | 2 +- blazor/Release-Notes/17.2.28.md | 4 ++-- blazor/Release-Notes/17.2.34.md | 4 ++-- blazor/Release-Notes/17.2.35.md | 2 +- blazor/Release-Notes/17.2.36.md | 2 +- blazor/Release-Notes/17.2.39.md | 2 +- blazor/Release-Notes/17.2.40.md | 2 +- blazor/Release-Notes/17.2.46.md | 2 +- blazor/Release-Notes/17.2.47.md | 2 +- blazor/Release-Notes/17.2.49.md | 2 +- blazor/Release-Notes/17.2.50.md | 2 +- blazor/Release-Notes/17.2.52.md | 2 +- blazor/Release-Notes/17.3.10.md | 4 ++-- blazor/Release-Notes/17.3.14.md | 4 ++-- blazor/Release-Notes/17.3.17.md | 2 +- blazor/Release-Notes/17.3.19.md | 2 +- blazor/Release-Notes/17.3.21.md | 2 +- blazor/Release-Notes/17.3.26.md | 4 ++-- blazor/Release-Notes/17.3.9.md | 2 +- blazor/Release-Notes/17.4.39.md | 4 ++-- blazor/Release-Notes/17.4.40.md | 2 +- blazor/Release-Notes/17.4.41.md | 2 +- blazor/Release-Notes/17.4.42.md | 2 +- blazor/Release-Notes/17.4.43.md | 2 +- blazor/Release-Notes/17.4.44.md | 2 +- blazor/Release-Notes/17.4.46.md | 2 +- blazor/Release-Notes/17.4.47.md | 2 +- blazor/Release-Notes/17.4.49.md | 2 +- blazor/Release-Notes/17.4.50.md | 2 +- blazor/Release-Notes/17.4.51.md | 2 +- blazor/Release-Notes/17.4.53.md | 2 +- blazor/Release-Notes/17.4.54.md | 2 +- blazor/Release-Notes/17.4.55.md | 2 +- blazor/Release-Notes/18.1.36.md | 2 +- blazor/Release-Notes/18.1.42.md | 2 +- blazor/Release-Notes/18.1.43.md | 2 +- blazor/Release-Notes/18.1.44.md | 2 +- blazor/Release-Notes/18.1.45.md | 2 +- blazor/Release-Notes/18.1.46.md | 2 +- blazor/Release-Notes/18.1.48.md | 2 +- blazor/Release-Notes/18.1.53.md | 2 +- blazor/Release-Notes/18.1.54.md | 2 +- blazor/Release-Notes/18.1.55.md | 2 +- blazor/Release-Notes/18.1.56.md | 2 +- blazor/Release-Notes/18.1.57.md | 2 +- blazor/Release-Notes/18.1.58.md | 2 +- blazor/Release-Notes/18.1.59.md | 2 +- blazor/Release-Notes/18.2.44.md | 4 ++-- blazor/Release-Notes/18.2.45.md | 2 +- blazor/Release-Notes/18.2.46.md | 2 +- blazor/Release-Notes/18.2.47.md | 2 +- blazor/Release-Notes/18.2.48.md | 2 +- blazor/Release-Notes/18.2.54.md | 2 +- blazor/Release-Notes/18.2.55.md | 2 +- blazor/Release-Notes/18.2.56.md | 2 +- blazor/Release-Notes/18.2.57.md | 2 +- blazor/Release-Notes/18.2.58.md | 2 +- blazor/Release-Notes/18.2.59.md | 2 +- blazor/Release-Notes/18.3.35.md | 4 ++-- blazor/Release-Notes/18.3.38.md | 2 +- blazor/Release-Notes/18.3.40.md | 2 +- blazor/Release-Notes/18.3.41.md | 2 +- blazor/Release-Notes/18.3.42.md | 2 +- blazor/Release-Notes/18.3.44.md | 2 +- blazor/Release-Notes/18.3.47.md | 2 +- blazor/Release-Notes/18.3.48.md | 2 +- blazor/Release-Notes/18.3.50.md | 2 +- blazor/Release-Notes/18.3.51.md | 4 ++-- blazor/Release-Notes/18.3.52.md | 2 +- blazor/Release-Notes/18.3.53.md | 2 +- blazor/Release-Notes/18.4.30.md | 2 +- blazor/Release-Notes/18.4.31.md | 2 +- blazor/Release-Notes/18.4.32.md | 2 +- blazor/Release-Notes/18.4.33.md | 2 +- blazor/Release-Notes/18.4.34.md | 2 +- blazor/Release-Notes/18.4.35.md | 2 +- blazor/Release-Notes/18.4.39.md | 4 ++-- blazor/Release-Notes/18.4.41.md | 2 +- blazor/Release-Notes/18.4.42.md | 2 +- blazor/Release-Notes/18.4.43.md | 2 +- blazor/Release-Notes/18.4.44.md | 2 +- blazor/Release-Notes/18.4.46.md | 2 +- blazor/Release-Notes/18.4.47.md | 2 +- blazor/Release-Notes/18.4.48.md | 2 +- blazor/Release-Notes/18.4.49.md | 2 +- blazor/Release-Notes/19.1.54.md | 4 ++-- blazor/Release-Notes/19.1.55.md | 2 +- blazor/Release-Notes/19.1.56.md | 2 +- blazor/Release-Notes/19.1.57.md | 2 +- blazor/Release-Notes/19.1.58.md | 2 +- blazor/Release-Notes/19.1.59.md | 2 +- blazor/Release-Notes/19.1.63.md | 4 ++-- blazor/Release-Notes/19.1.64.md | 2 +- blazor/Release-Notes/19.1.65.md | 2 +- blazor/Release-Notes/19.1.66.md | 2 +- blazor/Release-Notes/19.1.67.md | 2 +- blazor/Release-Notes/19.1.69.md | 2 +- blazor/Release-Notes/19.2.44.md | 2 +- blazor/Release-Notes/19.2.46.md | 2 +- blazor/Release-Notes/19.2.47.md | 2 +- blazor/Release-Notes/19.2.48.md | 2 +- blazor/Release-Notes/19.2.49.md | 2 +- blazor/Release-Notes/19.2.51.md | 2 +- blazor/Release-Notes/19.2.55.md | 4 ++-- blazor/Release-Notes/19.2.56.md | 2 +- blazor/Release-Notes/19.2.57.md | 2 +- blazor/Release-Notes/19.2.59.md | 2 +- blazor/Release-Notes/19.2.60.md | 2 +- blazor/Release-Notes/19.2.62.md | 2 +- blazor/Release-Notes/20.1.55.md | 2 +- blazor/Release-Notes/20.2.36.md | 2 +- blazor/Release-Notes/20.2.43.md | 2 +- blazor/Release-Notes/20.3.50.md | 2 +- blazor/Release-Notes/20.3.52.md | 2 +- blazor/Release-Notes/20.3.57.md | 2 +- blazor/Release-Notes/20.3.58.md | 2 +- blazor/Release-Notes/20.3.59.md | 2 +- blazor/Release-Notes/20.3.60.md | 2 +- blazor/Release-Notes/20.3.61.md | 2 +- blazor/Release-Notes/20.4.40.md | 2 +- blazor/Release-Notes/20.4.41.md | 2 +- blazor/Release-Notes/20.4.42.md | 2 +- blazor/Release-Notes/20.4.43.md | 2 +- blazor/Release-Notes/20.4.44.md | 2 +- blazor/Release-Notes/20.4.49.md | 2 +- blazor/Release-Notes/20.4.50.md | 2 +- blazor/Release-Notes/20.4.51.md | 2 +- blazor/Release-Notes/20.4.52.md | 2 +- blazor/Release-Notes/20.4.53.md | 2 +- blazor/Release-Notes/20.4.54.md | 2 +- blazor/Release-Notes/21.1.37.md | 2 +- blazor/Release-Notes/21.1.38.md | 2 +- blazor/Release-Notes/21.1.39.md | 2 +- blazor/Release-Notes/21.1.41.md | 2 +- blazor/Release-Notes/21.2.10.md | 2 +- blazor/Release-Notes/21.2.4.md | 2 +- blazor/Release-Notes/21.2.5.md | 2 +- blazor/Release-Notes/21.2.6.md | 2 +- blazor/Release-Notes/21.2.8.md | 2 +- blazor/Release-Notes/21.2.9.md | 2 +- blazor/Release-Notes/22.1.39.md | 2 +- blazor/Release-Notes/22.2.10.md | 2 +- blazor/Release-Notes/22.2.11.md | 2 +- blazor/Release-Notes/22.2.12.md | 2 +- blazor/Release-Notes/22.2.7.md | 2 +- blazor/Release-Notes/22.2.8.md | 2 +- blazor/Release-Notes/22.2.9.md | 2 +- blazor/Release-Notes/23.1.38.md | 2 +- blazor/Release-Notes/23.1.39.md | 2 +- blazor/Release-Notes/23.1.40.md | 2 +- blazor/Release-Notes/23.1.41.md | 2 +- blazor/Release-Notes/23.1.42.md | 2 +- blazor/Release-Notes/23.1.43.md | 2 +- blazor/Release-Notes/23.1.44.md | 2 +- blazor/Release-Notes/23.2.5.md | 2 +- blazor/Release-Notes/23.2.6.md | 2 +- blazor/Release-Notes/23.2.7.md | 2 +- blazor/Release-Notes/24.1.43.md | 2 +- blazor/Release-Notes/24.1.44.md | 2 +- blazor/Release-Notes/24.1.45.md | 2 +- blazor/Release-Notes/24.1.46.md | 2 +- blazor/Release-Notes/24.1.47.md | 2 +- blazor/Release-Notes/24.2.4.md | 2 +- blazor/Release-Notes/24.2.5.md | 2 +- blazor/Release-Notes/24.2.6.md | 2 +- blazor/Release-Notes/24.2.7.md | 2 +- blazor/Release-Notes/24.2.8.md | 2 +- blazor/Release-Notes/24.2.9.md | 2 +- blazor/Release-Notes/25.1.37.md | 2 +- blazor/Release-Notes/25.1.38.md | 2 +- blazor/Release-Notes/25.1.39.md | 2 +- blazor/Release-Notes/25.1.40.md | 2 +- blazor/Release-Notes/25.1.41.md | 2 +- blazor/Release-Notes/25.1.42.md | 2 +- blazor/Release-Notes/25.2.4.md | 2 +- blazor/Release-Notes/25.2.5.md | 2 +- blazor/Release-Notes/25.2.6.md | 2 +- blazor/Release-Notes/25.2.7.md | 2 +- blazor/Release-Notes/26.1.38.md | 2 +- blazor/Release-Notes/26.1.39.md | 2 +- blazor/Release-Notes/26.1.40.md | 2 +- blazor/Release-Notes/26.1.41.md | 2 +- blazor/Release-Notes/26.1.42.md | 2 +- blazor/Release-Notes/26.2.10.md | 2 +- blazor/Release-Notes/26.2.11.md | 2 +- blazor/Release-Notes/26.2.12.md | 2 +- blazor/Release-Notes/26.2.13.md | 2 +- blazor/Release-Notes/26.2.14.md | 2 +- blazor/Release-Notes/26.2.5.md | 2 +- blazor/Release-Notes/26.2.7.md | 2 +- blazor/Release-Notes/26.2.8.md | 2 +- blazor/Release-Notes/26.2.9.md | 2 +- blazor/Release-Notes/27.1.50.md | 2 +- blazor/Release-Notes/27.1.51.md | 2 +- blazor/Release-Notes/27.1.52.md | 2 +- blazor/Release-Notes/27.1.53.md | 2 +- blazor/Release-Notes/27.1.55.md | 2 +- blazor/Release-Notes/27.1.56.md | 2 +- blazor/Release-Notes/27.1.57.md | 2 +- blazor/Release-Notes/27.1.58.md | 2 +- blazor/Release-Notes/27.2.3.md | 2 +- blazor/Release-Notes/27.2.4.md | 2 +- blazor/Release-Notes/27.2.5.md | 2 +- blazor/Release-Notes/28.1.35.md | 2 +- blazor/Release-Notes/28.1.36.md | 2 +- blazor/Release-Notes/28.1.37.md | 2 +- blazor/Release-Notes/28.1.38.md | 2 +- blazor/Release-Notes/28.1.39.md | 2 +- blazor/Release-Notes/28.1.41.md | 2 +- blazor/Release-Notes/28.2.4.md | 2 +- blazor/Release-Notes/28.2.5.md | 2 +- blazor/Release-Notes/28.2.6.md | 2 +- blazor/Release-Notes/29.1.38.md | 2 +- blazor/Release-Notes/29.1.39.md | 2 +- blazor/Release-Notes/29.1.40.md | 2 +- blazor/Release-Notes/29.1.41.md | 2 +- 223 files changed, 239 insertions(+), 239 deletions(-) diff --git a/blazor/Release-Notes/17.1.32.md b/blazor/Release-Notes/17.1.32.md index 2690f3d7df..bebf0a8874 100644 --- a/blazor/Release-Notes/17.1.32.md +++ b/blazor/Release-Notes/17.1.32.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2019 Volume 1 beta Release Notes - v17.1.32 -description: Essential Studio for Blazor 2019 Volume 1 beta release Release Notes +title: Essential Studio for Blazor 2019 Volume 1 beta Release Notes -v17.1.32 +description: Learn all about the Essential Studio for Blazor 2019 Volume 1 beta release Release Notes v17.1.32, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.1.34.md b/blazor/Release-Notes/17.1.34.md index 6338a3d685..a5316980ff 100644 --- a/blazor/Release-Notes/17.1.34.md +++ b/blazor/Release-Notes/17.1.34.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2019 Volume 1 beta Release Notes - v17.1.34 -description: Essential Studio for Blazor 2019 Volume 1 beta release Release Notes +title: Essential Studio for Blazor 2019 Volume 1 beta Release Notes -v17.1.34 +description: Learn all about the Essential Studio for Blazor 2019 Volume 1 beta release Release Notes v17.1.34, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.1.38.md b/blazor/Release-Notes/17.1.38.md index 80c3a5e305..9c34ec7e17 100644 --- a/blazor/Release-Notes/17.1.38.md +++ b/blazor/Release-Notes/17.1.38.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.1.38 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.1.38, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.1.42.md b/blazor/Release-Notes/17.1.42.md index d989edc655..85e002da0f 100644 --- a/blazor/Release-Notes/17.1.42.md +++ b/blazor/Release-Notes/17.1.42.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.1.42 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.1.42, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.1.43.md b/blazor/Release-Notes/17.1.43.md index fa205dab52..f03dde72a1 100644 --- a/blazor/Release-Notes/17.1.43.md +++ b/blazor/Release-Notes/17.1.43.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.1.43 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.1.43, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.1.44.md b/blazor/Release-Notes/17.1.44.md index 2ef09b542c..01b29619f2 100644 --- a/blazor/Release-Notes/17.1.44.md +++ b/blazor/Release-Notes/17.1.44.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.1.44 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.1.44, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.1.47.md b/blazor/Release-Notes/17.1.47.md index ff9dba271a..cec80ac912 100644 --- a/blazor/Release-Notes/17.1.47.md +++ b/blazor/Release-Notes/17.1.47.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2019 volume 1 Service pack 1 Release Notes -description: Essential Studio for Blazor 2019 volume 1 Service pack 1 Release Notes +title: Essential Studio for Blazor 2019 volume 1 SP 1 Release Notes -v17.1.47 +description: Learn all about the Essential Studio for Blazor 2019 volume 1 Service pack 1 Release Notes v17.1.47, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.1.53.md b/blazor/Release-Notes/17.1.53.md index d52c24b6f6..fbc1a71a34 100644 --- a/blazor/Release-Notes/17.1.53.md +++ b/blazor/Release-Notes/17.1.53.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.1.53 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.1.53, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.28.md b/blazor/Release-Notes/17.2.28.md index d429654330..c2f1e8d36d 100644 --- a/blazor/Release-Notes/17.2.28.md +++ b/blazor/Release-Notes/17.2.28.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2019 volume 2 Beta Release Notes -description: Essential Studio for Blazor 2019 volume 2 Beta Release Notes +title: Essential Studio for Blazor 2019 volume 2 Beta Release Notes -v17.2.28 +description: Learn all about the Essential Studio for Blazor 2019 volume 2 Beta Release Notes v17.2.28, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.34.md b/blazor/Release-Notes/17.2.34.md index 5770a926dc..f0ea7ac176 100644 --- a/blazor/Release-Notes/17.2.34.md +++ b/blazor/Release-Notes/17.2.34.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2019 Volume 2 Main release Release Notes -description: Essential Studio for Blazor 2019 Volume 2 Main release Release Notes +title: Essential Studio for Blazor 2019 Volume 2 Main Release Notes -v17.2.34 +description: Learn all about the Essential Studio for Blazor 2019 Volume 2 Main release Release Notes v17.2.34, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.35.md b/blazor/Release-Notes/17.2.35.md index 35a20baf71..2d4d19920d 100644 --- a/blazor/Release-Notes/17.2.35.md +++ b/blazor/Release-Notes/17.2.35.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.2.35 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.2.35, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.36.md b/blazor/Release-Notes/17.2.36.md index b6b894bead..ccd3538405 100644 --- a/blazor/Release-Notes/17.2.36.md +++ b/blazor/Release-Notes/17.2.36.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.2.36 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.2.36, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.39.md b/blazor/Release-Notes/17.2.39.md index 56c7c153ef..baf500c2fd 100644 --- a/blazor/Release-Notes/17.2.39.md +++ b/blazor/Release-Notes/17.2.39.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.2.39 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.2.39, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.40.md b/blazor/Release-Notes/17.2.40.md index 892e3b0cb0..7fa8c7a0ee 100644 --- a/blazor/Release-Notes/17.2.40.md +++ b/blazor/Release-Notes/17.2.40.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.2.40 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.2.40, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.46.md b/blazor/Release-Notes/17.2.46.md index 7b9f5743ad..ddac55fd27 100644 --- a/blazor/Release-Notes/17.2.46.md +++ b/blazor/Release-Notes/17.2.46.md @@ -1,5 +1,5 @@ --- -title: Essential Studio for Blazor 2019 volume 2 SP1 Release Notes +title: Essential Studio for Blazor 2019 volume 2 SP1 Release Notes - v17.2.46 description: Essential Studio for Blazor 2019 volume 2 SP1 Release Notes platform: Blazor documentation: ug diff --git a/blazor/Release-Notes/17.2.47.md b/blazor/Release-Notes/17.2.47.md index bc4f758ae9..389a9335c6 100644 --- a/blazor/Release-Notes/17.2.47.md +++ b/blazor/Release-Notes/17.2.47.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.2.47 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.2.47, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.49.md b/blazor/Release-Notes/17.2.49.md index 7ccd01f83d..ce355c2e54 100644 --- a/blazor/Release-Notes/17.2.49.md +++ b/blazor/Release-Notes/17.2.49.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.2.49 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.2.49, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.50.md b/blazor/Release-Notes/17.2.50.md index d710d9e1b7..c35138675b 100644 --- a/blazor/Release-Notes/17.2.50.md +++ b/blazor/Release-Notes/17.2.50.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.2.50 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.2.50, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.2.52.md b/blazor/Release-Notes/17.2.52.md index 6acb64d0c0..05766a6ea9 100644 --- a/blazor/Release-Notes/17.2.52.md +++ b/blazor/Release-Notes/17.2.52.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.2.52 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.2.52, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.3.10.md b/blazor/Release-Notes/17.3.10.md index 167818f7cd..9ee727643c 100644 --- a/blazor/Release-Notes/17.3.10.md +++ b/blazor/Release-Notes/17.3.10.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2019 volume 3 Beta Release Notes - v17.3.10 -description: Essential Studio for Blazor 2019 volume 3 Beta Release Release Notes +title: Essential Studio for Blazor 2019 volume 3 Beta Release Notes -v17.3.10 +description: Learn all about the Essential Studio for Blazor 2019 volume 3 Beta Release Release Notes v17.3.10, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.3.14.md b/blazor/Release-Notes/17.3.14.md index d0bd668b22..3185ad1447 100644 --- a/blazor/Release-Notes/17.3.14.md +++ b/blazor/Release-Notes/17.3.14.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2019 volume 3 Main Release Release Notes -description: Essential Studio for Blazor 2019 volume 3 Main Release Release Notes +title: Essential Studio for Blazor 2019 volume 3 Main Release Notes -v17.3.14 +description: Learn all about the Essential Studio for Blazor 2019 volume 3 Main Release Release Notes v17.3.14, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.3.17.md b/blazor/Release-Notes/17.3.17.md index 158e7de900..ab8ac2d60f 100644 --- a/blazor/Release-Notes/17.3.17.md +++ b/blazor/Release-Notes/17.3.17.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.3.17 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.3.17, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.3.19.md b/blazor/Release-Notes/17.3.19.md index 88fcc4eb52..658a664363 100644 --- a/blazor/Release-Notes/17.3.19.md +++ b/blazor/Release-Notes/17.3.19.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.3.19 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.3.19, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.3.21.md b/blazor/Release-Notes/17.3.21.md index 2451dda612..07554ba660 100644 --- a/blazor/Release-Notes/17.3.21.md +++ b/blazor/Release-Notes/17.3.21.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.3.21 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.3.21, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.3.26.md b/blazor/Release-Notes/17.3.26.md index 18acff1b30..43d9f5372f 100644 --- a/blazor/Release-Notes/17.3.26.md +++ b/blazor/Release-Notes/17.3.26.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2019 volume 3 SP1 Release Notes -description: Essential Studio for Blazor 2019 volume 3 SP1 Release Notes +title: Essential Studio for Blazor 2019 volume 3 SP1 Release Notes - v17.3.26 +description: Learn all about the Essential Studio for Blazor 2019 volume 3 SP1 Release Notes v17.3.26, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.3.9.md b/blazor/Release-Notes/17.3.9.md index 65995763aa..9462ab7b70 100644 --- a/blazor/Release-Notes/17.3.9.md +++ b/blazor/Release-Notes/17.3.9.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor 2019 volume 3 Beta Release Notes - v17.3.9 -description: Essential Studio for Blazor 2019 volume 3 Beta Release Release Notes +description: Learn all about the Essential Studio for Blazor 2019 volume 3 Beta Release Release Notes v17.3.9, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.39.md b/blazor/Release-Notes/17.4.39.md index d4b69af140..d9e30155ca 100644 --- a/blazor/Release-Notes/17.4.39.md +++ b/blazor/Release-Notes/17.4.39.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2019 volume 4 Main Release Release Notes -description: Essential Studio for Blazor 2019 volume 4 Main Release Release Notes +title: Essential Studio for Blazor 2019 volume 4 Main Release Notes -v17.4.39 +description: Learn all about the Essential Studio for Blazor 2019 volume 4 Main Release Release Notes v17.4.39, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.40.md b/blazor/Release-Notes/17.4.40.md index 602a50548a..0c19a6348d 100644 --- a/blazor/Release-Notes/17.4.40.md +++ b/blazor/Release-Notes/17.4.40.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.40 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.40, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.41.md b/blazor/Release-Notes/17.4.41.md index 253f945ad6..7b298b5273 100644 --- a/blazor/Release-Notes/17.4.41.md +++ b/blazor/Release-Notes/17.4.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.41, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.42.md b/blazor/Release-Notes/17.4.42.md index f7434df54d..aacde0ed3f 100644 --- a/blazor/Release-Notes/17.4.42.md +++ b/blazor/Release-Notes/17.4.42.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.42 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.42, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.43.md b/blazor/Release-Notes/17.4.43.md index b0307ad62e..34be0b6ee8 100644 --- a/blazor/Release-Notes/17.4.43.md +++ b/blazor/Release-Notes/17.4.43.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.43 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.43, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.44.md b/blazor/Release-Notes/17.4.44.md index 8b752ce687..5e606dbcc9 100644 --- a/blazor/Release-Notes/17.4.44.md +++ b/blazor/Release-Notes/17.4.44.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.44 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.44, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.46.md b/blazor/Release-Notes/17.4.46.md index 125eaf5a53..d6dd4296ca 100644 --- a/blazor/Release-Notes/17.4.46.md +++ b/blazor/Release-Notes/17.4.46.md @@ -1,5 +1,5 @@ --- -title: Essential Studio for Blazor 2019 volume 4 SP1 Release Notes +title: Essential Studio for Blazor 2019 volume 4 SP1 Release Notes - v17.4.46 description: Essential Studio for Blazor 2019 volume 4 SP1 Release Notes platform: Blazor documentation: ug diff --git a/blazor/Release-Notes/17.4.47.md b/blazor/Release-Notes/17.4.47.md index adc1e79749..163953e98a 100644 --- a/blazor/Release-Notes/17.4.47.md +++ b/blazor/Release-Notes/17.4.47.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.47 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.47, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.49.md b/blazor/Release-Notes/17.4.49.md index d4d3e667bb..90d3a8fd94 100644 --- a/blazor/Release-Notes/17.4.49.md +++ b/blazor/Release-Notes/17.4.49.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.49 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.49, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.50.md b/blazor/Release-Notes/17.4.50.md index c49f514eec..2cc615cad5 100644 --- a/blazor/Release-Notes/17.4.50.md +++ b/blazor/Release-Notes/17.4.50.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.50 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.50, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.51.md b/blazor/Release-Notes/17.4.51.md index d7862e9178..f37366cdb6 100644 --- a/blazor/Release-Notes/17.4.51.md +++ b/blazor/Release-Notes/17.4.51.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.51 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.51, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.53.md b/blazor/Release-Notes/17.4.53.md index 970d854248..ad160c5dd2 100644 --- a/blazor/Release-Notes/17.4.53.md +++ b/blazor/Release-Notes/17.4.53.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.53 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.53, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.54.md b/blazor/Release-Notes/17.4.54.md index 950240e7e5..8b1cec3e93 100644 --- a/blazor/Release-Notes/17.4.54.md +++ b/blazor/Release-Notes/17.4.54.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.54 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.54, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/17.4.55.md b/blazor/Release-Notes/17.4.55.md index a2417f81bf..a0e769eeff 100644 --- a/blazor/Release-Notes/17.4.55.md +++ b/blazor/Release-Notes/17.4.55.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v17.4.55 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v17.4.55, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.36.md b/blazor/Release-Notes/18.1.36.md index 4cdf156264..c0ee884454 100644 --- a/blazor/Release-Notes/18.1.36.md +++ b/blazor/Release-Notes/18.1.36.md @@ -1,5 +1,5 @@ --- -title: Essential Studio for Blazor 2020 volume 1 Beta Release Notes +title: Essential Studio for Blazor 2020 volume 1 Beta Release Notes -v18.1.36 description: Essential Studio for Blazor 2020 volume 1 Beta Release Notes platform: Blazor documentation: ug diff --git a/blazor/Release-Notes/18.1.42.md b/blazor/Release-Notes/18.1.42.md index 15ef21397c..e92bd97856 100644 --- a/blazor/Release-Notes/18.1.42.md +++ b/blazor/Release-Notes/18.1.42.md @@ -1,5 +1,5 @@ --- -title: Essential Studio for Blazor 2020 volume 1 Main Release Notes +title: Essential Studio for Blazor 2020 volume 1 Main Release Notes -v18.1.42 description: Essential Studio for Blazor 2020 volume 1 Main Release Notes platform: Blazor documentation: ug diff --git a/blazor/Release-Notes/18.1.43.md b/blazor/Release-Notes/18.1.43.md index 854c2058e0..8e330f8852 100644 --- a/blazor/Release-Notes/18.1.43.md +++ b/blazor/Release-Notes/18.1.43.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.43 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.43, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.44.md b/blazor/Release-Notes/18.1.44.md index edd84ca6cc..a38b0ba529 100644 --- a/blazor/Release-Notes/18.1.44.md +++ b/blazor/Release-Notes/18.1.44.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.44 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.44, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.45.md b/blazor/Release-Notes/18.1.45.md index 6a91163337..ebface3672 100644 --- a/blazor/Release-Notes/18.1.45.md +++ b/blazor/Release-Notes/18.1.45.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.45 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.45, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.46.md b/blazor/Release-Notes/18.1.46.md index 9756402ea5..672b555ba8 100644 --- a/blazor/Release-Notes/18.1.46.md +++ b/blazor/Release-Notes/18.1.46.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.46 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.46, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.48.md b/blazor/Release-Notes/18.1.48.md index ce07be04d9..a30b2d23bf 100644 --- a/blazor/Release-Notes/18.1.48.md +++ b/blazor/Release-Notes/18.1.48.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.48 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.48, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.53.md b/blazor/Release-Notes/18.1.53.md index f432f6f474..884ef66e2a 100644 --- a/blazor/Release-Notes/18.1.53.md +++ b/blazor/Release-Notes/18.1.53.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.53 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.53, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.54.md b/blazor/Release-Notes/18.1.54.md index a2f33afc55..bf6dacdb7d 100644 --- a/blazor/Release-Notes/18.1.54.md +++ b/blazor/Release-Notes/18.1.54.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.54 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.54, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.55.md b/blazor/Release-Notes/18.1.55.md index b5e5b0f4d6..b2f4c05292 100644 --- a/blazor/Release-Notes/18.1.55.md +++ b/blazor/Release-Notes/18.1.55.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.55 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.55, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.56.md b/blazor/Release-Notes/18.1.56.md index 87296d728d..ff0a5ff04c 100644 --- a/blazor/Release-Notes/18.1.56.md +++ b/blazor/Release-Notes/18.1.56.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.56 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.56, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.57.md b/blazor/Release-Notes/18.1.57.md index 98bfa7a29d..0ccc868c0e 100644 --- a/blazor/Release-Notes/18.1.57.md +++ b/blazor/Release-Notes/18.1.57.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.57 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.57, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.58.md b/blazor/Release-Notes/18.1.58.md index eba580b8dc..8ba5e7fb2c 100644 --- a/blazor/Release-Notes/18.1.58.md +++ b/blazor/Release-Notes/18.1.58.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.58 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.58, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.1.59.md b/blazor/Release-Notes/18.1.59.md index 1316f5a158..b958e5de0c 100644 --- a/blazor/Release-Notes/18.1.59.md +++ b/blazor/Release-Notes/18.1.59.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.1.59 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.1.59, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.44.md b/blazor/Release-Notes/18.2.44.md index 123fede116..5a3b54fca3 100644 --- a/blazor/Release-Notes/18.2.44.md +++ b/blazor/Release-Notes/18.2.44.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2020 volume 2 Main Release Notes -description: Essential Studio for Blazor 2020 volume 2 Main Release Notes +title: Essential Studio for Blazor 2020 volume 2 Main Release Notes -v18.2.44 +description: Learn all about the Essential Studio for Blazor 2020 volume 2 Main Release Notes v18.2.44, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.45.md b/blazor/Release-Notes/18.2.45.md index 949109ccd0..935fd278d6 100644 --- a/blazor/Release-Notes/18.2.45.md +++ b/blazor/Release-Notes/18.2.45.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.45 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.45, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.46.md b/blazor/Release-Notes/18.2.46.md index 12adf6dc76..c3b81cdb48 100644 --- a/blazor/Release-Notes/18.2.46.md +++ b/blazor/Release-Notes/18.2.46.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.46 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.46, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.47.md b/blazor/Release-Notes/18.2.47.md index e20b30a3ed..5fbc40c0ae 100644 --- a/blazor/Release-Notes/18.2.47.md +++ b/blazor/Release-Notes/18.2.47.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.47 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.47, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.48.md b/blazor/Release-Notes/18.2.48.md index 0d598d422d..6494770262 100644 --- a/blazor/Release-Notes/18.2.48.md +++ b/blazor/Release-Notes/18.2.48.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.48 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.48, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.54.md b/blazor/Release-Notes/18.2.54.md index 30e5f7ba1a..af05f7295a 100644 --- a/blazor/Release-Notes/18.2.54.md +++ b/blazor/Release-Notes/18.2.54.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.54 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.54, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.55.md b/blazor/Release-Notes/18.2.55.md index 2f0baa69fb..a4e38ee10c 100644 --- a/blazor/Release-Notes/18.2.55.md +++ b/blazor/Release-Notes/18.2.55.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.55 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.55, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.56.md b/blazor/Release-Notes/18.2.56.md index 136f38cfec..36e644df33 100644 --- a/blazor/Release-Notes/18.2.56.md +++ b/blazor/Release-Notes/18.2.56.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.56 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.56, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.57.md b/blazor/Release-Notes/18.2.57.md index e08cc2e958..03b41aca37 100644 --- a/blazor/Release-Notes/18.2.57.md +++ b/blazor/Release-Notes/18.2.57.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.57 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.57, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.58.md b/blazor/Release-Notes/18.2.58.md index 85abd3c384..8565164273 100644 --- a/blazor/Release-Notes/18.2.58.md +++ b/blazor/Release-Notes/18.2.58.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.58 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.58, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.2.59.md b/blazor/Release-Notes/18.2.59.md index 0faa9b24ef..728a197afd 100644 --- a/blazor/Release-Notes/18.2.59.md +++ b/blazor/Release-Notes/18.2.59.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.2.59 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.2.59, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.35.md b/blazor/Release-Notes/18.3.35.md index 2d44af1626..6a1295b885 100644 --- a/blazor/Release-Notes/18.3.35.md +++ b/blazor/Release-Notes/18.3.35.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2020 volume 3 Main Release Notes -description: Essential Studio for Blazor 2020 volume 3 Main Release Notes +title: Essential Studio for Blazor 2020 volume 3 Main Release Notes -v18.3.35 +description: Learn all about the Essential Studio for Blazor 2020 volume 3 Main Release Notes v18.3.35, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.38.md b/blazor/Release-Notes/18.3.38.md index b0a5210a6c..45a96a8dc9 100644 --- a/blazor/Release-Notes/18.3.38.md +++ b/blazor/Release-Notes/18.3.38.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.38 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.38, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.40.md b/blazor/Release-Notes/18.3.40.md index 200e7e9c7c..fa98a6a865 100644 --- a/blazor/Release-Notes/18.3.40.md +++ b/blazor/Release-Notes/18.3.40.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.40 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.40, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.41.md b/blazor/Release-Notes/18.3.41.md index ddde2347fe..c3c67325af 100644 --- a/blazor/Release-Notes/18.3.41.md +++ b/blazor/Release-Notes/18.3.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.41, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.42.md b/blazor/Release-Notes/18.3.42.md index 13fa08898a..e0931d8357 100644 --- a/blazor/Release-Notes/18.3.42.md +++ b/blazor/Release-Notes/18.3.42.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.42 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.42, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.44.md b/blazor/Release-Notes/18.3.44.md index ea5f3c1671..35f60f975a 100644 --- a/blazor/Release-Notes/18.3.44.md +++ b/blazor/Release-Notes/18.3.44.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.44 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.44, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.47.md b/blazor/Release-Notes/18.3.47.md index 3cc20fbb64..ebe5ec7863 100644 --- a/blazor/Release-Notes/18.3.47.md +++ b/blazor/Release-Notes/18.3.47.md @@ -1,5 +1,5 @@ --- -title: Essential Studio for Blazor 2020 volume 3 SP1 Release Notes +title: Essential Studio for Blazor 2020 volume 3 SP1 Release Notes - v18.3.47 description: Essential Studio for Blazor 2020 volume 3 SP1 Release Notes platform: Blazor documentation: ug diff --git a/blazor/Release-Notes/18.3.48.md b/blazor/Release-Notes/18.3.48.md index 38d16734eb..77dc8b491d 100644 --- a/blazor/Release-Notes/18.3.48.md +++ b/blazor/Release-Notes/18.3.48.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.48 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.48, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.50.md b/blazor/Release-Notes/18.3.50.md index 7c40e6a14e..e22cb3d7c7 100644 --- a/blazor/Release-Notes/18.3.50.md +++ b/blazor/Release-Notes/18.3.50.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.50 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.50, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.51.md b/blazor/Release-Notes/18.3.51.md index fa3b555d01..2e284e287f 100644 --- a/blazor/Release-Notes/18.3.51.md +++ b/blazor/Release-Notes/18.3.51.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor Weekly Nuget Release Release Notes -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.51 +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.51, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.52.md b/blazor/Release-Notes/18.3.52.md index 7d6dcde97b..cf902718f9 100644 --- a/blazor/Release-Notes/18.3.52.md +++ b/blazor/Release-Notes/18.3.52.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.52 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.52, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.3.53.md b/blazor/Release-Notes/18.3.53.md index 377161bd90..d5d2bfb7f7 100644 --- a/blazor/Release-Notes/18.3.53.md +++ b/blazor/Release-Notes/18.3.53.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.3.53 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.3.53, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.30.md b/blazor/Release-Notes/18.4.30.md index aaf8f01ef8..d414754594 100644 --- a/blazor/Release-Notes/18.4.30.md +++ b/blazor/Release-Notes/18.4.30.md @@ -1,5 +1,5 @@ --- -title: Essential Studio for Blazor 2020 volume 4 Main Release Release Notes +title: Essential Studio for Blazor 2020 volume 4 Main Release Notes -v18.4.30 description: Essential Studio for Blazor 2020 volume 4 Main Release Release Notes platform: Blazor documentation: ug diff --git a/blazor/Release-Notes/18.4.31.md b/blazor/Release-Notes/18.4.31.md index dc1447b246..467bb601f9 100644 --- a/blazor/Release-Notes/18.4.31.md +++ b/blazor/Release-Notes/18.4.31.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.31 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.31, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.32.md b/blazor/Release-Notes/18.4.32.md index 6e680824cb..21db0c216c 100644 --- a/blazor/Release-Notes/18.4.32.md +++ b/blazor/Release-Notes/18.4.32.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.32 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.32, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.33.md b/blazor/Release-Notes/18.4.33.md index 57c5ea38ec..36faaf19ff 100644 --- a/blazor/Release-Notes/18.4.33.md +++ b/blazor/Release-Notes/18.4.33.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.33 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.33, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.34.md b/blazor/Release-Notes/18.4.34.md index c38080c42d..eeda8f1d68 100644 --- a/blazor/Release-Notes/18.4.34.md +++ b/blazor/Release-Notes/18.4.34.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.34 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.34, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.35.md b/blazor/Release-Notes/18.4.35.md index f282cca131..ebcdcfcc1f 100644 --- a/blazor/Release-Notes/18.4.35.md +++ b/blazor/Release-Notes/18.4.35.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.35 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.35, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.39.md b/blazor/Release-Notes/18.4.39.md index 04811199ea..d9b903d859 100644 --- a/blazor/Release-Notes/18.4.39.md +++ b/blazor/Release-Notes/18.4.39.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2020 volume 4 SP1 Release Notes -description: Essential Studio for Blazor 2020 volume 4 SP1 Release Notes +title: Essential Studio for Blazor 2020 volume 4 SP1 Release Notes - v18.4.39 +description: Learn all about the Essential Studio for Blazor 2020 volume 4 SP1 Release Notes v18.4.39, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.41.md b/blazor/Release-Notes/18.4.41.md index 6c3c2b2ea8..38b19ea446 100644 --- a/blazor/Release-Notes/18.4.41.md +++ b/blazor/Release-Notes/18.4.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.41, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.42.md b/blazor/Release-Notes/18.4.42.md index c0a4fb57df..55ac996c85 100644 --- a/blazor/Release-Notes/18.4.42.md +++ b/blazor/Release-Notes/18.4.42.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.42 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.42, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.43.md b/blazor/Release-Notes/18.4.43.md index 1b638e0c9a..e1cd97f507 100644 --- a/blazor/Release-Notes/18.4.43.md +++ b/blazor/Release-Notes/18.4.43.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.43 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.43, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.44.md b/blazor/Release-Notes/18.4.44.md index 1afbf26bc8..c6723a0757 100644 --- a/blazor/Release-Notes/18.4.44.md +++ b/blazor/Release-Notes/18.4.44.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.44 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.44, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.46.md b/blazor/Release-Notes/18.4.46.md index 7366b35e31..10850b3caf 100644 --- a/blazor/Release-Notes/18.4.46.md +++ b/blazor/Release-Notes/18.4.46.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.46 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.46, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.47.md b/blazor/Release-Notes/18.4.47.md index 1d79bcc43c..69adc7fa6c 100644 --- a/blazor/Release-Notes/18.4.47.md +++ b/blazor/Release-Notes/18.4.47.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.47 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.47, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.48.md b/blazor/Release-Notes/18.4.48.md index d85c3253e8..340f791725 100644 --- a/blazor/Release-Notes/18.4.48.md +++ b/blazor/Release-Notes/18.4.48.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.48 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.48, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/18.4.49.md b/blazor/Release-Notes/18.4.49.md index 9399ba5e42..9a87e88da1 100644 --- a/blazor/Release-Notes/18.4.49.md +++ b/blazor/Release-Notes/18.4.49.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v18.4.49 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v18.4.49, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.54.md b/blazor/Release-Notes/19.1.54.md index 922b158297..0d877e7032 100644 --- a/blazor/Release-Notes/19.1.54.md +++ b/blazor/Release-Notes/19.1.54.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2021 volume 1 Main Release Notes -description: Essential Studio for Blazor 2021 volume 1 Main Release Notes +title: Essential Studio for Blazor 2021 volume 1 Main Release Notes -v19.1.54 +description: Learn all about the Essential Studio for Blazor 2021 volume 1 Main Release Notes v19.1.54, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.55.md b/blazor/Release-Notes/19.1.55.md index 6d4afa02b0..f664f00954 100644 --- a/blazor/Release-Notes/19.1.55.md +++ b/blazor/Release-Notes/19.1.55.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.55 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.55, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.56.md b/blazor/Release-Notes/19.1.56.md index 67b0a4eba1..546af8415c 100644 --- a/blazor/Release-Notes/19.1.56.md +++ b/blazor/Release-Notes/19.1.56.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.56 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.56, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.57.md b/blazor/Release-Notes/19.1.57.md index 448e7892bb..d0a62febf3 100644 --- a/blazor/Release-Notes/19.1.57.md +++ b/blazor/Release-Notes/19.1.57.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.57 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.57, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.58.md b/blazor/Release-Notes/19.1.58.md index ce8425f706..e747b61033 100644 --- a/blazor/Release-Notes/19.1.58.md +++ b/blazor/Release-Notes/19.1.58.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.58 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.58, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.59.md b/blazor/Release-Notes/19.1.59.md index 0b6d7fca19..97c9b1f1f8 100644 --- a/blazor/Release-Notes/19.1.59.md +++ b/blazor/Release-Notes/19.1.59.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.59 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.59, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.63.md b/blazor/Release-Notes/19.1.63.md index 97045fb81d..7feb91f8ea 100644 --- a/blazor/Release-Notes/19.1.63.md +++ b/blazor/Release-Notes/19.1.63.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2021 volume 1 SP1 Release Notes -description: Essential Studio for Blazor 2021 volume 1 SP1 Release Notes +title: Essential Studio for Blazor 2021 volume 1 SP1 Release Notes - v19.1.63 +description: Learn all about the Essential Studio for Blazor 2021 volume 1 SP1 Release Notes v19.1.63, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.64.md b/blazor/Release-Notes/19.1.64.md index 2bdbeb5598..e793c5043c 100644 --- a/blazor/Release-Notes/19.1.64.md +++ b/blazor/Release-Notes/19.1.64.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.64 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.64, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.65.md b/blazor/Release-Notes/19.1.65.md index 60e0dc3899..ef37554836 100644 --- a/blazor/Release-Notes/19.1.65.md +++ b/blazor/Release-Notes/19.1.65.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.65 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.65, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.66.md b/blazor/Release-Notes/19.1.66.md index fd096431d2..270864b160 100644 --- a/blazor/Release-Notes/19.1.66.md +++ b/blazor/Release-Notes/19.1.66.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.66 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.66, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.67.md b/blazor/Release-Notes/19.1.67.md index 618d933a0b..36b957dd5e 100644 --- a/blazor/Release-Notes/19.1.67.md +++ b/blazor/Release-Notes/19.1.67.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.67 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.67, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.1.69.md b/blazor/Release-Notes/19.1.69.md index 6dfdd3ef13..e45f1fb838 100644 --- a/blazor/Release-Notes/19.1.69.md +++ b/blazor/Release-Notes/19.1.69.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.1.69 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.1.69, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.44.md b/blazor/Release-Notes/19.2.44.md index fc610d7da1..a4da3b7ed7 100644 --- a/blazor/Release-Notes/19.2.44.md +++ b/blazor/Release-Notes/19.2.44.md @@ -1,5 +1,5 @@ --- -title: Essential Studio for Blazor 2021 volume 2 Main Release Notes +title: Essential Studio for Blazor 2021 volume 2 Main Release Notes -v19.2.44 description: Essential Studio for Blazor 2021 volume 2 Main Release Notes platform: Blazor documentation: ug diff --git a/blazor/Release-Notes/19.2.46.md b/blazor/Release-Notes/19.2.46.md index 0ead6f80d3..76324c8117 100644 --- a/blazor/Release-Notes/19.2.46.md +++ b/blazor/Release-Notes/19.2.46.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.46 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.46, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.47.md b/blazor/Release-Notes/19.2.47.md index f9805fe4d9..86452c5c39 100644 --- a/blazor/Release-Notes/19.2.47.md +++ b/blazor/Release-Notes/19.2.47.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.47 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.47, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.48.md b/blazor/Release-Notes/19.2.48.md index f3385bc1bc..6ab809f46f 100644 --- a/blazor/Release-Notes/19.2.48.md +++ b/blazor/Release-Notes/19.2.48.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.48 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.48, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.49.md b/blazor/Release-Notes/19.2.49.md index 6a98525657..e704cef1f0 100644 --- a/blazor/Release-Notes/19.2.49.md +++ b/blazor/Release-Notes/19.2.49.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.49 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.49, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.51.md b/blazor/Release-Notes/19.2.51.md index ba8bad120d..978683076b 100644 --- a/blazor/Release-Notes/19.2.51.md +++ b/blazor/Release-Notes/19.2.51.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.51 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.51, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.55.md b/blazor/Release-Notes/19.2.55.md index e352c6c57a..ca1d296546 100644 --- a/blazor/Release-Notes/19.2.55.md +++ b/blazor/Release-Notes/19.2.55.md @@ -1,6 +1,6 @@ --- -title: Essential Studio for Blazor 2021 volume 2 SP Release Notes -description: Essential Studio for Blazor 2021 volume 2 SP Release Notes +title: Essential Studio for Blazor 2021 volume 2 SP Release Notes - v19.2.55 +description: Learn all about the Essential Studio for Blazor 2021 volume 2 SP Release Notes v19.2.55, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.56.md b/blazor/Release-Notes/19.2.56.md index cd269f6fb1..7ff3b203b5 100644 --- a/blazor/Release-Notes/19.2.56.md +++ b/blazor/Release-Notes/19.2.56.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.56 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.56, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.57.md b/blazor/Release-Notes/19.2.57.md index 88aaac0fdd..890814acfe 100644 --- a/blazor/Release-Notes/19.2.57.md +++ b/blazor/Release-Notes/19.2.57.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.57 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.57, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.59.md b/blazor/Release-Notes/19.2.59.md index 359d8ddd6f..2f80272d55 100644 --- a/blazor/Release-Notes/19.2.59.md +++ b/blazor/Release-Notes/19.2.59.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.59 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.59, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.60.md b/blazor/Release-Notes/19.2.60.md index f61896eacb..32225db530 100644 --- a/blazor/Release-Notes/19.2.60.md +++ b/blazor/Release-Notes/19.2.60.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.60 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.60, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/19.2.62.md b/blazor/Release-Notes/19.2.62.md index b2de84eb8c..51a78fbb6d 100644 --- a/blazor/Release-Notes/19.2.62.md +++ b/blazor/Release-Notes/19.2.62.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v19.2.62 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v19.2.62, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.1.55.md b/blazor/Release-Notes/20.1.55.md index 9cb3c47f7c..097aea762e 100644 --- a/blazor/Release-Notes/20.1.55.md +++ b/blazor/Release-Notes/20.1.55.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor 2022 Volume 1 SP Release Release Notes -description: Essential Studio for Blazor 2022 Volume 1 SP Release Release Notes +description: Learn all about the Essential Studio for Blazor 2022 Volume 1 SP Release Release Notes v20.1.55, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.2.36.md b/blazor/Release-Notes/20.2.36.md index 8848912ac0..ae89ba9437 100644 --- a/blazor/Release-Notes/20.2.36.md +++ b/blazor/Release-Notes/20.2.36.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor 2022 Volume 2 Main Release Release Notes -description: Essential Studio for Blazor 2022 Volume 2 Main Release Release Notes +description: Learn all about the Essential Studio for Blazor 2022 Volume 2 Main Release Release Notes v20.2.36, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.2.43.md b/blazor/Release-Notes/20.2.43.md index 78e981e049..e434acefd5 100644 --- a/blazor/Release-Notes/20.2.43.md +++ b/blazor/Release-Notes/20.2.43.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor 2022 Volume 2 SP Release Release Notes -description: Essential Studio for Blazor 2022 Volume 2 SP Release Release Notes +description: Learn all about the Essential Studio for Blazor 2022 Volume 2 SP Release Release Notes v20.2.43, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.3.50.md b/blazor/Release-Notes/20.3.50.md index b81256dd7e..8efb2f1d88 100644 --- a/blazor/Release-Notes/20.3.50.md +++ b/blazor/Release-Notes/20.3.50.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.3.50 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.3.50, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.3.52.md b/blazor/Release-Notes/20.3.52.md index 16086ce18d..667ed2a8c9 100644 --- a/blazor/Release-Notes/20.3.52.md +++ b/blazor/Release-Notes/20.3.52.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.3.52 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.3.52, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.3.57.md b/blazor/Release-Notes/20.3.57.md index 4148a834f8..6ad895c55c 100644 --- a/blazor/Release-Notes/20.3.57.md +++ b/blazor/Release-Notes/20.3.57.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.3.57 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.3.57, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.3.58.md b/blazor/Release-Notes/20.3.58.md index 4eef4ec7a3..f73b91a1ec 100644 --- a/blazor/Release-Notes/20.3.58.md +++ b/blazor/Release-Notes/20.3.58.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.3.58 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.3.58, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.3.59.md b/blazor/Release-Notes/20.3.59.md index 6f6aa08479..6c8c197d72 100644 --- a/blazor/Release-Notes/20.3.59.md +++ b/blazor/Release-Notes/20.3.59.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.3.59 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.3.59, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.3.60.md b/blazor/Release-Notes/20.3.60.md index 2487348a59..97d4f56fd1 100644 --- a/blazor/Release-Notes/20.3.60.md +++ b/blazor/Release-Notes/20.3.60.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.3.60 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.3.60, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.3.61.md b/blazor/Release-Notes/20.3.61.md index d3722bd83f..eb7e077459 100644 --- a/blazor/Release-Notes/20.3.61.md +++ b/blazor/Release-Notes/20.3.61.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.3.61 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.3.61, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.40.md b/blazor/Release-Notes/20.4.40.md index e51a27bb3f..726b953374 100644 --- a/blazor/Release-Notes/20.4.40.md +++ b/blazor/Release-Notes/20.4.40.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.40 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.40, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.41.md b/blazor/Release-Notes/20.4.41.md index 26b1835f91..13395979bc 100644 --- a/blazor/Release-Notes/20.4.41.md +++ b/blazor/Release-Notes/20.4.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.41, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.42.md b/blazor/Release-Notes/20.4.42.md index 3b839268c2..82b96b569e 100644 --- a/blazor/Release-Notes/20.4.42.md +++ b/blazor/Release-Notes/20.4.42.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.42 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.42, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.43.md b/blazor/Release-Notes/20.4.43.md index f6c6a4fc9c..2c5577358a 100644 --- a/blazor/Release-Notes/20.4.43.md +++ b/blazor/Release-Notes/20.4.43.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.43 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.43, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.44.md b/blazor/Release-Notes/20.4.44.md index 8876a0e7e9..a805de281f 100644 --- a/blazor/Release-Notes/20.4.44.md +++ b/blazor/Release-Notes/20.4.44.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.44 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.44, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.49.md b/blazor/Release-Notes/20.4.49.md index 5b1710179f..1da7abf167 100644 --- a/blazor/Release-Notes/20.4.49.md +++ b/blazor/Release-Notes/20.4.49.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.49 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.49, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.50.md b/blazor/Release-Notes/20.4.50.md index 1c4f6ca679..9a9aa79404 100644 --- a/blazor/Release-Notes/20.4.50.md +++ b/blazor/Release-Notes/20.4.50.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.50 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.50, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.51.md b/blazor/Release-Notes/20.4.51.md index ad18e144c3..a8375d1972 100644 --- a/blazor/Release-Notes/20.4.51.md +++ b/blazor/Release-Notes/20.4.51.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.51 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.51, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.52.md b/blazor/Release-Notes/20.4.52.md index 4dbddae6d1..d9ee694a10 100644 --- a/blazor/Release-Notes/20.4.52.md +++ b/blazor/Release-Notes/20.4.52.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.52 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.52, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.53.md b/blazor/Release-Notes/20.4.53.md index 04a639b305..b74480f0a1 100644 --- a/blazor/Release-Notes/20.4.53.md +++ b/blazor/Release-Notes/20.4.53.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.53 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.53, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/20.4.54.md b/blazor/Release-Notes/20.4.54.md index 35be67daf3..8f44518d07 100644 --- a/blazor/Release-Notes/20.4.54.md +++ b/blazor/Release-Notes/20.4.54.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v20.4.54 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v20.4.54, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.1.37.md b/blazor/Release-Notes/21.1.37.md index 861c547a43..0790a62543 100644 --- a/blazor/Release-Notes/21.1.37.md +++ b/blazor/Release-Notes/21.1.37.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.1.37 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.1.37, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.1.38.md b/blazor/Release-Notes/21.1.38.md index 3ea5813524..4325804b8e 100644 --- a/blazor/Release-Notes/21.1.38.md +++ b/blazor/Release-Notes/21.1.38.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.1.38 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.1.38, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.1.39.md b/blazor/Release-Notes/21.1.39.md index 5188176b84..dd8bdc5808 100644 --- a/blazor/Release-Notes/21.1.39.md +++ b/blazor/Release-Notes/21.1.39.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.1.39 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.1.39, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.1.41.md b/blazor/Release-Notes/21.1.41.md index 7c8cb2f851..7c77438073 100644 --- a/blazor/Release-Notes/21.1.41.md +++ b/blazor/Release-Notes/21.1.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.1.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.1.41, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.2.10.md b/blazor/Release-Notes/21.2.10.md index cfa7305431..a106119645 100644 --- a/blazor/Release-Notes/21.2.10.md +++ b/blazor/Release-Notes/21.2.10.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.2.10 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.2.10, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.2.4.md b/blazor/Release-Notes/21.2.4.md index 3c94ef438c..71eab37740 100644 --- a/blazor/Release-Notes/21.2.4.md +++ b/blazor/Release-Notes/21.2.4.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.2.4 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.2.4, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.2.5.md b/blazor/Release-Notes/21.2.5.md index e0d96e6fdd..e29fa70661 100644 --- a/blazor/Release-Notes/21.2.5.md +++ b/blazor/Release-Notes/21.2.5.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.2.5 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.2.5, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.2.6.md b/blazor/Release-Notes/21.2.6.md index 6c21ac8857..1322241701 100644 --- a/blazor/Release-Notes/21.2.6.md +++ b/blazor/Release-Notes/21.2.6.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.2.6 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.2.6, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.2.8.md b/blazor/Release-Notes/21.2.8.md index 3a1add90cb..86c2834516 100644 --- a/blazor/Release-Notes/21.2.8.md +++ b/blazor/Release-Notes/21.2.8.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.2.8 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.2.8, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/21.2.9.md b/blazor/Release-Notes/21.2.9.md index a7f94b1995..cef64ee562 100644 --- a/blazor/Release-Notes/21.2.9.md +++ b/blazor/Release-Notes/21.2.9.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v21.2.9 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v21.2.9, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/22.1.39.md b/blazor/Release-Notes/22.1.39.md index 373bf4ed46..9acfcf62c5 100644 --- a/blazor/Release-Notes/22.1.39.md +++ b/blazor/Release-Notes/22.1.39.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v22.1.39 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v22.1.39, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/22.2.10.md b/blazor/Release-Notes/22.2.10.md index 9403cfc201..26cd55f654 100644 --- a/blazor/Release-Notes/22.2.10.md +++ b/blazor/Release-Notes/22.2.10.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v22.2.10 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v22.2.10, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/22.2.11.md b/blazor/Release-Notes/22.2.11.md index 543a798524..06860d1034 100644 --- a/blazor/Release-Notes/22.2.11.md +++ b/blazor/Release-Notes/22.2.11.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v22.2.11 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v22.2.11, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/22.2.12.md b/blazor/Release-Notes/22.2.12.md index be6bc81f99..eba7a5f1c3 100644 --- a/blazor/Release-Notes/22.2.12.md +++ b/blazor/Release-Notes/22.2.12.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v22.2.12 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v22.2.12, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/22.2.7.md b/blazor/Release-Notes/22.2.7.md index a4bd8eec81..0c5d938f4a 100644 --- a/blazor/Release-Notes/22.2.7.md +++ b/blazor/Release-Notes/22.2.7.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v22.2.7 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v22.2.7, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/22.2.8.md b/blazor/Release-Notes/22.2.8.md index 16bcd870d7..7199ddb002 100644 --- a/blazor/Release-Notes/22.2.8.md +++ b/blazor/Release-Notes/22.2.8.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v22.2.8 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v22.2.8, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/22.2.9.md b/blazor/Release-Notes/22.2.9.md index 825af7ce1a..760f365398 100644 --- a/blazor/Release-Notes/22.2.9.md +++ b/blazor/Release-Notes/22.2.9.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v22.2.9 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v22.2.9, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.1.38.md b/blazor/Release-Notes/23.1.38.md index 420da734e9..16abdf4e3f 100644 --- a/blazor/Release-Notes/23.1.38.md +++ b/blazor/Release-Notes/23.1.38.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.1.38 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.1.38, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.1.39.md b/blazor/Release-Notes/23.1.39.md index 94e0f7091e..7b3e1bcfeb 100644 --- a/blazor/Release-Notes/23.1.39.md +++ b/blazor/Release-Notes/23.1.39.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.1.39 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.1.39, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.1.40.md b/blazor/Release-Notes/23.1.40.md index 949c23b2df..78af15c54a 100644 --- a/blazor/Release-Notes/23.1.40.md +++ b/blazor/Release-Notes/23.1.40.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.1.40 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.1.40, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.1.41.md b/blazor/Release-Notes/23.1.41.md index e5c805b82d..3f703f0fc9 100644 --- a/blazor/Release-Notes/23.1.41.md +++ b/blazor/Release-Notes/23.1.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.1.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.1.41, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.1.42.md b/blazor/Release-Notes/23.1.42.md index 49cd4c57fd..76f02303ac 100644 --- a/blazor/Release-Notes/23.1.42.md +++ b/blazor/Release-Notes/23.1.42.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.1.42 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.1.42, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.1.43.md b/blazor/Release-Notes/23.1.43.md index 9cdeb99b04..84ffa81a4f 100644 --- a/blazor/Release-Notes/23.1.43.md +++ b/blazor/Release-Notes/23.1.43.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.1.43 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.1.43, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.1.44.md b/blazor/Release-Notes/23.1.44.md index f697665c0c..15c7569ba8 100644 --- a/blazor/Release-Notes/23.1.44.md +++ b/blazor/Release-Notes/23.1.44.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.1.44 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.1.44, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.2.5.md b/blazor/Release-Notes/23.2.5.md index c4ff595e78..94581e006f 100644 --- a/blazor/Release-Notes/23.2.5.md +++ b/blazor/Release-Notes/23.2.5.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.2.5 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.2.5, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.2.6.md b/blazor/Release-Notes/23.2.6.md index e4b8da675d..6376b41c5d 100644 --- a/blazor/Release-Notes/23.2.6.md +++ b/blazor/Release-Notes/23.2.6.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.2.6 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.2.6, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/23.2.7.md b/blazor/Release-Notes/23.2.7.md index 5e3ced10ca..04c1874f18 100644 --- a/blazor/Release-Notes/23.2.7.md +++ b/blazor/Release-Notes/23.2.7.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v23.2.7 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v23.2.7, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.1.43.md b/blazor/Release-Notes/24.1.43.md index 0925ba24e9..682a8c9e0b 100644 --- a/blazor/Release-Notes/24.1.43.md +++ b/blazor/Release-Notes/24.1.43.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.1.43 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.1.43, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.1.44.md b/blazor/Release-Notes/24.1.44.md index 17cfa13293..a0b36e1da0 100644 --- a/blazor/Release-Notes/24.1.44.md +++ b/blazor/Release-Notes/24.1.44.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.1.44 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.1.44, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.1.45.md b/blazor/Release-Notes/24.1.45.md index 31a58e6f8d..4ced1b5405 100644 --- a/blazor/Release-Notes/24.1.45.md +++ b/blazor/Release-Notes/24.1.45.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.1.45 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.1.45, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.1.46.md b/blazor/Release-Notes/24.1.46.md index 6d6e5b305b..275a369907 100644 --- a/blazor/Release-Notes/24.1.46.md +++ b/blazor/Release-Notes/24.1.46.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.1.46 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.1.46, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.1.47.md b/blazor/Release-Notes/24.1.47.md index 7326266f25..b98df41fce 100644 --- a/blazor/Release-Notes/24.1.47.md +++ b/blazor/Release-Notes/24.1.47.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.1.47 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.1.47, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.2.4.md b/blazor/Release-Notes/24.2.4.md index b8eb966800..17784b4d10 100644 --- a/blazor/Release-Notes/24.2.4.md +++ b/blazor/Release-Notes/24.2.4.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.2.4 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.2.4, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.2.5.md b/blazor/Release-Notes/24.2.5.md index 969bb0ba01..c28939d7f4 100644 --- a/blazor/Release-Notes/24.2.5.md +++ b/blazor/Release-Notes/24.2.5.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.2.5 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.2.5, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.2.6.md b/blazor/Release-Notes/24.2.6.md index 8829bd9203..0390c56fd6 100644 --- a/blazor/Release-Notes/24.2.6.md +++ b/blazor/Release-Notes/24.2.6.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.2.6 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.2.6, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.2.7.md b/blazor/Release-Notes/24.2.7.md index 1b222ff700..f8073c7c59 100644 --- a/blazor/Release-Notes/24.2.7.md +++ b/blazor/Release-Notes/24.2.7.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.2.7 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.2.7, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.2.8.md b/blazor/Release-Notes/24.2.8.md index e282c6f7a6..80a17b43e4 100644 --- a/blazor/Release-Notes/24.2.8.md +++ b/blazor/Release-Notes/24.2.8.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.2.8 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.2.8, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/24.2.9.md b/blazor/Release-Notes/24.2.9.md index d86d42ec10..04f9447411 100644 --- a/blazor/Release-Notes/24.2.9.md +++ b/blazor/Release-Notes/24.2.9.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v24.2.9 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v24.2.9, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.1.37.md b/blazor/Release-Notes/25.1.37.md index fbbb15b327..9b6a6172a7 100644 --- a/blazor/Release-Notes/25.1.37.md +++ b/blazor/Release-Notes/25.1.37.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.1.37 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.1.37, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.1.38.md b/blazor/Release-Notes/25.1.38.md index 7547a111a4..a5ce4bd3fd 100644 --- a/blazor/Release-Notes/25.1.38.md +++ b/blazor/Release-Notes/25.1.38.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.1.38 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.1.38, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.1.39.md b/blazor/Release-Notes/25.1.39.md index 0aeff47495..b8a4b4aadb 100644 --- a/blazor/Release-Notes/25.1.39.md +++ b/blazor/Release-Notes/25.1.39.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.1.39 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.1.39, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.1.40.md b/blazor/Release-Notes/25.1.40.md index 0d202e592e..6b105edf6c 100644 --- a/blazor/Release-Notes/25.1.40.md +++ b/blazor/Release-Notes/25.1.40.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.1.40 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.1.40, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.1.41.md b/blazor/Release-Notes/25.1.41.md index 2faf45cfac..8bee4a2194 100644 --- a/blazor/Release-Notes/25.1.41.md +++ b/blazor/Release-Notes/25.1.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.1.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.1.41, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.1.42.md b/blazor/Release-Notes/25.1.42.md index b72ffccef1..93c1cd547f 100644 --- a/blazor/Release-Notes/25.1.42.md +++ b/blazor/Release-Notes/25.1.42.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.1.42 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.1.42, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.2.4.md b/blazor/Release-Notes/25.2.4.md index 7cf54470f5..ff062907fe 100644 --- a/blazor/Release-Notes/25.2.4.md +++ b/blazor/Release-Notes/25.2.4.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.2.4 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.2.4, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.2.5.md b/blazor/Release-Notes/25.2.5.md index 3deccd0df8..1432df08c9 100644 --- a/blazor/Release-Notes/25.2.5.md +++ b/blazor/Release-Notes/25.2.5.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.2.5 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.2.5, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.2.6.md b/blazor/Release-Notes/25.2.6.md index 107bb612a9..a70a1987f7 100644 --- a/blazor/Release-Notes/25.2.6.md +++ b/blazor/Release-Notes/25.2.6.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.2.6 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.2.6, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/25.2.7.md b/blazor/Release-Notes/25.2.7.md index 414afb13da..bff6aa2288 100644 --- a/blazor/Release-Notes/25.2.7.md +++ b/blazor/Release-Notes/25.2.7.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v25.2.7 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v25.2.7, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.1.38.md b/blazor/Release-Notes/26.1.38.md index 2f93c96452..571f7cdf5e 100644 --- a/blazor/Release-Notes/26.1.38.md +++ b/blazor/Release-Notes/26.1.38.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.1.38 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.1.38, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.1.39.md b/blazor/Release-Notes/26.1.39.md index 3e7d1e2efa..5e9b43db38 100644 --- a/blazor/Release-Notes/26.1.39.md +++ b/blazor/Release-Notes/26.1.39.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.1.39 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.1.39, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.1.40.md b/blazor/Release-Notes/26.1.40.md index 65b0f0f683..056ee38a5d 100644 --- a/blazor/Release-Notes/26.1.40.md +++ b/blazor/Release-Notes/26.1.40.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.1.40 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.1.40, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.1.41.md b/blazor/Release-Notes/26.1.41.md index c56cc6a944..e3a519ba9d 100644 --- a/blazor/Release-Notes/26.1.41.md +++ b/blazor/Release-Notes/26.1.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.1.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.1.41, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.1.42.md b/blazor/Release-Notes/26.1.42.md index 39dc04766f..eb04cece67 100644 --- a/blazor/Release-Notes/26.1.42.md +++ b/blazor/Release-Notes/26.1.42.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.1.42 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.1.42, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.2.10.md b/blazor/Release-Notes/26.2.10.md index ef689ce64c..a42500c011 100644 --- a/blazor/Release-Notes/26.2.10.md +++ b/blazor/Release-Notes/26.2.10.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.2.10 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.2.10, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.2.11.md b/blazor/Release-Notes/26.2.11.md index 081b29b5e5..94a91d51c8 100644 --- a/blazor/Release-Notes/26.2.11.md +++ b/blazor/Release-Notes/26.2.11.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.2.11 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.2.11, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.2.12.md b/blazor/Release-Notes/26.2.12.md index e85060a7f6..c02999f791 100644 --- a/blazor/Release-Notes/26.2.12.md +++ b/blazor/Release-Notes/26.2.12.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.2.12 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.2.12, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.2.13.md b/blazor/Release-Notes/26.2.13.md index 65a4c96e5e..74bafe7fc8 100644 --- a/blazor/Release-Notes/26.2.13.md +++ b/blazor/Release-Notes/26.2.13.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.2.13 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.2.13, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.2.14.md b/blazor/Release-Notes/26.2.14.md index b7d5a8e38b..796b4d18f7 100644 --- a/blazor/Release-Notes/26.2.14.md +++ b/blazor/Release-Notes/26.2.14.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.2.14 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.2.14, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.2.5.md b/blazor/Release-Notes/26.2.5.md index 20d1e74f9e..2bba550364 100644 --- a/blazor/Release-Notes/26.2.5.md +++ b/blazor/Release-Notes/26.2.5.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.2.5 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.2.5, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.2.7.md b/blazor/Release-Notes/26.2.7.md index d6f55b9a78..6897b59b64 100644 --- a/blazor/Release-Notes/26.2.7.md +++ b/blazor/Release-Notes/26.2.7.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.2.7 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.2.7, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.2.8.md b/blazor/Release-Notes/26.2.8.md index effbbb1c9c..9559e7ae28 100644 --- a/blazor/Release-Notes/26.2.8.md +++ b/blazor/Release-Notes/26.2.8.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.2.8 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.2.8, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/26.2.9.md b/blazor/Release-Notes/26.2.9.md index 5916cd0aba..09ddae238a 100644 --- a/blazor/Release-Notes/26.2.9.md +++ b/blazor/Release-Notes/26.2.9.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v26.2.9 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v26.2.9, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.1.50.md b/blazor/Release-Notes/27.1.50.md index 5ae44fd61a..f7b225f859 100644 --- a/blazor/Release-Notes/27.1.50.md +++ b/blazor/Release-Notes/27.1.50.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.1.50 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.1.50, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.1.51.md b/blazor/Release-Notes/27.1.51.md index fef7352337..ffd1beaec6 100644 --- a/blazor/Release-Notes/27.1.51.md +++ b/blazor/Release-Notes/27.1.51.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.1.51 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.1.51, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.1.52.md b/blazor/Release-Notes/27.1.52.md index 31a9051356..8f4f25ce88 100644 --- a/blazor/Release-Notes/27.1.52.md +++ b/blazor/Release-Notes/27.1.52.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.1.52 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.1.52, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.1.53.md b/blazor/Release-Notes/27.1.53.md index 0f9bd670c9..af4163462d 100644 --- a/blazor/Release-Notes/27.1.53.md +++ b/blazor/Release-Notes/27.1.53.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.1.53 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.1.53, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.1.55.md b/blazor/Release-Notes/27.1.55.md index 72f9d17be5..7d2bf7c053 100644 --- a/blazor/Release-Notes/27.1.55.md +++ b/blazor/Release-Notes/27.1.55.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.1.55 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.1.55, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.1.56.md b/blazor/Release-Notes/27.1.56.md index 9fc657214d..1a10f1a1af 100644 --- a/blazor/Release-Notes/27.1.56.md +++ b/blazor/Release-Notes/27.1.56.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.1.56 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.1.56, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.1.57.md b/blazor/Release-Notes/27.1.57.md index 0502d32471..6e9d9cbedc 100644 --- a/blazor/Release-Notes/27.1.57.md +++ b/blazor/Release-Notes/27.1.57.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.1.57 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.1.57, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.1.58.md b/blazor/Release-Notes/27.1.58.md index 2b3eaa4c05..35d8061330 100644 --- a/blazor/Release-Notes/27.1.58.md +++ b/blazor/Release-Notes/27.1.58.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.1.58 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.1.58, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.2.3.md b/blazor/Release-Notes/27.2.3.md index a582e9b81e..e47ff72dd4 100644 --- a/blazor/Release-Notes/27.2.3.md +++ b/blazor/Release-Notes/27.2.3.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.2.3 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.2.3, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.2.4.md b/blazor/Release-Notes/27.2.4.md index dffc20976d..079e11b303 100644 --- a/blazor/Release-Notes/27.2.4.md +++ b/blazor/Release-Notes/27.2.4.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.2.4 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.2.4, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/27.2.5.md b/blazor/Release-Notes/27.2.5.md index 698fd251ff..e51b231981 100644 --- a/blazor/Release-Notes/27.2.5.md +++ b/blazor/Release-Notes/27.2.5.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v27.2.5 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v27.2.5, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/28.1.35.md b/blazor/Release-Notes/28.1.35.md index 774190df86..1e6b584cd7 100644 --- a/blazor/Release-Notes/28.1.35.md +++ b/blazor/Release-Notes/28.1.35.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v28.1.35 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v28.1.35, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/28.1.36.md b/blazor/Release-Notes/28.1.36.md index 5d93e33072..d286f7c5c1 100644 --- a/blazor/Release-Notes/28.1.36.md +++ b/blazor/Release-Notes/28.1.36.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v28.1.36 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v28.1.36, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/28.1.37.md b/blazor/Release-Notes/28.1.37.md index 49b4b4c071..eddcd80629 100644 --- a/blazor/Release-Notes/28.1.37.md +++ b/blazor/Release-Notes/28.1.37.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v28.1.37 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v28.1.37, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/28.1.38.md b/blazor/Release-Notes/28.1.38.md index 027aae8019..e5cb188829 100644 --- a/blazor/Release-Notes/28.1.38.md +++ b/blazor/Release-Notes/28.1.38.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v28.1.38 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v28.1.38, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/28.1.39.md b/blazor/Release-Notes/28.1.39.md index aeff895ea0..b8a9f81a96 100644 --- a/blazor/Release-Notes/28.1.39.md +++ b/blazor/Release-Notes/28.1.39.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v28.1.39 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v28.1.39, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/28.1.41.md b/blazor/Release-Notes/28.1.41.md index c8ac281553..b91b7cd91a 100644 --- a/blazor/Release-Notes/28.1.41.md +++ b/blazor/Release-Notes/28.1.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v28.1.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v28.1.41, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/28.2.4.md b/blazor/Release-Notes/28.2.4.md index c18472327d..d3153d8d6c 100644 --- a/blazor/Release-Notes/28.2.4.md +++ b/blazor/Release-Notes/28.2.4.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v28.2.4 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v28.2.4, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/28.2.5.md b/blazor/Release-Notes/28.2.5.md index 0df90c4052..c23ec4069f 100644 --- a/blazor/Release-Notes/28.2.5.md +++ b/blazor/Release-Notes/28.2.5.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v28.2.5 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v28.2.5, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/28.2.6.md b/blazor/Release-Notes/28.2.6.md index 2ccb262e21..f18311067f 100644 --- a/blazor/Release-Notes/28.2.6.md +++ b/blazor/Release-Notes/28.2.6.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v28.2.6 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v28.2.6, including added features and key improvements platform: Blazor documentation: ug --- diff --git a/blazor/Release-Notes/29.1.38.md b/blazor/Release-Notes/29.1.38.md index 7e0b091a48..68e9d7ddba 100644 --- a/blazor/Release-Notes/29.1.38.md +++ b/blazor/Release-Notes/29.1.38.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v29.1.38 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v29.1.38, including added features and key improvements platform: blazor documentation: ug --- diff --git a/blazor/Release-Notes/29.1.39.md b/blazor/Release-Notes/29.1.39.md index 952d67d180..0d568060bb 100644 --- a/blazor/Release-Notes/29.1.39.md +++ b/blazor/Release-Notes/29.1.39.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v29.1.39 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v29.1.39, including added features and key improvements platform: blazor documentation: ug --- diff --git a/blazor/Release-Notes/29.1.40.md b/blazor/Release-Notes/29.1.40.md index 574569271f..83399eed5e 100644 --- a/blazor/Release-Notes/29.1.40.md +++ b/blazor/Release-Notes/29.1.40.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v29.1.40 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v29.1.40, including added features and key improvements platform: blazor documentation: ug --- diff --git a/blazor/Release-Notes/29.1.41.md b/blazor/Release-Notes/29.1.41.md index d3b1e903e6..07343d66bf 100644 --- a/blazor/Release-Notes/29.1.41.md +++ b/blazor/Release-Notes/29.1.41.md @@ -1,6 +1,6 @@ --- title: Essential Studio for Blazor Weekly Nuget Release Notes - v29.1.41 -description: Essential Studio for Blazor Weekly Nuget Release Release Notes +description: Learn all about the Essential Studio for Blazor Weekly Nuget Release Release Notes v29.1.41, including added features and key improvements platform: blazor documentation: ug --- From 917b6951b40aceff1404a822c3307b8866e46cd1 Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Thu, 26 Feb 2026 19:13:35 +0530 Subject: [PATCH 10/49] Add GraphQL Integration Documentation Files --- blazor-toc.html | 5 + blazor/scheduler/graphql-adptor.md | 1060 +++++++++++++++++ .../blazor-scheduler-graphql-frontend.png | Bin 0 -> 58784 bytes 3 files changed, 1065 insertions(+) create mode 100644 blazor/scheduler/graphql-adptor.md create mode 100644 blazor/scheduler/images/blazor-scheduler-graphql-frontend.png diff --git a/blazor-toc.html b/blazor-toc.html index 07e0482746..cbc7b76dbe 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -4501,6 +4501,11 @@
  • Data Binding
  • +
  • Scheduler Integrations + +
  • CRUD Actions
  • Virtual Scrolling
  • Editor Window Customization
  • diff --git a/blazor/scheduler/graphql-adptor.md b/blazor/scheduler/graphql-adptor.md new file mode 100644 index 0000000000..e14f9c23e2 --- /dev/null +++ b/blazor/scheduler/graphql-adptor.md @@ -0,0 +1,1060 @@ +--- +layout: post +title: Blazor Scheduler with GraphQL using Hot Chocolate | Syncfusion +description: Build Blazor apps with GraphQL and Syncfusion Scheduler to enable CRUD seamless data operations. +control: Scheduler +platform: blazor +documentation: ug +--- + +# Connect Syncfusion Blazor Scheduler with GraphQL using Hot Chocolate + +GraphQL is a query language that allows applications to request exactly the data needed, nothing more and nothing less. Unlike traditional REST APIs that return fixed data structures, GraphQL enables the client to specify the shape and content of the response. + +**Traditional REST APIs** and **GraphQL** differ mainly in how data is requested and returned: **REST APIs expose** multiple endpoints that return fixed data structures, often including unnecessary fields and requiring several requests to fetch related data, while **GraphQL** uses a single endpoint where queries define the exact fields needed, enabling precise responses and allowing related data to be retrieved efficiently in one request. This makes **GraphQL** especially useful for **Blazor Scheduler integration**, the **reason** is data‑centric UI components require well‑structured and selective datasets to support efficient operations, reduce network calls, and improve overall performance. + +**Key GraphQL Concepts** + +- **Queries**: A query is a request to read data. Queries do not modify data; they only retrieve it. +- **Mutations**: A mutation is a request to modify data. Mutations create, update, or delete records. +- **Resolvers**: Each query or mutation is handled by a resolver, which is a function responsible for fetching data or executing an operation. **Query resolvers** handle **read operations**, while **mutation resolvers** handle **write operations**. +- **Schema**: Defines the structure of the API. The schema describes available data types, the fields within those types, and the operations that can be executed. Query definitions specify how data can be retrieved, and mutation definitions specify how data can be modified. + +[Hot Chocolate](https://chillicream.com/docs/hotchocolate/v15) is an open‑source GraphQL server framework for .NET. Hot Chocolate enables the creation of GraphQL APIs using ASP.NET Core and integrates seamlessly with modern .NET applications, including Blazor. + +## Prerequisites + +Install the following software and packages before starting the process: + +| Software/Package | Version | Purpose | +|-----------------|---------|---------| +| Visual Studio 2026 | 18.0 or later | Development IDE with Blazor workload | +| .NET SDK | net8.0 or compatible | Runtime and build tools | +| HotChocolate.AspNetCore | 15.1.12 or later | GraphQL server framework | +| Syncfusion.Blazor.Schedule | 32.2.4 | SCheduler component | +| Syncfusion.Blazor.Themes | 32.2.4 | Styling for Scheduler | + +## Setting Up the GraphQL Backend + +### Step 1: Create a New ASP.NET Core Empty Project as the GraphQL Server + +Create a **Blazor Web App** using Visual Studio 2026 or .NET CLI. + +**Using Visual Studio 2026 or later:** + +1. Open **Visual Studio 2026** (or newer). +2. Go to **File → New → Project**. +3. Search for and select **ASP.NET Core Empty** (C#). +4. Name the project (example: `GraphQLServer`). +5. Select **.NET 8.0** as the target framework +6. Click **Create** + +**Using .NET CLI:** +```bash +dotnet new web -o GraphQLServer +cd GraphQLServer +``` + +This creates a minimal ASP.NET Core app with just `Program.cs`. + +### Step 2: Install the Required NuGet Package + +1. Open **Tools → NuGet Package Manager → Package Manager Console**. +2. Run this command: + + ```powershell + Install-Package HotChocolate.AspNetCore -Version 15.1.12 + ``` +#### Method 2: Using .NET CLI + +1. Open a terminal in the project directory and run: + + ```bash + dotnet add package HotChocolate.AspNetCore --version 15.1.12 + ``` + +### Step 3: Configuring the GraphQL server app + +1. Create GraphQLQuery and GraphQLMutation classes to define the GraphQL resolver and mutation methods, respectively. +2. Implement the following configuration code to set up GraphQL query and mutation types and enable CORS. + + [program.cs] + ```csharp + var builder = WebApplication.CreateBuilder(args); + + builder.Services.AddGraphQLServer() + .AddQueryType() + .AddMutationType(); + + builder.Services.AddCors(options => + { + options.AddPolicy("AllowSpecificOrigin", builder => + { + builder.WithOrigins("http://localhost:xxxx") // xxxx represents Blazor app port no + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials().Build(); + }); + }); + var app = builder.Build(); + + app.UseCors("AllowSpecificOrigin"); + + app.UseRouting(); + + app.MapGraphQL(); + + app.Run(); + ``` +### Step 4: Create a Data Source for Appointments and define resolver + +The following code creates a simple in-memory data source with a list of `Appointment` objects in the `GraphQLQuery` class and define the return type to bind data to the Blazor Scheduler, the resolver must return data using the `ReturnType` class with `Count`, `Result`, and `Aggregates` properties. +This data will be used to populate the Blazor Scheduler. + +[`GraphQLQuery.cs`] + +```csharp +public class GraphQLQuery +{ + public static List Appointments { get; set; } = GetAppointmentsList(); + + private static List GetAppointmentsList() + { + var data = new List(); + + // IST offset (UTC+5:30) + var istOffset = TimeSpan.FromHours(5.5); + + data.Add(new Appointment() + { + Id = 1, + Subject = "Testing", + StartTime = new DateTime(2026, 2, 10, 9, 30, 0) - istOffset, + EndTime = new DateTime(2026, 2, 10, 10, 30, 0) - istOffset + }); + + data.Add(new Appointment() + { + Id = 2, + Subject = "Conference", + StartTime = new DateTime(2026, 2, 11, 10, 30, 0) - istOffset, + EndTime = new DateTime(2026, 2, 11, 12, 0, 0) - istOffset + }); + + data.Add(new Appointment() + { + Id = 3, + Subject = "Meeting", + StartTime = new DateTime(2026, 2, 12, 9, 30, 0) - istOffset, + EndTime = new DateTime(2026, 2, 12, 11, 30, 0) - istOffset + }); + + data.Add(new Appointment() + { + Id = 4, + Subject = "Vacation", + StartTime = new DateTime(2026, 2, 14, 11, 30, 0) - istOffset, + EndTime = new DateTime(2026, 2, 14, 13, 0, 0) - istOffset + }); + + return data; + } + public ReturnType AppointmentsData(DataManagerRequest dataManager) + { + IEnumerable result = Appointments; + int count = result.Count(); + return dataManager.RequiresCounts ? new ReturnType() { Result = result, Count = count } : new ReturnType() { Result = result }; + } +} +``` +**Explanation** + +- Appointments is a static list that holds all appointment records. +- GetAppointmentsList() creates sample data with 4 appointments in February 2026. +- Dates are adjusted to IST (Indian Standard Time) by subtracting the 5.5-hour offset from UTC. +- This in-memory list serves as your data source — later you can replace it with a database or external service. +- The Scheduler will read from this list via the GraphQL query resolver. + +### Step 5: Return data with required format +To bind data to the Blazor Scheduler component, the resolver function must return the data in a specific structure using the `ReturnType` class.This class tells the Scheduler how many appointments exist (`Count`) and which appointments to show (`Result`). + +[ReturnType.cs] +```csharp +public class ReturnType +{ + public int Count { get; set; } + public IEnumerable Result { get; set; } +} +``` +**Why this format is required** + +- Count - Tells the Scheduler how many appointments match the current view/date range. +- Result - The actual list of appointments the Scheduler will show as events on the calendar. + +### Step 6: Create resolver function argument classes +The GraphQL query will be passed from the Scheduler with the dataManager property. So, to accept this parameter in the resolver function, we have to create the DataManagerRequest class, and the necessary classes required for the DataManagerRequest properties. + +Refer to the following code examples. + +[DataManagerRequest.cs] + +DataManagerRequest class + +```csharp +public class DataManagerRequest { + [GraphQLName("Skip")] + public int Skip { get; set; } + + [GraphQLName("Take")] + public int Take { get; set; } + + [GraphQLName("RequiresCounts")] + public bool RequiresCounts { get; set; } = false; + + [GraphQLName("Params")] + [GraphQLType(typeof(AnyType))] + public IDictionary Params { get; set; } + + [GraphQLName("Distinct")] + public List? Distinct { get; set; } + + [GraphQLName("ServerSideGroup")] + public bool? ServerSideGroup { get; set; } + + [GraphQLName("LazyLoad")] + public bool? LazyLoad { get; set; } + + [GraphQLName("LazyExpandAllGroup")] + public bool? LazyExpandAllGroup { get; set; } +} +``` + +Appointment class + +```csharp +public class Appointment +{ + [GraphQLName("Id")] + public int Id { get; set; } + + [GraphQLName("Subject")] + public string Subject { get; set; } + + [GraphQLName("Location")] + public string? Location { get; set; } + + [GraphQLName("StartTime")] + public DateTime StartTime { get; set; } + + [GraphQLName("EndTime")] + public DateTime EndTime { get; set; } + + [GraphQLName("Description")] + public string? Description { get; set; } + + [GraphQLName("IsAllDay")] + public bool? IsAllDay { get; set; } + + [GraphQLName("RecurrenceRule")] + public string? RecurrenceRule { get; set; } + + [GraphQLName("RecurrenceException")] + public string? RecurrenceException { get; set; } + + [GraphQLName("RecurrenceID")] + public int? RecurrenceID { get; set; } +} +``` +### Step 7: GraphQL Mutation Resolvers + +A **GraphQL mutation resolver** is a method in the backend that handles write requests (data modifications) from the client. While queries only read data, mutations create, update, or delete records. When the Blazor Scheduler performs add, edit, or delete operations, it sends a GraphQL mutation to the server. The mutation resolver receives this request, processes it, and persists the changes to the data source. + +In simple terms, a **GraphQL mutation** asks for a change, and a **resolver** is the one who makes it. + +[GraphQLMutation.cs] + +```csharp + +public class GraphQLMutation +{ + // CREATE - Insert a new appointment + public Appointment CreateAppointment( + Appointment appointment, + int index, + string action, + [GraphQLType(typeof(AnyType))] IDictionary? additionalParameters) + { + if (appointment.Id <= 0) + { + appointment.Id = GraphQLQuery.Appointments + .Select(a => a.Id) + .DefaultIfEmpty(0) + .Max() + 1; + } + GraphQLQuery.Appointments.Insert(index, appointment); + return appointment; + } + + // UPDATE - Update existing appointment by Id + public Appointment UpdateAppointment( + Appointment appointment, + string action, + string primaryColumnName, + int primaryColumnValue, + [GraphQLType(typeof(AnyType))] IDictionary? additionalParameters) + { + var existing = GraphQLQuery.Appointments.FirstOrDefault(x => x.Id == primaryColumnValue); + if (existing == null) return new Appointment(); + + existing.Subject = appointment.Subject; + existing.Location = appointment.Location; + existing.StartTime = appointment.StartTime; + existing.EndTime = appointment.EndTime; + existing.Description = appointment.Description; + existing.IsAllDay = appointment.IsAllDay; + existing.RecurrenceID = appointment.RecurrenceID; + existing.RecurrenceRule = appointment.RecurrenceRule ?? existing.RecurrenceRule; + + if (!string.IsNullOrEmpty(existing.RecurrenceRule)) + { + var set = new HashSet(StringComparer.Ordinal); + if (!string.IsNullOrWhiteSpace(existing.RecurrenceException)) + foreach (var t in existing.RecurrenceException.Split(',', StringSplitOptions.RemoveEmptyEntries)) + set.Add(t.Trim()); + if (!string.IsNullOrWhiteSpace(appointment.RecurrenceException)) + foreach (var t in appointment.RecurrenceException.Split(',', StringSplitOptions.RemoveEmptyEntries)) + set.Add(t.Trim()); + + existing.RecurrenceException = set.Count == 0 ? null : string.Join(",", set); + } + else + { + existing.RecurrenceException = appointment.RecurrenceException; + } + + return existing; + } + + // DELETE - Remove appointment by Id + public Appointment DeleteAppointment( + int primaryColumnValue, + string action, + string primaryColumnName, + [GraphQLType(typeof(AnyType))] IDictionary? additionalParameters) + { + var toDelete = GraphQLQuery.Appointments.FirstOrDefault(x => x.Id == primaryColumnValue); + if (toDelete != null) GraphQLQuery.Appointments.Remove(toDelete); + return toDelete ?? new Appointment(); + } + + // BATCH - Handle multiple adds, changes, deletes in one call + public List BatchAppointment( + List? added, + List? changed, + List? deleted, + string? action = null, + string? primaryColumnName = null, + [GraphQLType(typeof(AnyType))] IDictionary? additionalParameters = null) + { + var results = new List(); + added ??= new List(); + changed ??= new List(); + deleted ??= new List(); + + string? act = action; + if (string.IsNullOrWhiteSpace(act) && additionalParameters != null) + { + if (additionalParameters.TryGetValue("currentAction", out var v1) && v1 is string s1 && !string.IsNullOrWhiteSpace(s1)) + act = s1; + else if (additionalParameters.TryGetValue("requestType", out var v2) && v2 is string s2 && !string.IsNullOrWhiteSpace(s2)) + act = s2; + } + bool IsAction(string name) => !string.IsNullOrWhiteSpace(act) && act.Equals(name, StringComparison.OrdinalIgnoreCase); + + bool hasChangedParent = changed.Any(c => + !string.IsNullOrEmpty(c.RecurrenceRule) || + GraphQLQuery.Appointments.Any(p => p.Id == c.Id && !string.IsNullOrEmpty(p.RecurrenceRule))); + + bool hasDeletedEdited = deleted.Any(d => d.RecurrenceID.HasValue); + bool isSeriesEdit = IsAction("EditSeries") || (hasChangedParent && hasDeletedEdited); + + // ---------------- DELETES ---------------- + foreach (var d in deleted) + { + var target = GraphQLQuery.Appointments.FirstOrDefault(a => a.Id == d.Id); + if (target == null) continue; + + bool isEditedOccurrence = target.RecurrenceID.HasValue; + bool isSeriesParent = !string.IsNullOrEmpty(target.RecurrenceRule); + + if (isSeriesEdit && isEditedOccurrence) + { + GraphQLQuery.Appointments.RemoveAll(a => a.Id == target.Id); + + var parent = GraphQLQuery.Appointments.FirstOrDefault(a => a.Id == target.RecurrenceID!.Value); + if (parent != null && !string.IsNullOrWhiteSpace(parent.RecurrenceException)) + { + var tokens = parent.RecurrenceException + .Split(',', StringSplitOptions.RemoveEmptyEntries) + .Select(t => t.Trim()) + .ToList(); + + var iso = (target.StartTime.Kind == DateTimeKind.Utc ? target.StartTime : target.StartTime.ToUniversalTime()).ToString("o"); + tokens.RemoveAll(t => string.Equals(t, iso, StringComparison.Ordinal)); + + if (!string.IsNullOrWhiteSpace(target.RecurrenceException)) + { + foreach (var tkn in target.RecurrenceException.Split(',', StringSplitOptions.RemoveEmptyEntries)) + { + var tt = tkn.Trim(); + tokens.RemoveAll(t => string.Equals(t, tt, StringComparison.Ordinal)); + } + } + + parent.RecurrenceException = tokens.Count == 0 ? null : string.Join(",", tokens); + } + + results.Add(target); + continue; + } + + if (isEditedOccurrence && IsAction("DeleteOccurrence")) + { + GraphQLQuery.Appointments.RemoveAll(a => a.Id == target.Id); + results.Add(target); + continue; + } + + if (isSeriesParent && IsAction("DeleteSeries")) + { + var removed = GraphQLQuery.Appointments + .Where(a => a.Id == target.Id || a.RecurrenceID == target.Id) + .ToList(); + + GraphQLQuery.Appointments.RemoveAll(a => a.Id == target.Id || a.RecurrenceID == target.Id); + results.AddRange(removed); + continue; + } + + if (!isSeriesEdit) + { + GraphQLQuery.Appointments.RemoveAll(a => a.Id == target.Id); + results.Add(target); + } + } + + // ---------------- UPDATES ---------------- + foreach (var u in changed) + { + var existing = GraphQLQuery.Appointments.FirstOrDefault(x => x.Id == u.Id); + + if (existing == null) + { + if (u.Id <= 0) + u.Id = GraphQLQuery.Appointments.Select(a => a.Id).DefaultIfEmpty(0).Max() + 1; + + GraphQLQuery.Appointments.Add(u); + results.Add(u); + continue; + } + + bool isParent = !string.IsNullOrEmpty(existing.RecurrenceRule) || !string.IsNullOrEmpty(u.RecurrenceRule); + + existing.Subject = u.Subject ?? existing.Subject; + existing.Location = u.Location ?? existing.Location; + existing.StartTime = u.StartTime; + existing.EndTime = u.EndTime; + existing.Description = u.Description ?? existing.Description; + existing.IsAllDay = u.IsAllDay ?? existing.IsAllDay; + existing.RecurrenceRule = u.RecurrenceRule ?? existing.RecurrenceRule; + + if (isParent) + { + if (!isSeriesEdit) + existing.RecurrenceException = u.RecurrenceException ?? existing.RecurrenceException; + } + else + { + existing.RecurrenceException = u.RecurrenceException ?? existing.RecurrenceException; + } + + existing.RecurrenceID = u.RecurrenceID ?? existing.RecurrenceID; + results.Add(existing); + } + + // ---------------- ADDS ---------------- + foreach (var a in added) + { + if (a.Id <= 0) + { + a.Id = GraphQLQuery.Appointments + .Select(x => x.Id) + .DefaultIfEmpty(0) + .Max() + 1; + } + GraphQLQuery.Appointments.Add(a); + results.Add(a); + } + + return results; + } +} +``` +A mutation resolver is a C# method decorated with GraphQL attributes that: + +- **Receives input parameters** from the Scheduler (new/modified appointment data, primary key value, etc.). +- **Processes the operation** (validation, time conflict checks, data modification). +- **Persists changes** to the data source (in-memory list, database, file, external service). +- **Returns results** to the client (updated appointment record or success/failure status). + +**Typical operations handled by mutation resolvers in Scheduler:** + +| Operation | Triggered when... | Resolver method example | Primary parameters received | +|-----------------|---------------------------------------------------|-----------------------------|-------------------------------------------------| +| **Create** | User clicks "Add" or double-clicks to create | `CreateAppointment` | `appointment` (new record), `index`, `action` | +| **Update** | User edits an existing appointment and saves | `UpdateAppointment` | `appointment` (updated record), `primaryColumnValue` (Id), `primaryColumnName` | +| **Delete** | User selects appointment and clicks "Delete" | `DeleteAppointment` | `primaryColumnValue` (Id), `primaryColumnName` | +| **BatchUpdate** |Editing/deleting **single occurrence** of recurring event
    | `BatchAppointment` | `added`: [AppointmentInput!]
    `changed`: [AppointmentInput!]
    `deleted`: [AppointmentInput!]
    `action`: String (optional, e.g. "batch")
    `primaryColumnName`: String (optional)
    `additionalParameters`: Any (optional) | + +The GraphQL Mutation class has been successfully created and is ready to handle all data modification operations from the Syncfusion Blazor Scheduler. + +--- + +## Integrating Syncfusion Blazor Scheduler + +### Step 1: Create a Blazor Web App + +Create a **Blazor Web App** using Visual Studio 2026 or .NET CLI. + +**Using Visual Studio 2026 or later:** +1. Open Visual Studio 2026 +2. Click **Create a new project** +3. Search for **Blazor Web App** template +4. Configure project name as **BlazorSchedulerApp** +5. Select **.NET 8.0** as the target framework +6. Set **Interactive render mode** to **Server** +7. Set **Interactivity location** to **Per page/component** +8. Click **Create** + +**Using .NET CLI:** +```bash +dotnet new blazor -n BlazorSchedulerApp --interactivity Server +cd BlazorSchedulerApp +``` + +> Configure the Interactive render mode to **InteractiveServer** during project creation as the Scheduler requires interactivity for CRUD operations. + +### Step 2: Install Required NuGet Packages and Configure Blazor Scheduler Component with GraphQL + +Before installing the necessary NuGet packages, a new Blazor Web Application must be created using the default template. This template automatically generates essential starter files—such as `Program.cs`, `appsettings.json`, the `wwwroot` folder, and the `Components` folder. + +For this guide, a Blazor application named **BlazorSchedulerApp** has been created. Once the project is set up, the next step involves installing the required NuGet packages. NuGet packages are software libraries that add functionality to the application. + +#### Method 1: Using Package Manager Console + +1. Open Visual Studio 2026. +2. Navigate to **Tools** → **NuGet Package Manager** → **Package Manager Console**. +3. Run the following commands: + +```powershell +Install-Package Syncfusion.Blazor.Schedule +Install-Package Syncfusion.Blazor.Themes +``` + +#### Method 2: Using .NET CLI + +Open a terminal in the project directory and run: + +```bash +dotnet add package Syncfusion.Blazor.Schedule +dotnet add package Syncfusion.Blazor.Themes +``` + +#### Project File Reference + +The installed packages are reflected in the `BlazorSchedulerApp.csproj` file: + +```xml + + + + +``` + +All required packages are now installed. + +> **Note**: After installing packages, build the project to ensure all dependencies are restored correctly: `dotnet build` + +* Import the required namespaces in the `Components/_Imports.razor` file: + +```csharp +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Schedule +@using Syncfusion.Blazor.Data +``` + +* Add the Syncfusion stylesheet and scripts in the `Components/App.razor` file. Find the `` section and add: + +```html + + + + + +``` +For this project, the bootstrap5.3 theme is used. A different theme can be selected or the existing theme can be customized based on project requirements. Refer to the [Syncfusion Blazor Components Appearance](https://blazor.syncfusion.com/documentation/appearance/themes) documentation to learn more about theming and customization options. + +* Register Syncfusion® Blazor Service + +Register the Syncfusion® Blazor Service in the **Program.cs** file of your Blazor Web App. + +```csharp +using Syncfusion.Blazor; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +builder.Services.AddRazorComponents() + .AddInteractiveServerComponents() + .AddInteractiveWebAssemblyComponents(); + +builder.Services.AddSyncfusionBlazor(); + +var app = builder.Build(); + +``` + +Syncfusion components are now configured and ready to use. For additional guidance, refer to the Scheduler component’s [getting‑started](https://blazor.syncfusion.com/documentation/scheduler/getting-started-webapp) documentation. + +### Step 3: Create the Data Model + +A data model is a C# class that represents the structure of a database table. This model defines the properties that correspond to the columns in the `Appointments` table. + +```csharp +public class Appointment +{ + public int Id { get; set; } + + public string Subject { get; set; } + + public string? Location { get; set; } + + public DateTime StartTime { get; set; } + + public DateTime EndTime { get; set; } + + public string? Description { get; set; } + + public bool? IsAllDay { get; set; } + + public string? RecurrenceRule { get; set; } + + public string? RecurrenceException { get; set; } + + public int? RecurrenceID { get; set; } +} +``` + +#### Explanation: + +- The `[Key]` attribute marks the `Id` property as the primary key (a unique identifier for each record). +- Each property represents a column in the database table. +- The `?` symbol indicates that a property is nullable (can be empty). + +The data model has been successfully created. + +### Step 4: Update the Blazor Scheduler + +The `Home.razor` component will display the appointment data in a Syncfusion Blazor Scheduler with CRUD operations capabilities. + +**Instructions:** + +1. Open the file named `Home.razor` in the `Components/Pages` folder. +2. Add the following code to create a basic Scheduler: +[Home.razor] +```cshtml +@page "/" +@rendermode InteractiveServer + + + + + + + + + + + + + + + + + + +@code { + // GraphQLAdaptorOptions will be added in the next step +} +``` + +### Component Explanation: + +- **`@rendermode InteractiveServer`**: Enables interactive server-side rendering for the component, allowing real-time updates and user interactions (such as adding, editing, or deleting appointments) without full page reloads. +- **``**: The main Scheduler component that displays appointments in various calendar views (Day, Week, Work Week, Month, Agenda, etc.). +- **``**: Defines the available view options for the Scheduler. Each `` specifies a supported calendar layout (e.g., Day, Week, Month). +- **``**: Configures how events (appointments) are bound and managed. This is where data binding (via `SfDataManager`) and CRUD settings are typically placed. + + +The `SfDataManager` component connects the Scheduler to the GraphQL backend using the adaptor options configured below: + +```cshtml + // xxxx repesents backend port no + +``` + +**Component Attributes Explained:** + +| Attribute | Purpose | Value | +|-----------|---------|-------| +| `Url` | GraphQL endpoint location | `http://localhost:5070/graphql` (must match backend port) | +| `GraphQLAdaptorOptions` | References the adaptor configuration object | `@adaptorOptions` (defined in next heading) | +| `Adaptor` | Specifies adaptor type to use | `Adaptors.GraphQLAdaptor` (tells Syncfusion to use GraphQL adaptor) | + +--- + +### Step 5: Configure GraphQL Adaptor and Data Binding + +The GraphQL adaptor is a bridge that connects the Syncfusion Blazor Scheduler with the GraphQL backend. The adaptor translates Scheduler operations into GraphQL queries and mutations. When the user interacts with the Scheduler, the adaptor automatically sends the appropriate GraphQL request to the backend, receives the response, and updates the Scheduler display. + +**What is a GraphQL Adaptor?** + +An adaptor is a translator between two different systems. The GraphQL adaptor specifically: + +- Receives interaction events generated by the Scheduler, including Add, Edit, Delete operations. +- Converts these actions into GraphQL query or mutation syntax. +- Sends the **GraphQL request** to the backend **GraphQL endpoint**. +- Receives the response data from the backend. +- Formats the response back into a structure the Scheduler understands. +- Updates the Scheduler display with the new data. + +The adaptor enables bidirectional communication between the frontend (Scheduler) and backend (GraphQL server). + +--- + +**GraphQL Adaptor Configuration** + +The `@code` block in `Home.razor` contains C# code that configures how the adaptor behaves. This configuration is critical because it defines: + +- Which GraphQL query to use for reading data. +- Which GraphQL mutations to use for creating, updating, and deleting data. +- How to connect to the GraphQL backend endpoint. + +**Instructions:** + +1. Open the `Home.razor` file located at `Components/Pages/Home.razor`. +2. Scroll to the `@code` block at the bottom of the file. +3. Add the following complete configuration: + +[Home.razor] +```csharp +@code { + private DateTime CurrentDate = new DateTime(2026, 2, 12); + /// + /// GraphQLAdaptorOptions configures how the Scheduler communicates with the GraphQL backend. + /// This object contains the query, mutation operations, and endpoint URL. + /// + private GraphQLAdaptorOptions adaptorOptions = new GraphQLAdaptorOptions + { + Query = @" + query appointmentsData($dataManager: DataManagerRequestInput!){ + appointmentsData(dataManager: $dataManager) { + count, + result { + Id, + Subject, + Location, + StartTime, + EndTime, + Description, + IsAllDay, + RecurrenceRule, + RecurrenceException, + RecurrenceID + + } + } + }", + + Mutation = new GraphQLMutation + { + Insert = @" + mutation create($record: AppointmentInput!, $index: Int!, $action: String!, $additionalParameters: Any) { + createAppointment(appointment: $record, index: $index, action: $action, additionalParameters: $additionalParameters) { + Id, Subject, Location, StartTime, EndTime, Description, IsAllDay,RecurrenceRule,RecurrenceException,RecurrenceID + } + }", + + Update = @" + mutation update($record: AppointmentInput!, $action: String!, $primaryColumnName: String!, $primaryColumnValue: Int!, $additionalParameters: Any) { + updateAppointment(appointment: $record, action: $action, primaryColumnName: $primaryColumnName, primaryColumnValue: $primaryColumnValue, additionalParameters: $additionalParameters) { + Id, Subject, Location, StartTime, EndTime, Description, IsAllDay,RecurrenceRule,RecurrenceException,RecurrenceID + } + }", + + Delete = @" + mutation delete($primaryColumnValue: Int!, $action: String!, $primaryColumnName: String!, $additionalParameters: Any) { + deleteAppointment(primaryColumnValue: $primaryColumnValue, action: $action, primaryColumnName: $primaryColumnName, additionalParameters: $additionalParameters) { + Id, Subject, Location, StartTime, EndTime, Description, IsAllDay,RecurrenceRule,RecurrenceException,RecurrenceID + } + }", + Batch = @" + mutation batch( + $added: [AppointmentInput!], + $changed: [AppointmentInput!], + $deleted: [AppointmentInput!], + $action: String, + $primaryColumnName: String, + $additionalParameters: Any + ) { + batchAppointment( + added: $added, + changed: $changed, + deleted: $deleted, + action: $action, + primaryColumnName: $primaryColumnName, + additionalParameters: $additionalParameters + ) { + Id + Subject + Location + StartTime + EndTime + Description + IsAllDay + RecurrenceRule + RecurrenceException + RecurrenceID + } + }" + }, + + + ResolverName = "AppointmentsData" + }; +} +``` +**GraphQL Query Structure Explained in Detail** + +The Query property is critical for understanding how data flows. Let's break down each component: + +``` +query appointmentsData($dataManager: DataManagerRequestInput!){} +``` + +**Line Breakdown:** +- `query` - GraphQL keyword indicating a read operation +- `appointmentsData` - Name of the query (must match resolver name with camelCase) +- `($dataManager: DataManagerRequestInput!)` - Parameter declaration + - `$dataManager` - Variable name (referenced as $dataManager throughout the query) + - `: DataManagerRequestInput!` - Type specification + - `!` - Exclamation mark means this parameter is **required** (not optional) + +``` +appointmentsData(dataManager: $dataManager) {} +``` + +**Line Breakdown:** +- `appointmentsData(...)` - Calls the resolver method in backend +- `dataManager: $dataManager` - Passes the $dataManager variable to the resolver + + ``` + count + result { + Id, + Subject, + Location, + StartTime, + EndTime, + Description, + IsAllDay + } + ``` +- **`count`** + Returns the **total number of appointments** that match the current query criteria. + - Example: If 30 total appointments exist in the visible date range, `count = 30`. + - The Scheduler uses this to understand the scope of data (though it usually loads only the visible window and relies on date-range filtering). + +- **`result`** + Contains the **array of appointment records** that match the current request (typically filtered by the visible date range). + - `{ ... }` — List of fields to return for each appointment. + - **Each field must exactly match** the property names in your C# `Appointment` class (case-sensitive). + - Only the requested fields are returned (no over-fetching). + - The Scheduler binds these fields directly to render events on the calendar: + - `Id` → unique identifier + - `Subject` → event title + - `Location` → optional event location + - `StartTime` / `EndTime` → event timing (must be ISO 8601 format) + - `Description` → optional event details + - `IsAllDay` → determines if the event spans the full day + - `RecurrenceRule` → string that defines the repeat pattern (iCalendar RRULE format, e.g., "FREQ=DAILY;INTERVAL=1;COUNT=10"). + - `RecurrenceException` → string containing comma-separated dates/times (in UTC format like yyyyMMdd or yyyyMMddTHHmmssZ) to exclude from the series. + - `RecurrenceID` → nullable integer (int?) that links an edited/deleted occurrence back to its parent recurring series. +--- + +**Response Structure Example** + +When the backend executes the query, it returns a **JSON response** in this exact structure: + +```json +{ + "data": { + "appointmentsData": { + "count": 4, + "result": [ + { + "Id": 1, + "Subject": "Testing", + "Location": null, + "StartTime": "2026-02-10T09:30:00", + "EndTime": "2026-02-10T10:30:00", + "Description": null, + "IsAllDay": false, + "RecurrenceRule": null, + "RecurrenceException": null, + "RecurrenceID": null + }, + { + "Id": 2, + "Subject": "Conference (Recurring)", + "Location": null, + "StartTime": "2026-02-11T10:30:00", + "EndTime": "2026-02-11T12:00:00", + "Description": null, + "IsAllDay": false, + "RecurrenceRule": "FREQ=DAILY;INTERVAL=1;COUNT=5", + "RecurrenceException": null, + "RecurrenceID": null + }, + { + "Id": 3, + "Subject": "Meeting", + "Location": null, + "StartTime": "2026-02-12T09:30:00", + "EndTime": "2026-02-12T11:30:00", + "Description": null, + "IsAllDay": false, + "RecurrenceRule": null, + "RecurrenceException": null, + "RecurrenceID": null + }, + { + "Id": 4, + "Subject": "Vacation", + "Location": null, + "StartTime": "2026-02-14T11:30:00", + "EndTime": "2026-02-14T13:00:00", + "Description": null, + "IsAllDay": false, + "RecurrenceRule": null, + "RecurrenceException": null, + "RecurrenceID": null + } + ] + } + } +} +``` +**Response Structure Explanation:** + +| Part | Purpose | Example | +|------|---------|---------| +| `data` | Root object containing the query result | Always present in successful response | +| `appointmentsData` | Matches the query name (camelCase) | Contains count and result | +| `count` | Total number of records available | 4 (in this example) | +| `result` | Array of AppointmentRecord objects | [ {...}, {...}, {...}, {...} ] | +| Each field in result | Matches GraphQL query field names | Field values from database | + +**Understanding GraphQL Mutations for the Scheduler** + +**What is a mutation?** +A mutation is just a way to **change data** on the server — like adding a new appointment, editing one, or deleting one. + +In your Scheduler app: + +- When you **create** a new appointment → you use a **create** mutation. +- When you **edit** an existing appointment → you use an **update** mutation. +- When you **delete** an appointment → you use a **delete** mutation. +- When you **create**, **edit**, and **delete** collections of an appointment → you use a **batch** mutation. + +## Running the Application + +**Build the Application** + +1. Open the terminal. +2. Navigate to the **GraphQL server project** directory (e.g., `GraphQLServer`).. +3. Run the following command: + + ```powershell + dotnet build + ``` +4. Navigate to the **Blazor App project** directory (e.g., `BlazorSchedulerApp`) and Build the Blazor project: + ```powershell + dotnet build + ``` +**Run the Application** + +1. First, run the GraphQL server (this must be running before the Blazor app): + - Navigate to the GraphQL server project folder(e.g., GraphQLServer). + - Execute: + + + ```powershell + dotnet run + ``` +- Now listening on: http://localhost:5070 (or similar — check the console output) +- Note the HTTP port (e.g. 5070) — you'll need it for the Blazor app. + + +2. In a separate terminal, run the Blazor Scheduler application: + - Navigate to the Blazor project folder (e.g., BlazorSchedulerApp). + - Execute: + + + ```powershell + dotnet run + ``` +- The Blazor app will typically start on http://localhost:5194 (or similar — check the console output). + +**Access the Application** + +1. Open a web browser. +2. Navigate to `https://localhost:5194` (or the port shown in the terminal). +3. The Scheduler Application is now running and ready to use. + + ![Basic Scheduler displaying appointments from the GraphQL Server](./images/blazor-scheduler-graphql-frontend.png) + +--- + +## Complete Sample Repository + +A complete, working sample implementation is available in the [GitHub repository](https://github.com/SyncfusionExamples/How-to-integrate-Syncfusion-Blazor-Scheduler-with-GraphQL). + +--- +## Summary + +This guide demonstrates how to: + +1. Setting Up the GraphQL Backend. [🔗](#setting-up-the-graphql-backend) +2. Integrating Syncfusion Blazor Scheduler. [🔗](#integrating-syncfusion-blazor-scheduler) +3. Running the Application. [🔗](#running-the-application) +4. Complete Sample Repository. [🔗](#complete-sample-repository) + +The application now provides a complete solution for managing Appointments with a modern Syncfusion Blazor Scheduler integrated with a Hot Chocolate GraphQL backend. \ No newline at end of file diff --git a/blazor/scheduler/images/blazor-scheduler-graphql-frontend.png b/blazor/scheduler/images/blazor-scheduler-graphql-frontend.png new file mode 100644 index 0000000000000000000000000000000000000000..a00127cd824a422f1c457ce06e0a849a5db56559 GIT binary patch literal 58784 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 o)S&P--PscfuH-Bk0>k?G-;xvx$5 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 literal 0 HcmV?d00001 From 6b9191dca2b77de673bd611153e1ad8682e1a004 Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Thu, 26 Feb 2026 19:39:05 +0530 Subject: [PATCH 11/49] Resolved the automation error --- blazor/scheduler/graphql-adptor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/scheduler/graphql-adptor.md b/blazor/scheduler/graphql-adptor.md index e14f9c23e2..82c884b164 100644 --- a/blazor/scheduler/graphql-adptor.md +++ b/blazor/scheduler/graphql-adptor.md @@ -1,7 +1,7 @@ --- layout: post title: Blazor Scheduler with GraphQL using Hot Chocolate | Syncfusion -description: Build Blazor apps with GraphQL and Syncfusion Scheduler to enable CRUD seamless data operations. +description: Connect Syncfusion’s Blazor Scheduler to a Hot Chocolate GraphQL backend for optimized CRUD, typed queries, and a responsive, scalable .NET application. control: Scheduler platform: blazor documentation: ug From 59f935f07e0a9590058adb771dc6adfb9b1823d5 Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Fri, 27 Feb 2026 10:23:54 +0530 Subject: [PATCH 12/49] Resolve the alignment Changes --- blazor/scheduler/graphql-adptor.md | 259 ++++++++++++++--------------- 1 file changed, 121 insertions(+), 138 deletions(-) diff --git a/blazor/scheduler/graphql-adptor.md b/blazor/scheduler/graphql-adptor.md index 82c884b164..203567b1c7 100644 --- a/blazor/scheduler/graphql-adptor.md +++ b/blazor/scheduler/graphql-adptor.md @@ -57,15 +57,7 @@ cd GraphQLServer This creates a minimal ASP.NET Core app with just `Program.cs`. -### Step 2: Install the Required NuGet Package - -1. Open **Tools → NuGet Package Manager → Package Manager Console**. -2. Run this command: - - ```powershell - Install-Package HotChocolate.AspNetCore -Version 15.1.12 - ``` -#### Method 2: Using .NET CLI +### Step 2: Install the Required NuGet Package using .NET CLI 1. Open a terminal in the project directory and run: @@ -550,18 +542,7 @@ Before installing the necessary NuGet packages, a new Blazor Web Application mus For this guide, a Blazor application named **BlazorSchedulerApp** has been created. Once the project is set up, the next step involves installing the required NuGet packages. NuGet packages are software libraries that add functionality to the application. -#### Method 1: Using Package Manager Console - -1. Open Visual Studio 2026. -2. Navigate to **Tools** → **NuGet Package Manager** → **Package Manager Console**. -3. Run the following commands: - -```powershell -Install-Package Syncfusion.Blazor.Schedule -Install-Package Syncfusion.Blazor.Themes -``` - -#### Method 2: Using .NET CLI +#### Using .NET CLI Open a terminal in the project directory and run: @@ -585,7 +566,7 @@ All required packages are now installed. > **Note**: After installing packages, build the project to ensure all dependencies are restored correctly: `dotnet build` -* Import the required namespaces in the `Components/_Imports.razor` file: +#### Import the required namespaces in the `Components/_Imports.razor` file: ```csharp @using Syncfusion.Blazor @@ -593,7 +574,7 @@ All required packages are now installed. @using Syncfusion.Blazor.Data ``` -* Add the Syncfusion stylesheet and scripts in the `Components/App.razor` file. Find the `` section and add: +#### Add the Syncfusion stylesheet and scripts in the `Components/App.razor` file. Find the `` section and add: ```html @@ -604,7 +585,7 @@ All required packages are now installed. ``` For this project, the bootstrap5.3 theme is used. A different theme can be selected or the existing theme can be customized based on project requirements. Refer to the [Syncfusion Blazor Components Appearance](https://blazor.syncfusion.com/documentation/appearance/themes) documentation to learn more about theming and customization options. -* Register Syncfusion® Blazor Service +#### Register Syncfusion® Blazor Service Register the Syncfusion® Blazor Service in the **Program.cs** file of your Blazor Web App. @@ -631,6 +612,7 @@ Syncfusion components are now configured and ready to use. For additional guidan A data model is a C# class that represents the structure of a database table. This model defines the properties that correspond to the columns in the `Appointments` table. ```csharp + public class Appointment { public int Id { get; set; } @@ -672,36 +654,37 @@ The `Home.razor` component will display the appointment data in a Syncfusion Bla 1. Open the file named `Home.razor` in the `Components/Pages` folder. 2. Add the following code to create a basic Scheduler: [Home.razor] -```cshtml -@page "/" -@rendermode InteractiveServer - + ```cshtml + @page "/" + @rendermode InteractiveServer - - - - - - - - - - - - - - - -@code { - // GraphQLAdaptorOptions will be added in the next step -} -``` + + + + + + + + + + + + + + + + + + @code { + // GraphQLAdaptorOptions will be added in the next step + } + ``` ### Component Explanation: @@ -763,94 +746,94 @@ The `@code` block in `Home.razor` contains C# code that configures how the adapt 2. Scroll to the `@code` block at the bottom of the file. 3. Add the following complete configuration: -[Home.razor] -```csharp -@code { - private DateTime CurrentDate = new DateTime(2026, 2, 12); - /// - /// GraphQLAdaptorOptions configures how the Scheduler communicates with the GraphQL backend. - /// This object contains the query, mutation operations, and endpoint URL. - /// - private GraphQLAdaptorOptions adaptorOptions = new GraphQLAdaptorOptions - { - Query = @" - query appointmentsData($dataManager: DataManagerRequestInput!){ - appointmentsData(dataManager: $dataManager) { - count, - result { - Id, - Subject, - Location, - StartTime, - EndTime, - Description, - IsAllDay, - RecurrenceRule, - RecurrenceException, - RecurrenceID - + [Home.razor] + ```csharp + @code { + private DateTime CurrentDate = new DateTime(2026, 2, 12); + /// + /// GraphQLAdaptorOptions configures how the Scheduler communicates with the GraphQL backend. + /// This object contains the query, mutation operations, and endpoint URL. + /// + private GraphQLAdaptorOptions adaptorOptions = new GraphQLAdaptorOptions + { + Query = @" + query appointmentsData($dataManager: DataManagerRequestInput!){ + appointmentsData(dataManager: $dataManager) { + count, + result { + Id, + Subject, + Location, + StartTime, + EndTime, + Description, + IsAllDay, + RecurrenceRule, + RecurrenceException, + RecurrenceID + + } } - } - }", - - Mutation = new GraphQLMutation - { - Insert = @" - mutation create($record: AppointmentInput!, $index: Int!, $action: String!, $additionalParameters: Any) { - createAppointment(appointment: $record, index: $index, action: $action, additionalParameters: $additionalParameters) { - Id, Subject, Location, StartTime, EndTime, Description, IsAllDay,RecurrenceRule,RecurrenceException,RecurrenceID - } - }", - - Update = @" - mutation update($record: AppointmentInput!, $action: String!, $primaryColumnName: String!, $primaryColumnValue: Int!, $additionalParameters: Any) { - updateAppointment(appointment: $record, action: $action, primaryColumnName: $primaryColumnName, primaryColumnValue: $primaryColumnValue, additionalParameters: $additionalParameters) { - Id, Subject, Location, StartTime, EndTime, Description, IsAllDay,RecurrenceRule,RecurrenceException,RecurrenceID - } }", - - Delete = @" - mutation delete($primaryColumnValue: Int!, $action: String!, $primaryColumnName: String!, $additionalParameters: Any) { - deleteAppointment(primaryColumnValue: $primaryColumnValue, action: $action, primaryColumnName: $primaryColumnName, additionalParameters: $additionalParameters) { - Id, Subject, Location, StartTime, EndTime, Description, IsAllDay,RecurrenceRule,RecurrenceException,RecurrenceID - } - }", - Batch = @" - mutation batch( - $added: [AppointmentInput!], - $changed: [AppointmentInput!], - $deleted: [AppointmentInput!], - $action: String, - $primaryColumnName: String, - $additionalParameters: Any - ) { - batchAppointment( - added: $added, - changed: $changed, - deleted: $deleted, - action: $action, - primaryColumnName: $primaryColumnName, - additionalParameters: $additionalParameters - ) { - Id - Subject - Location - StartTime - EndTime - Description - IsAllDay - RecurrenceRule - RecurrenceException - RecurrenceID - } - }" - }, - - - ResolverName = "AppointmentsData" - }; -} -``` + + Mutation = new GraphQLMutation + { + Insert = @" + mutation create($record: AppointmentInput!, $index: Int!, $action: String!, $additionalParameters: Any) { + createAppointment(appointment: $record, index: $index, action: $action, additionalParameters: $additionalParameters) { + Id, Subject, Location, StartTime, EndTime, Description, IsAllDay,RecurrenceRule,RecurrenceException,RecurrenceID + } + }", + + Update = @" + mutation update($record: AppointmentInput!, $action: String!, $primaryColumnName: String!, $primaryColumnValue: Int!, $additionalParameters: Any) { + updateAppointment(appointment: $record, action: $action, primaryColumnName: $primaryColumnName, primaryColumnValue: $primaryColumnValue, additionalParameters: $additionalParameters) { + Id, Subject, Location, StartTime, EndTime, Description, IsAllDay,RecurrenceRule,RecurrenceException,RecurrenceID + } + }", + + Delete = @" + mutation delete($primaryColumnValue: Int!, $action: String!, $primaryColumnName: String!, $additionalParameters: Any) { + deleteAppointment(primaryColumnValue: $primaryColumnValue, action: $action, primaryColumnName: $primaryColumnName, additionalParameters: $additionalParameters) { + Id, Subject, Location, StartTime, EndTime, Description, IsAllDay,RecurrenceRule,RecurrenceException,RecurrenceID + } + }", + Batch = @" + mutation batch( + $added: [AppointmentInput!], + $changed: [AppointmentInput!], + $deleted: [AppointmentInput!], + $action: String, + $primaryColumnName: String, + $additionalParameters: Any + ) { + batchAppointment( + added: $added, + changed: $changed, + deleted: $deleted, + action: $action, + primaryColumnName: $primaryColumnName, + additionalParameters: $additionalParameters + ) { + Id + Subject + Location + StartTime + EndTime + Description + IsAllDay + RecurrenceRule + RecurrenceException + RecurrenceID + } + }" + }, + + + ResolverName = "AppointmentsData" + }; + } + ``` **GraphQL Query Structure Explained in Detail** The Query property is critical for understanding how data flows. Let's break down each component: From ac2b3fedba3f96a22dc456621c10ef0f1e74c445 Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Fri, 27 Feb 2026 16:46:05 +0530 Subject: [PATCH 13/49] Resolve the suggested changes --- blazor/scheduler/graphql-adptor.md | 37 +++++++++++++++++------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/blazor/scheduler/graphql-adptor.md b/blazor/scheduler/graphql-adptor.md index 203567b1c7..2291bacf47 100644 --- a/blazor/scheduler/graphql-adptor.md +++ b/blazor/scheduler/graphql-adptor.md @@ -29,10 +29,10 @@ Install the following software and packages before starting the process: | Software/Package | Version | Purpose | |-----------------|---------|---------| | Visual Studio 2026 | 18.0 or later | Development IDE with Blazor workload | -| .NET SDK | net8.0 or compatible | Runtime and build tools | +| .NET SDK | net10.0 or compatible | Runtime and build tools | | HotChocolate.AspNetCore | 15.1.12 or later | GraphQL server framework | -| Syncfusion.Blazor.Schedule | 32.2.4 | SCheduler component | -| Syncfusion.Blazor.Themes | 32.2.4 | Styling for Scheduler | +| Syncfusion.Blazor.Schedule | Latest Version | Scheduler component | +| Syncfusion.Blazor.Themes | Latest Version | Styling for Scheduler | ## Setting Up the GraphQL Backend @@ -46,7 +46,7 @@ Create a **Blazor Web App** using Visual Studio 2026 or .NET CLI. 2. Go to **File → New → Project**. 3. Search for and select **ASP.NET Core Empty** (C#). 4. Name the project (example: `GraphQLServer`). -5. Select **.NET 8.0** as the target framework +5. Select **.NET 10.0** as the target framework 6. Click **Create** **Using .NET CLI:** @@ -82,7 +82,7 @@ This creates a minimal ASP.NET Core app with just `Program.cs`. { options.AddPolicy("AllowSpecificOrigin", builder => { - builder.WithOrigins("http://localhost:xxxx") // xxxx represents Blazor app port no + builder.WithOrigins("http://localhost:5194") // 5194 represents Blazor app port no .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials().Build(); @@ -523,7 +523,7 @@ Create a **Blazor Web App** using Visual Studio 2026 or .NET CLI. 2. Click **Create a new project** 3. Search for **Blazor Web App** template 4. Configure project name as **BlazorSchedulerApp** -5. Select **.NET 8.0** as the target framework +5. Select **.NET 10.0** as the target framework 6. Set **Interactive render mode** to **Server** 7. Set **Interactivity location** to **Per page/component** 8. Click **Create** @@ -557,8 +557,8 @@ The installed packages are reflected in the `BlazorSchedulerApp.csproj` file: ```xml - - + + ``` @@ -574,14 +574,19 @@ All required packages are now installed. @using Syncfusion.Blazor.Data ``` -#### Add the Syncfusion stylesheet and scripts in the `Components/App.razor` file. Find the `` section and add: +#### Add the Syncfusion stylesheet and scripts in the `Components/App.razor` file. Find the `` section and ``section to add: ```html - - + + + + + - - + + + + ``` For this project, the bootstrap5.3 theme is used. A different theme can be selected or the existing theme can be customized based on project requirements. Refer to the [Syncfusion Blazor Components Appearance](https://blazor.syncfusion.com/documentation/appearance/themes) documentation to learn more about theming and customization options. @@ -694,12 +699,12 @@ The `Home.razor` component will display the appointment data in a Syncfusion Bla - **``**: Configures how events (appointments) are bound and managed. This is where data binding (via `SfDataManager`) and CRUD settings are typically placed. -The `SfDataManager` component connects the Scheduler to the GraphQL backend using the adaptor options configured below: +In the `Home.razor`, `SfDataManager` component connects the Scheduler to the GraphQL backend using the adaptor options configured below: ```cshtml - // xxxx repesents backend port no + Adaptor="Adaptors.GraphQLAdaptor"> ``` From 642e7b89556c9f1842db206453e740ec54241cd8 Mon Sep 17 00:00:00 2001 From: SriramSundar-SF5077 Date: Sat, 28 Feb 2026 20:05:37 +0530 Subject: [PATCH 14/49] 1011787: removed custom binding and entity framework details --- blazor-toc.html | 7 +- blazor/gantt-chart/custom-binding.md | 464 ------------------------- blazor/gantt-chart/entity-framework.md | 403 --------------------- 3 files changed, 2 insertions(+), 872 deletions(-) delete mode 100644 blazor/gantt-chart/custom-binding.md delete mode 100644 blazor/gantt-chart/entity-framework.md diff --git a/blazor-toc.html b/blazor-toc.html index 07e0482746..06c3ae1e20 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -3255,10 +3255,8 @@ -
  • Data Binding - +
  • + Data Binding
  • Connecting to Adaptors
  • Scrolling diff --git a/blazor/gantt-chart/custom-binding.md b/blazor/gantt-chart/custom-binding.md deleted file mode 100644 index 69e412ba43..0000000000 --- a/blazor/gantt-chart/custom-binding.md +++ /dev/null @@ -1,464 +0,0 @@ ---- -layout: post -title: Custom Binding in Blazor Gantt Chart Component | Syncfusion -description: Checkout and learn here all about Custom Binding in Syncfusion Blazor Gantt Chart component and more. -platform: Blazor -control: Gantt Chart -documentation: ug ---- - -# Custom Binding in Blazor Gantt Chart Component - -The [SfDataManager](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html) has custom adaptor support which allows you to perform manual operations on the data. This can be utilized for implementing custom data binding and editing operations in the Gantt component. - -For implementing custom data binding in Gantt, the **DataAdaptor** class is used. This abstract class acts as a base class for the custom adaptor. The **DataAdaptor** abstract class has both synchronous and asynchronous method signatures which can be overridden in the custom adaptor. Following are the method signatures present in this class, - -```csharp -public abstract class DataAdaptor -{ - /// - /// Performs data Read operation synchronously. - /// - public virtual object Read(DataManagerRequest dataManagerRequest, string key = null) - - /// - /// Performs data Read operation asynchronously. - /// - public virtual Task ReadAsync(DataManagerRequest dataManagerRequest, string key = null) - - /// - /// Performs Insert operation synchronously. - /// - public virtual object Insert(DataManager dataManager, object data, string key) - /// - /// Performs Insert operation asynchronously. - /// - public virtual Task InsertAsync(DataManager dataManager, object data, string key) - - /// - /// Performs Remove operation synchronously. - /// - public virtual object Remove(DataManager dataManager, object data, string keyField, string key) - - /// - /// Performs Remove operation asynchronously. - /// - public virtual Task RemoveAsync(DataManager dataManager, object data, string keyField, string key) - - /// - /// Performs Update operation synchronously. - /// - public virtual object Update (DataManager dataManager, object data, string keyField, string key) - - /// - /// Performs Update operation asynchronously. - /// - public virtual Task UpdateAsync(DataManager dataManager, object data, string keyField, string key) - - /// - /// Performs Batch CRUD operations synchronously. - /// - public virtual object BatchUpdate(DataManager dataManager, object changedRecords, object addedRecords, object deletedRecords, string keyField, string key, int? dropIndex) - - /// - /// Performs Batch CRUD operations asynchronously. - /// - public virtual Task BatchUpdateAsync(DataManager dataManager, object changedRecords, object addedRecords, object deletedRecords, string keyField, string key, int? dropIndex) -} -``` - -## Data binding - -The custom data binding can be performed in the Gantt component by providing the custom adaptor class and overriding the **Read** or **ReadAsync** method of the **DataAdaptor** abstract class. - -The following sample code demonstrates implementing custom data binding using custom adaptor, - -```cshtml -@using Syncfusion.Blazor.Gantt; -@using Syncfusion.Blazor.Data; -@using Syncfusion.Blazor; - - - - - - - -@code{ - public static List GanttData { get; set; } - public static List gantt = new List(); - public class TaskData - { - public int? TaskID { get; set; } - public string TaskName { get; set; } - public DateTime StartDate { get; set; } - public DateTime EndDate { get; set; } - public int Progress { get; set; } - public int Duration { get; set; } - public int? ParentID { get; set; } - public TaskData() { } - } - public static List GetGantt() - { - if (gantt.Count == 0) - { - int root = -1; - for (var t = 1; t <= 8; t++) - { - string math = (20 % 3) == 0 ? "High" : (20 % 2) == 0 ? "Release Breaker" : "Critical"; - root++; - int rootItem = gantt.Count + root + 1; - gantt.Add(new TaskData() { TaskID = rootItem, TaskName = "Parent Task " + rootItem.ToString(), StartDate = new DateTime(2022, 06, 07), EndDate = new DateTime(2022, 08, 25), Progress = 70, ParentID = null, Duration = 20 }); - int parent = gantt.Count; - for (var c = 0; c < 3; c++) - { - root++; - string val = ((parent + c + 1) % 3 == 0) ? "Low" : "Critical"; - int parn = parent + c + 1; - int iD = gantt.Count + root + 1; - gantt.Add(new TaskData() { TaskID = iD, TaskName = "Child Task " + iD.ToString(), StartDate = new DateTime(2022, 06, 07), EndDate = new DateTime(2022, 08, 25), Progress = 30, ParentID = rootItem, Duration = 5 }); - if ((((parent + c + 1) % 3) == 0)) - { - int immParent = gantt.Count; - for (var s = 0; s <= 1; s++) - { - root++; - gantt.Add(new TaskData() { TaskID = gantt.Count + root + 1, TaskName = "Sub Task " + (gantt.Count + root + 1).ToString(), StartDate = new DateTime(2022, 06, 07), EndDate = new DateTime(2022, 08, 25), Progress = 50, ParentID = iD, Duration = 8 }); - } - } - } - } - } - return gantt; - } - - // Implementing custom adaptor by extending the DataAdaptor class. - public class CustomAdaptor : DataAdaptor - { - // Performs data Read operation. - public override object Read(DataManagerRequest dm, string key = null) - { - IEnumerable DataSource = GanttData; - if (dm.Search != null && dm.Search.Count > 0) - { - // Searching - DataSource = DataOperations.PerformSearching(DataSource, dm.Search); - } - if (dm.Sorted != null && dm.Sorted.Count > 0) - { - // Sorting - DataSource = DataOperations.PerformSorting(DataSource, dm.Sorted); - } - if (dm.Where != null && dm.Where.Count > 0) - { - // Filtering - if (dm.Where[0].Field != null && dm.Where[0].Field == "ParentID"){} - else - { - DataSource = DataOperations.PerformFiltering(DataSource, dm.Where, dm.Where[0].Operator); - } - } - int count = DataSource.Cast().Count(); - if (dm.Skip != 0) - { - //Paging - DataSource = DataOperations.PerformSkip(DataSource, dm.Skip); - } - if (dm.Take != 0) - { - DataSource = DataOperations.PerformTake(DataSource, dm.Take); - } - return dm.RequiresCounts ? new DataResult() { Result = DataSource, Count = count } : (object)DataSource; - } - } - protected override void OnInitialized() - { - GanttData = GetGantt().ToList(); - } -} -``` - -N> If the **DataManagerRequest.RequiresCounts** value is **true**, then the Read/ReadAsync return value must be of **DataResult** with properties **Result** whose value is a collection of records and **Count** whose value is the total number of records. If the **DataManagerRequest.RequiresCounts** is **false**, then simply send the collection of records. -

    If the Read/ReadAsync method is not overridden in the custom adaptor then it will be handled by the default read handler. - -## Inject service into custom adaptor - -If you want to inject some of your service into Custom Adaptor and use the service, then you can achieve your requirement by using below way. - -Initially you need to add CustomAdaptor class as AddScoped in `Program.cs` file. - -```csharp -builder.Services.AddSingleton(); -builder.Services.AddScoped(); -builder.Services.AddScoped(); -``` - -The following sample code demonstrates injecting service into Custom Adaptor, - -```cshtml -@using Syncfusion.Blazor.Gantt; -@using Syncfusion.Blazor.Data; -@using Syncfusion.Blazor; - - - - - - - -@code{ - public static List GanttData { get; set; } - public static List gantt = new List(); - public class TaskData - { - public int? TaskID { get; set; } - public string TaskName { get; set; } - public DateTime StartDate { get; set; } - public DateTime EndDate { get; set; } - public int Progress { get; set; } - public int Duration { get; set; } - public int? ParentID { get; set; } - public TaskData() { } - } - public static List GetGantt() - { - if (gantt.Count == 0) - { - int root = -1; - for (var t = 1; t <= 8; t++) - { - string math = (60 % 3) == 0 ? "High" : (60 % 2) == 0 ? "Release Breaker" : "Critical"; - root++; - int rootItem = gantt.Count + root + 1; - gantt.Add(new TaskData() { TaskID = rootItem, TaskName = "Parent Task " + rootItem.ToString(), StartDate = new DateTime(2022, 06, 07), EndDate = new DateTime(2022, 08, 25), Progress = 70, ParentID = null, Duration = 20 }); - int parent = gantt.Count; - for (var c = 0; c < 3; c++) - { - root++; - string val = ((parent + c + 1) % 3 == 0) ? "Low" : "Critical"; - int parn = parent + c + 1; - int iD = gantt.Count + root + 1; - gantt.Add(new TaskData() { TaskID = iD, TaskName = "Child Task " + iD.ToString(), StartDate = new DateTime(2022, 06, 07), EndDate = new DateTime(2022, 08, 25), Progress = 30, ParentID = rootItem, Duration = 5 }); - if ((((parent + c + 1) % 3) == 0)) - { - int immParent = gantt.Count; - for (var s = 0; s <= 1; s++) - { - root++; - gantt.Add(new TaskData() { TaskID = gantt.Count + root + 1, TaskName = "Sub Task " + (gantt.Count + root + 1).ToString(), StartDate = new DateTime(2022, 06, 07), EndDate = new DateTime(2022, 08, 25), Progress = 50, ParentID = iD, Duration = 8 }); - } - } - } - } - } - return gantt; - } - - // Implementing custom adaptor by extending the DataAdaptor class. - public class CustomAdaptor : DataAdaptor - { - //Here, you can inject your service. - [Inject] - public TaskDataAccessLayer context { get; set; } = new TaskDataAccessLayer(); - // Performs data Read operation - public override object Read(DataManagerRequest dm, string key = null) - { - IEnumerable DataSource = GanttData; - if (dm.Search != null && dm.Search.Count > 0) - { - // Searching - DataSource = DataOperations.PerformSearching(DataSource, dm.Search); - } - if (dm.Sorted != null && dm.Sorted.Count > 0) - { - // Sorting - DataSource = DataOperations.PerformSorting(DataSource, dm.Sorted); - } - if (dm.Where != null && dm.Where.Count > 0) - { - // Filtering - if (dm.Where[0].Field != null && dm.Where[0].Field == "ParentID"){} - else - { - DataSource = DataOperations.PerformFiltering(DataSource, dm.Where, dm.Where[0].Operator); - } - } - int count = DataSource.Cast().Count(); - if (dm.Skip != 0) - { - //Paging - DataSource = DataOperations.PerformSkip(DataSource, dm.Skip); - } - if (dm.Take != 0) - { - DataSource = DataOperations.PerformTake(DataSource, dm.Take); - } - return dm.RequiresCounts ? new DataResult() { Result = DataSource, Count = count } : (object)DataSource; - } - } - protected override void OnInitialized() - { - GanttData = GetGantt().ToList(); - } -} -``` - -## CRUD operation - -The CRUD operations for the custom bounded data in the Gantt component can be implemented by overriding the following CRUD methods of the **DataAdaptor** abstract class, - -* **Insert/InsertAsync** -* **Remove/RemoveAsync** -* **Update/UpdateAsync** -* **BatchUpdate/BatchUpdateAsync** - -N> While using batch editing in Gantt, use BatchUpdate/BatchUpdateAsync method to handle the corresponding CRUD operation. - -The following sample code demonstrates implementing CRUD operations for the custom bounded data, - -```cshtml -@using Syncfusion.Blazor.Gantt; -@using Syncfusion.Blazor.Data; -@using Syncfusion.Blazor; - - - - - - - - - -@code{ - public static List GanttData { get; set; } - public static List gantt = new List(); - public static int index = 0; - - public void RowUpdatingHandler(GanttRowUpdatingEventArgs args) - { - index = args.Index; - } - - public class TaskData - { - public int? TaskID { get; set; } - public string TaskName { get; set; } - public DateTime StartDate { get; set; } - public DateTime EndDate { get; set; } - public int Progress { get; set; } - public int Duration { get; set; } - public int? ParentID { get; set; } - public TaskData() { } - } - - protected override void OnInitialized() - { - GanttData = GetGantt().ToList(); - } - public static List GetGantt() - { - if (gantt.Count == 0) - { - int root = -1; - for (var t = 1; t <= 8; t++) - { - string math = (42 % 3) == 0 ? "High" : (42 % 2) == 0 ? "Release Breaker" : "Critical"; - root++; - int rootItem = gantt.Count + root + 1; - gantt.Add(new TaskData() { TaskID = rootItem, TaskName = "Parent Task " + rootItem.ToString(), StartDate = new DateTime(2022, 06, 07), EndDate = new DateTime(2022, 08, 25), Progress = 70, ParentID = null, Duration = 20 }); - int parent = gantt.Count; - for (var c = 0; c < 3; c++) - { - root++; - string val = ((parent + c + 1) % 3 == 0) ? "Low" : "Critical"; - int parn = parent + c + 1; - int iD = gantt.Count + root + 1; - gantt.Add(new TaskData() { TaskID = iD, TaskName = "Child Task " + iD.ToString(), StartDate = new DateTime(2022, 06, 07), EndDate = new DateTime(2022, 08, 25), Progress = 30, ParentID = rootItem, Duration = 5 }); - if ((((parent + c + 1) % 3) == 0)) - { - int immParent = gantt.Count; - for (var s = 0; s <= 1; s++) - { - root++; - gantt.Add(new TaskData() { TaskID = gantt.Count + root + 1, TaskName = "Sub Task " + (gantt.Count + root + 1).ToString(), StartDate = new DateTime(2022, 06, 07), EndDate = new DateTime(2022, 08, 25), Progress = 50, ParentID = iD, Duration = 8 }); - } - } - } - } - } - return gantt; - } - - // Implementing custom adaptor by extending the DataAdaptor class. - public class CustomAdaptor : DataAdaptor - { - // Performs data Read operation. - public override object Read(DataManagerRequest dm, string key = null) - { - IEnumerable DataSource = GanttData; - if (dm.Search != null && dm.Search.Count > 0) - { - // Searching - DataSource = DataOperations.PerformSearching(DataSource, dm.Search); - } - if (dm.Sorted != null && dm.Sorted.Count > 0) - { - // Sorting - DataSource = DataOperations.PerformSorting(DataSource, dm.Sorted); - } - if (dm.Where != null && dm.Where.Count > 0) - { - // Filtering - if (dm.Where[0].Field != null && dm.Where[0].Field == "ParentID"){} - else - { - DataSource = DataOperations.PerformFiltering(DataSource, dm.Where, dm.Where[0].Operator); - } - } - int count = DataSource.Cast().Count(); - if (dm.Skip != 0) - { - //Paging - DataSource = DataOperations.PerformSkip(DataSource, dm.Skip); - } - if (dm.Take != 0) - { - DataSource = DataOperations.PerformTake(DataSource, dm.Take); - } - return dm.RequiresCounts ? new DataResult() { Result = DataSource, Count = count } : (object)DataSource; - } - public override object Insert(DataManager dm, object value, string key) - { - GanttData.Insert(index, value as TaskData); - return value; - } - - // Performs Remove operation. - public override object Remove(DataManager dm, object value, string keyField, string key) - { - GanttData.Remove(GanttData.Where(or => or.TaskID == int.Parse(value.ToString())).FirstOrDefault()); - return value; - } - - // Performs Update operation. - public override object Update(DataManager dm, object value, string keyField, string key) - { - var data = GanttData.Where(or => or.TaskID == (value as TaskData).TaskID).FirstOrDefault(); - if (data != null) - { - data.TaskID = (value as TaskData).TaskID; - data.TaskName = (value as TaskData).TaskName; - data.StartDate = (value as TaskData).StartDate; - data.EndDate = (value as TaskData).EndDate; - data.Duration = (value as TaskData).Duration; - data.Progress = (value as TaskData).Progress; - } - return value; - } - } -} -``` - -N>You can find the sample for custom adaptor [here](https://github.com/SyncfusionExamples/Gantt-Chart-Custom-Adaptor-sample-using-Blazor-server-application). - -N> You can refer to our [Blazor Gantt Chart](https://www.syncfusion.com/blazor-components/blazor-gantt-chart) feature tour page for its groundbreaking feature representations. You can also explore our [Blazor Gantt Chart example](https://blazor.syncfusion.com/demos/gantt-chart/default-functionalities?theme=bootstrap4) to know how to render and configure the Gantt. \ No newline at end of file diff --git a/blazor/gantt-chart/entity-framework.md b/blazor/gantt-chart/entity-framework.md deleted file mode 100644 index 8c8ecc6f71..0000000000 --- a/blazor/gantt-chart/entity-framework.md +++ /dev/null @@ -1,403 +0,0 @@ ---- -layout: post -title: Entity frameWork in Blazor Gantt Chart Component | Syncfusion -description: Checkout and learn here all about Entity frameWork in Syncfusion Blazor Gantt Chart component and more. -platform: Blazor -control: Gantt Chart -documentation: ug ---- - - -# Entity Framework in Blazor Gantt Chart Component - -You need to follow the below steps to consume data from the **Entity Framework** in the Gantt Chart component. - -**Step 1:** The first step is to create a SQL database in your Blazor project. Refer this [link](https://docs.microsoft.com/en-us/visualstudio/data-tools/create-a-sql-database-by-using-a-designer?view=vs-2019) to create SQL database. - -**Step 2:** Install the below packages for Entity Framework Support using NuGet or Package manager console using the below command. - -```bash -Install-Package Microsoft.EntityFrameworkCore.Tools - -Install-Package Microsoft.EntityFrameworkCore.SqlServer - -``` - -**Step 3:** Create a model class `GanttDataDetails.cs` for the existing database file. - -```csharp - -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System; - -namespace MyBlazorApp.Data -{ - - public class GanttDataDetails - { - [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - [Key] - public int Id { get; set; } - public string Name { get; set; } - public DateTime? Sdate { get; set; } - public DateTime? Edate { get; set; } - public string Progress { get; set; } - public int? ParentId { get; set; } - public string Duration { get; set; } - public string ProjectName { get; set; } - public DateTime? BaselineStartDate { get; set; } - public DateTime? BaselineEndDate { get; set; } - public string Predecessor { get; set; } - public string Notes { get; set; } - public string TaskType { get; set; } - public List ResourceId { get; set; } - public string ProjectId { get; set; } - public bool? IsExpand { get; set; } - } -} - -``` - -**Step 4:** Create a DB Context class to connect to the Microsoft SQL Server database using the below command in Package Manager Console. - -```bash - -Server=(localdb)\\MSSQLLocalDB;Database=master;Integrated Security=True - -``` - -```csharp -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata; - -namespace GanttEF.Models -{ - public partial class masterContext : DbContext - { - public masterContext() - { - } - - public masterContext(DbContextOptions options) - : base(options) - { - } - - public virtual DbSet Table { get; set; } - - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) - { - if (!optionsBuilder.IsConfigured) - { - optionsBuilder.UseSqlServer("Server=(localdb)\\MSSQLLocalDB;Database=master;Integrated Security=True"); - } - } - - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder.Entity
    (entity => - { - entity.Property(e => e.Id).ValueGeneratedNever(); - - entity.Property(e => e.Edate).HasColumnType("datetime"); - - entity.Property(e => e.Name) - .HasMaxLength(10) - .IsFixedLength(); - - entity.Property(e => e.Progress) - .HasMaxLength(10) - .IsFixedLength(); - - entity.Property(e => e.Sdate).HasColumnType("datetime"); - }); - OnModelCreatingPartial(modelBuilder); - } - partial void OnModelCreatingPartial(ModelBuilder modelBuilder); - } -} -``` - -**Step 5:** Update the connection string in the appsettings.json file. - -```csharp - -"ConnectionStrings": { - "EmployeeDatabase": "Data Source=(LocalDB)\\\\MSSQLLocalDB;AttachDbFilename=\\\"D:\\client-side-gantt-chart-application-with-entity-framework\\Gantt_wasm_crud_sample1804339720\\Gantt_wasm_crud_sample\\Shared\\App_DataNORTHWND.MDF\\\";Integrated Security=True" - } - -``` - -The following sections will give details about the steps that need to be followed when working with server-side and client-side applications individually. You can also find samples attached at the end of each section for server-side applications and client-side applications. - -## Entity Framework in server-side application - -You need to follow the following steps when working with a server-side application. - -### Custom adaptor - -In Gantt Chart, you can fetch data from the SQL database using `Entity Framework` Data Model and update the changes on CRUD action to the server by using `DataManager` support. To communicate with the remote data, `CustomAdaptor` of DataManager property is used to call the server method. Learn know more about `CustomAdaptor` from [here](https://blazor.syncfusion.com/documentation/data/custom-binding). You can populate the datasource in Gantt from the SQL table using Entity Framework using **Read** method. Check the following code snippet to assign the data source to Gantt. - -```cshtml -@using GanttEF.Models -@using Syncfusion.Blazor.Gantt -@using Syncfusion.Blazor.Data -@using Syncfusion.Blazor - - - - - - - - - - - - - - - - - - - -@code { - // Implementing custom adaptor by extending the DataAdaptor class. - public class CustomAdaptor : DataAdaptor - { - masterContext db = new masterContext(); - // Performs data Read operation. - public override object Read(DataManagerRequest dm, string key = null) - { - IEnumerable DataSource = db.GanttData; - int count = DataSource.Cast().Count(); - return dm.RequiresCounts ? new DataResult() { Result = DataSource, Count = count } : (object)DataSource; - } - ...///// - - } -} -``` - -### Perform CRUD operation in custom adaptor - -All the CRUD operations in the Gantt Chart are done through DataManager. The DataManager has an option to bind all the CRUD related data in server-side. - -You can do CRUD operations over Gantt data and save the changes into the database. By using **BatchUpdate** method of DataManager, You can communicate with the controller method to update the data source by CRUD operation. In Gantt Chart, the CRUD actions on a task are dependent on other tasks. For example, if you edit the child record on the chart side, the corresponding parent item also will get affected and predecessor dependency task as well get affected. So, all the CRUD operations in Gantt Chart are considered to be batch editing, where you will get all the affected records as collection. - -This server method will be triggered for all the CRUD operations like adding, editing, and deleting actions. You can handle each operation separately inside this method with corresponding data received in this method argument. - -The following sample code explains you about, how to implement CRUD operations for the custom bounded data. - -```cshtml -@using GanttEF.Models -@using Syncfusion.Blazor.Gantt -@using Syncfusion.Blazor.Data -@using Syncfusion.Blazor - - - - - - - - - - - - - - - - - - -@code { - // Implementing custom adaptor by extending the DataAdaptor class. - public class CustomAdaptor : DataAdaptor - { - masterContext db = new masterContext(); - // Performs data Read operation. - public override object Read(DataManagerRequest dm, string key = null) - { - IEnumerable DataSource = db.GanttData; - int count = DataSource.Cast().Count(); - return dm.RequiresCounts ? new DataResult() { Result = DataSource, Count = count } : (object)DataSource; - } - - // Performs CRUD operation. - public override object BatchUpdate(DataManager dm, object changedRecords, object addedRecords, object deletedRecords, string keyField, string key, int? dropIndex) - { - List addRecord = addedRecords as List; - List changed = changedRecords as List; - List deleteRecord = deletedRecords as List; - if (changed != null) - { - for (var i = 0; i < changed.Count(); i++) - { - var value = changed[i]; - GanttData result = db.GanttData.Where(or => or.Id == value.Id).FirstOrDefault(); - result.Id = value.Id; - result.Name = value.Name; - result.Sdate = value.Sdate; - result.Edate = value.Edate; - result.Progress = value.Progress; - db.SaveChanges(); - } - } - if (deleteRecord != null) - { - for (var i = 0; i < deleteRecord.Count(); i++) - { - db.GanttData.Remove(db.GanttData.Where(or => or.Id == deleteRecord[i].Id).FirstOrDefault()); - db.SaveChanges(); - } - } - if (addRecord != null) - { - for (var i = 0; i < addRecord.Count(); i++) - { - db.GanttData.Add(addRecord[i] as GanttData); - db.SaveChanges(); - } - } - return (new { addedRecords = addRecord, changedRecords = changed, deletedRecords = deleteRecord }); - } - } -} -``` - -N>You can find the sample for server-side application using Entity Framework [here](https://github.com/SyncfusionExamples/Blazor-Gantt-Chart-with-Entity-framework). - -## Entity Framework in client-side application - -You need to follow the following steps when working with a client-side application. - -### Custom adaptor - -In Gantt Chart, you can fetch data from the SQL database using `Entity Framework` Data Model and update the changes on CRUD action to the server by using `DataManager` support. To communicate with the -remote data, `CustomAdaptor` of DataManager property is used to call the server method. You can know more about `CustomAdaptor` from [here](https://blazor.syncfusion.com/documentation/data/custom-binding). You can populate the datasource in Gantt from the SQL table using Entity Framework using **ReadAsync** method. Check the following code snippet to assign the data source to Gantt. - -```cshtml -@using MyBlazorApp.Shared.DataAccess -@using Syncfusion.Blazor.Gantt -@using Syncfusion.Blazor.Data -@using Syncfusion.Blazor -@using MyBlazorApp.Data - - - - - - - - - - - - - - - - - - - - - - -@code { - - // Performs data Read operation. - public override async Task ReadAsync(DataManagerRequest dm, string key = null) - - { - IEnumerable data = await http.GetJsonAsync>("api/GanttDataDetails") as IEnumerable; - - return dm.RequiresCounts ? new DataResult() { Result = data, Count = data.Count() } : (object)data; - } - ...///// -} - -``` - -### Perform CRUD operation in custom adaptor - -All the CRUD operations in the Gantt Chart are done through DataManager. The DataManager has an option to bind all the CRUD related data in server-side. - -The following sample code explains you about, how to implement CRUD operations for the custom bounded data. - -```csharp - -@using Newtonsoft.Json -@using MyBlazorApp.Data -@using Syncfusion.Blazor.Gantt -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.Data -@using Syncfusion.Blazor -@using MyBlazorApp.Shared.DataAccess -@inject HttpClient http - - -@inherits DataAdaptor - -@code { - - - // Performs data Read operation. - public override async Task ReadAsync(DataManagerRequest dm, string key = null) - - { - IEnumerable data = await http.GetJsonAsync>("api/GanttDataDetails") as IEnumerable; - - return dm.RequiresCounts ? new DataResult() { Result = data, Count = data.Count() } : (object)data; - } - - // Performs CRUD operation. - public override async Task BatchUpdateAsync(DataManager dm, object changedRecords, object addedRecords, object deletedRecords, string keyField, string key, int? dropIndex) - - { - - List addRecord = addedRecords as List; - List changed = changedRecords as List; - List deleteRecord = deletedRecords as List; - if (changed != null) - { - for (var i = 0; i < changed.Count(); i++) - { - - var value = changed[i]; - await http.SendJsonAsync(HttpMethod.Put, "/api/GanttDataDetails/" + changed[i].Id, changed[i] as GanttDataDetails); - } - } - if (deleteRecord != null) - { - for (var i = 0; i < deleteRecord.Count(); i++) - { - await http.DeleteAsync("api/GanttDataDetails/" + deleteRecord[i].Id); - } - } - if (addRecord != null) - { - - - for (var i = 0; i < addRecord.Count(); i++) - { - await http.SendJsonAsync(HttpMethod.Post, "/api/GanttDataDetails", addRecord[i] as GanttDataDetails); - } - } - return (new { addedRecords = addRecord, changedRecords = changed, deletedRecords = deleteRecord }); - } -} - -``` - -You can find the sample for client-side application using Entity Framework [here](https://github.com/SyncfusionExamples/Blazor-Gantt-Chart-Client-Side-Application-with-EF). \ No newline at end of file From e47abb62fe26b8a87d771cfc6f704f8b8489d424 Mon Sep 17 00:00:00 2001 From: JafarAli Date: Sun, 1 Mar 2026 23:16:13 +0530 Subject: [PATCH 15/49] 1003804: Modified the amazon provider documentation --- blazor/file-manager/amazon-S3-cloud-file-provider.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/file-manager/amazon-S3-cloud-file-provider.md b/blazor/file-manager/amazon-S3-cloud-file-provider.md index 57917e5bf6..53776344c7 100644 --- a/blazor/file-manager/amazon-S3-cloud-file-provider.md +++ b/blazor/file-manager/amazon-S3-cloud-file-provider.md @@ -78,7 +78,7 @@ We have enabled below list of features that can be performed using Amazon File S |Operation | Function | |---|---| | Upload |
    • [Directory upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_DirectoryUpload)
    • [Sequential upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_SequentialUpload)
    • [Chunk upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_ChunkSize)
    • [Auto upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_AutoUpload)
    • [Drag and drop upload](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.FileManager.FileManagerUploadSettings.html#Syncfusion_Blazor_FileManager_FileManagerUploadSettings_DropArea)
    | -| Access Control |
    • [Setting rules to files/folders](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Models/AmazonS3FileProvider.cs#L51)
    • [Supported rules](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Models/Base/AccessDetails.cs#L13)
    | +| Access Control |
    • [Setting rules to files/folders](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Models/AmazonS3FileProvider.cs#L62)
    • [Supported rules](https://github.com/SyncfusionExamples/amazon-s3-aspcore-file-provider/blob/master/Models/Base/AccessDetails.cs#L65)
    | Additionally, you can check out all the necessary file operation method details for this provider in the same GitHub repository. From d61fecc55530521b4268c37c84c868ae29e423a2 Mon Sep 17 00:00:00 2001 From: dhanushaSF4765 Date: Mon, 2 Mar 2026 16:52:53 +0530 Subject: [PATCH 16/49] 1011707: updated --- blazor/treegrid/paging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/treegrid/paging.md b/blazor/treegrid/paging.md index ec89dcd544..0d176e5132 100644 --- a/blazor/treegrid/paging.md +++ b/blazor/treegrid/paging.md @@ -326,7 +326,7 @@ namespace TreeGridComponent.Data { {% endtabs %} -{% previewsample "https://blazorplayground.syncfusion.com/embed/VXVfCMMTzAVvikyC?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5 %} +{% previewsample "https://blazorplayground.syncfusion.com/embed/rjLdDBLfVTTxAGqR?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ## Pager with page size dropdown From 3622459a2759703f9449e01a3841207c6218fb92 Mon Sep 17 00:00:00 2001 From: dhanushaSF4765 Date: Mon, 2 Mar 2026 16:53:46 +0530 Subject: [PATCH 17/49] 1011707: Update virtualization --- blazor/treegrid/virtualization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/treegrid/virtualization.md b/blazor/treegrid/virtualization.md index 271e3aae89..686fee3a18 100644 --- a/blazor/treegrid/virtualization.md +++ b/blazor/treegrid/virtualization.md @@ -335,7 +335,7 @@ By default, the TreeGrid renders twice as many records as the defined height per } ``` -{% previewsample "https://blazorplayground.syncfusion.com/embed/rDVqCBiKKxvhUzUo?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} +{% previewsample "https://blazorplayground.syncfusion.com/embed/LXVHXBLThJiOQFnr?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} N> When the OverscanCount is set to 5, five buffer rows are rendered on the first and last pages. In between pages, a total of ten buffer rows (five before and five after) are rendered around the visible rows. From c0309363ae65c3d244b3d5593743abad520b6cf9 Mon Sep 17 00:00:00 2001 From: Deepak Raj Sundar Date: Mon, 2 Mar 2026 17:50:04 +0530 Subject: [PATCH 18/49] Added the release notes MD file and corresponding node entry in the TOC.html file --- blazor-toc.html | 1 + blazor/Release-Notes/32.2.8.md | 94 ++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 blazor/Release-Notes/32.2.8.md diff --git a/blazor-toc.html b/blazor-toc.html index 06c3ae1e20..4f5510ecf9 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -5276,6 +5276,7 @@
    • Weekly Release
        +
      • 32.2.8
      • 32.2.7
      • 32.2.5
      • 32.2.4
      • diff --git a/blazor/Release-Notes/32.2.8.md b/blazor/Release-Notes/32.2.8.md new file mode 100644 index 0000000000..29365c2588 --- /dev/null +++ b/blazor/Release-Notes/32.2.8.md @@ -0,0 +1,94 @@ +--- +title: Essential Studio for Blazor Release Notes - v32.2.8 +description: Learn here about the controls in the Essential Studio for Blazor Weekly Release - Release Notes - v32.2.8 +platform: blazor +documentation: ug +--- + +# Essential Studio for Blazor - v32.2.8 Release Notes + +{% include release-info.html date="March 03, 2026" version="v32.2.8" passed="85275" failed="0" %} + +{% directory path: _includes/release-notes/v32.2.8 %} + +{% include {{file.url}} %} + +{% enddirectory %} + +## Test Results + +| Component Name | Test Cases | Passed | Failed | Remarks | +|---------------|------------|--------|--------|---------| +| 3DChart | 198 | 198 | 0 | All Passed | +| Accordion | 232 | 232 | 0 | All Passed | +| AiAssistView | 395 | 395 | 0 | All Passed | +| Appbar | 102 | 102 | 0 | All Passed | +| Autocomplete | 484 | 484 | 0 | All Passed | +| BarcodeGenerator | 440 | 440 | 0 | All Passed | +| Breadcrumb | 137 | 137 | 0 | All Passed | +| Bulletchart | 237 | 237 | 0 | All Passed | +| Button | 255 | 255 | 0 | All Passed | +| Calendar | 148 | 148 | 0 | All Passed | +| Carousel | 175 | 175 | 0 | All Passed | +| Charts | 5688 | 5688 | 0 | All Passed | +| ChatUI | 148 | 148 | 0 | All Passed | +| Chips | 214 | 214 | 0 | All Passed | +| CircularGauge | 1011 | 1011 | 0 | All Passed | +| ColorPicker | 114 | 114 | 0 | All Passed | +| ComboBox | 332 | 332 | 0 | All Passed | +| DashboardLayout | 259 | 259 | 0 | All Passed | +| DataForm | 547 | 547 | 0 | All Passed | +| DataGrid | 10055 | 10055 | 0 | All Passed | +| DatePicker | 580 | 580 | 0 | All Passed | +| DateRangePicker | 366 | 366 | 0 | All Passed | +| DateTimePicker | 475 | 475 | 0 | All Passed | +| Diagram | 16459 | 16459 | 0 | All Passed | +| Dialog | 485 | 485 | 0 | All Passed | +| DropdownList | 638 | 638 | 0 | All Passed | +| Dropdowntree | 164 | 164 | 0 | All Passed | +| FileManager | 3109 | 3109 | 0 | All Passed | +| FileUpload | 330 | 330 | 0 | All Passed | +| FloatingActionButton | 128 | 128 | 0 | All Passed | +| Gantt | 5430 | 5430 | 0 | All Passed | +| HeatMap | 403 | 403 | 0 | All Passed | +| ImageEditor | 3610 | 3610 | 0 | All Passed | +| InPlaceEditor | 768 | 768 | 0 | All Passed | +| InputMask | 168 | 168 | 0 | All Passed | +| Kanban | 513 | 513 | 0 | All Passed | +| LinearGauge | 797 | 797 | 0 | All Passed | +| ListBox | 138 | 138 | 0 | All Passed | +| ListView | 442 | 442 | 0 | All Passed | +| Maps | 1581 | 1581 | 0 | All Passed | +| Mention | 153 | 153 | 0 | All Passed | +| Menu | 398 | 398 | 0 | All Passed | +| Message | 211 | 211 | 0 | All Passed | +| MultiselectDropdown | 515 | 515 | 0 | All Passed | +| NumericTextbox | 464 | 464 | 0 | All Passed | +| OtpInput | 123 | 123 | 0 | All Passed | +| PivotTable | 1527 | 1527 | 0 | All Passed | +| ProgressBar | 199 | 199 | 0 | All Passed | +| progressbutton | 101 | 101 | 0 | All Passed | +| QueryBuilder | 585 | 585 | 0 | All Passed | +| RangeNavigator | 196 | 196 | 0 | All Passed | +| Rating | 106 | 106 | 0 | All Passed | +| Ribbon | 542 | 542 | 0 | All Passed | +| RichTextEditor | 2422 | 2422 | 0 | All Passed | +| Scheduler | 6372 | 6372 | 0 | All Passed | +| Sidebar | 150 | 150 | 0 | All Passed | +| Slider | 272 | 272 | 0 | All Passed | +| SmithChart | 259 | 259 | 0 | All Passed | +| SparklineChart | 150 | 150 | 0 | All Passed | +| SpeedDial | 353 | 353 | 0 | All Passed | +| Splitter | 190 | 190 | 0 | All Passed | +| Stepper | 218 | 218 | 0 | All Passed | +| StockChart | 350 | 350 | 0 | All Passed | +| Tabs | 951 | 951 | 0 | All Passed | +| TextArea | 126 | 126 | 0 | All Passed | +| Textbox | 678 | 678 | 0 | All Passed | +| Timeline | 182 | 182 | 0 | All Passed | +| TimePicker | 420 | 420 | 0 | All Passed | +| Toast | 234 | 234 | 0 | All Passed | +| Toolbar | 235 | 235 | 0 | All Passed | +| TreeGrid | 6705 | 6705 | 0 | All Passed | +| TreeMap | 767 | 767 | 0 | All Passed | +| TreeView | 1366 | 1366 | 0 | All Passed | \ No newline at end of file From d1f840f568c6e40cd62fc792b239fad7df689ac7 Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Tue, 3 Mar 2026 12:03:53 +0530 Subject: [PATCH 19/49] Add the MinimalAPI documentation files --- blazor-toc.html | 1 + .../images/blazor-minimalAPI-frontend.png | Bin 0 -> 83864 bytes blazor/scheduler/minimalapi.md | 663 ++++++++++++++++++ 3 files changed, 664 insertions(+) create mode 100644 blazor/scheduler/images/blazor-minimalAPI-frontend.png create mode 100644 blazor/scheduler/minimalapi.md diff --git a/blazor-toc.html b/blazor-toc.html index 4a0246217b..435dec54f7 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -4501,6 +4501,7 @@
      • Scheduler Integrations
      • CRUD Actions
      • diff --git a/blazor/scheduler/images/blazor-minimalAPI-frontend.png b/blazor/scheduler/images/blazor-minimalAPI-frontend.png new file mode 100644 index 0000000000000000000000000000000000000000..f5438848abc70212edcf2b2c7c65a5d04ef73c21 GIT binary patch literal 83864 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 literal 0 HcmV?d00001 diff --git a/blazor/scheduler/minimalapi.md b/blazor/scheduler/minimalapi.md new file mode 100644 index 0000000000..809ce16309 --- /dev/null +++ b/blazor/scheduler/minimalapi.md @@ -0,0 +1,663 @@ +--- +layout: post +title: Minimal API Data Binding in Blazor Scheduler Component | Syncfusion +description: Learn about consuming data from ASP.NET Core Minimal API and binding it to Syncfusion Blazor Scheduler Component, and performing CRUD operations. +platform: Blazor +control: Scheduler +documentation: ug +--- + +# Connecting ASP.NET Core Minimal API to Scheduler Component + +The Syncfusion® Blazor Scheduler component supports binding data from ASP.NET Core [Minimal API](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis) endpoints hosted within the same application. This approach enables seamless integration of appointment data with full CRUD (Create, Read, Update, Delete) functionality without requiring a separate backend project. + +This documentation explains how to create a Blazor Server application that hosts Minimal API endpoints in the same project, enabling the Scheduler component to perform CRUD operations on in-memory appointment data through RESTful HTTP requests. + +## Prerequisites + +Install the following software and packages before starting the process: + +| Software/Package | Version | Purpose | +|-----------------|---------|---------| +| Visual Studio 2026 | 18.0 or later | Development IDE with Blazor workload | +| .NET SDK | net10.0 or compatible | Runtime and build tools | +| Syncfusion.Blazor.Schedule | Latest Version | Scheduler component | +| Syncfusion.Blazor.Themes | Latest Version | Styling for Scheduler | + +## Binding data from Minimal API endpoints + +This section explains how to create an ASP.NET Core Minimal API backend within a Blazor Server application and bind appointment data to the Syncfusion® Blazor Scheduler component. The following steps demonstrate the actual project creation flow. + +### Step 1: Create a Blazor Web App + +Create a **Blazor Web App** using Visual Studio 2026 or .NET CLI. + +**Using Visual Studio 2026:** +1. Open Visual Studio 2026 +2. Click **Create a new project** +3. Search for **Blazor Web App** template +4. Configure project name as **BlazorSchedulerApp** +5. Select **.NET 10.0** as the target framework +6. Set **Interactive render mode** to **Server** +7. Set **Interactivity location** to **Per page/component** +8. Click **Create** + +**Using .NET CLI:** +```bash +dotnet new blazor -n BlazorSchedulerApp --interactivity Server +cd BlazorSchedulerApp +``` + +> Configure the Interactive render mode to **InteractiveServer** during project creation as the Scheduler requires interactivity for CRUD operations. + +### Step 2: Install Required NuGet Packages + +Install the Syncfusion Blazor packages using the .NET CLI: + +**Using .NET CLI:** +```bash +dotnet add package Syncfusion.Blazor.Schedule +dotnet add package Syncfusion.Blazor.Themes +``` +The installed packages are reflected in the `BlazorSchedulerApp.csproj` file: + +```xml + + + + +``` +> After installing packages, build the project to ensure all dependencies are restored correctly: `dotnet build` + +## Step 3: Add Import Namespaces + +Open the **Components/_Imports.razor** file and import the `Syncfusion.Blazor` and `Syncfusion.Blazor.Schedule` namespaces. + +{% tabs %} +{% highlight razor tabtitle="Components/_Imports.razor" %} + +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Schedule + +{% endhighlight %} +{% endtabs %} + + +## Step 4: Add stylesheet and script resources + +The theme stylesheet and script can be accessed from NuGet through [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the `` section and the script reference at the end of the `` in the **/Components/App.razor** file as shown below: + +```html + + .... + + + + + .... + + +``` + +### Step 5: Create the Appointment Model + +Create a model class to represent scheduler appointments with all required properties. + +{% tabs %} +{% highlight csharp tabtitle="Models/AppointmentData.cs" %} + + namespace BlazorSchedulerApp.Models; + + public class AppointmentData + { + public int Id { get; set; } + public string Subject { get; set; } + public string Location { get; set; } = string.Empty; + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public string Description { get; set; } = string.Empty; + public bool IsAllDay { get; set; } + public string? RecurrenceRule { get; set; } + public int? RecurrenceID { get; set; } + public string? RecurrenceException { get; set; } + } +{% endhighlight %} +{% endtabs %} + +Open the **Components/_Imports.razor** file and import the `BlazorSchedulerApp.Models` namespaces. + +{% tabs %} +{% highlight razor tabtitle="Components/_Imports.razor" %} + +@using BlazorSchedulerApp.Models + +{% endhighlight %} +{% endtabs %} + +**Key Properties Explanation:** + +- **Id**: Primary key for the appointment (auto-generated by API) +- **Subject**: Title of the appointment +- **StartTime/EndTime**: Date and time range for the appointment +- **Location**: Where the appointment takes place +- **IsAllDay**: Flag for all-day events +- **RecurrenceRule**: Rule for recurring appointments (e.g., daily, weekly) +- **RecurrenceID**: Links recurring appointment instances +- **RecurrenceException**: Handles exceptions in recurring series + +> **Note**: All properties use default values to avoid null reference issues. The API will handle generating unique IDs for new appointments. + +### Step 6: Create the Appointment Service + +Implement a service layer to handle HTTP communication with the Minimal API endpoints. + +{% tabs %} +{% highlight csharp tabtitle="Services/AppointmentService.cs" %} + + using BlazorSchedulerApp.Models; + using System.Net.Http.Json; + + namespace BlazorSchedulerApp.Services; + + public class AppointmentService + { + private readonly HttpClient _httpClient; + + public AppointmentService(HttpClient httpClient) + { + _httpClient = httpClient; + } + + /// + /// Retrieves all appointments from the API + /// + public async Task> GetAppointmentsAsync() + { + try + { + var result = await _httpClient.GetFromJsonAsync>("/api/appointments"); + return result ?? new List(); + } + catch (Exception ex) + { + Console.WriteLine($"Error fetching appointments: {ex.Message}"); + return new List(); + } + } + + /// + /// Retrieves a single appointment by ID + /// + public async Task GetAppointmentByIdAsync(int id) + { + try + { + return await _httpClient.GetFromJsonAsync($"/api/appointments/{id}"); + } + catch (Exception ex) + { + Console.WriteLine($"Error fetching appointment: {ex.Message}"); + return null; + } + } + + /// + /// Creates a new appointment via the API + /// + public async Task CreateAppointmentAsync(AppointmentData appointment) + { + try + { + var response = await _httpClient.PostAsJsonAsync("/api/appointments", appointment); + if (response.IsSuccessStatusCode) + { + return await response.Content.ReadFromJsonAsync(); + } + return null; + } + catch (Exception ex) + { + Console.WriteLine($"Error creating appointment: {ex.Message}"); + return null; + } + } + + /// + /// Updates an existing appointment via the API + /// + public async Task UpdateAppointmentAsync(int id, AppointmentData appointment) + { + try + { + var response = await _httpClient.PutAsJsonAsync($"/api/appointments/{id}", appointment); + return response.IsSuccessStatusCode; + } + catch (Exception ex) + { + Console.WriteLine($"Error updating appointment: {ex.Message}"); + return false; + } + } + + /// + /// Deletes an appointment via the API + /// + public async Task DeleteAppointmentAsync(int id) + { + try + { + var response = await _httpClient.DeleteAsync($"/api/appointments/{id}"); + return response.IsSuccessStatusCode; + } + catch (Exception ex) + { + Console.WriteLine($"Error deleting appointment: {ex.Message}"); + return false; + } + } + } +{% endhighlight %} +{% endtabs %} + +Open the **Components/_Imports.razor** file and import the `BlazorSchedulerApp.Services` namespaces. + +{% tabs %} +{% highlight razor tabtitle="Components/_Imports.razor" %} + +@using BlazorSchedulerApp.Services + +{% endhighlight %} +{% endtabs %} + + +### Step 7: Configure Application Services + +The `Program.cs` file must be updated to register required services, including Syncfusion Blazor components, HttpClient, CORS, and Razor components.This section configures the foundational services used across the Scheduler application. + +{% tabs %} +{% highlight csharp tabtitle="Program.cs" %} + + using BlazorSchedulerApp.Components; + using BlazorSchedulerApp.Models; + using BlazorSchedulerApp.Services; + using Microsoft.AspNetCore.Components; + using Syncfusion.Blazor; + + var builder = WebApplication.CreateBuilder(args); + + // Add services to the container. + builder.Services.AddRazorComponents() + .AddInteractiveServerComponents(); + + // Add HttpClient for AppointmentService + builder.Services.AddScoped(sp => + { + var navigationManager = sp.GetRequiredService(); + return new HttpClient + { + BaseAddress = new Uri(navigationManager.BaseUri) + }; + }); + builder.Services.AddScoped(); + + // Add Syncfusion Blazor service + builder.Services.AddSyncfusionBlazor(); + + // Configure CORS + builder.Services.AddCors(options => + { + options.AddDefaultPolicy(policy => + { + policy.AllowAnyOrigin() + .AllowAnyMethod() + .AllowAnyHeader(); + }); + }); + + var app = builder.Build(); + + // In-memory data storage for appointments + var appointments = new List + { + new AppointmentData + { + Id = 1, + Subject = "Team Meeting", + Location = "Conference Room A", + StartTime = DateTime.Today.AddHours(10), + EndTime = DateTime.Today.AddHours(11), + Description = "Weekly team sync-up meeting" + }, + new AppointmentData + { + Id = 2, + Subject = "Client Presentation", + Location = "Boardroom", + StartTime = DateTime.Today.AddDays(1).AddHours(14), + EndTime = DateTime.Today.AddDays(1).AddHours(16), + Description = "Quarterly review with client" + }, + new AppointmentData + { + Id = 3, + Subject = "Project Planning", + Location = "Room 301", + StartTime = DateTime.Today.AddDays(2).AddHours(9), + EndTime = DateTime.Today.AddDays(2).AddHours(10).AddMinutes(30), + Description = "Planning session for new project" + } + }; + + // Configure the HTTP request pipeline. + if (!app.Environment.IsDevelopment()) + { + app.UseExceptionHandler("/Error", createScopeForErrors: true); + app.UseHsts(); + } + + app.UseHttpsRedirection(); + app.UseAntiforgery(); + app.UseCors(); + +{% endhighlight %} +{% endtabs %} + +### Step 8: Create Minimal API Endpoints + +Update `Program.cs` to define Minimal API endpoints for CRUD operations. + +{% tabs %} +{% highlight csharp tabtitle="Program.cs" %} + + // GET: Get all appointments + app.MapGet("/api/appointments", () => + { + return Results.Ok(appointments); + }) + .WithName("GetAppointments"); + + // GET: Get appointment by ID + app.MapGet("/api/appointments/{id}", (int id) => + { + var appointment = appointments.FirstOrDefault(a => a.Id == id); + return appointment is not null ? Results.Ok(appointment) : Results.NotFound(); + }) + .WithName("GetAppointmentById"); + + // POST: Create new appointment + app.MapPost("/api/appointments", (AppointmentData appointment) => + { + appointment.Id = appointments.Any() ? appointments.Max(a => a.Id) + 1 : 1; + appointments.Add(appointment); + return Results.Created($"/api/appointments/{appointment.Id}", appointment); + }) + .WithName("CreateAppointment"); + + // PUT: Update appointment + app.MapPut("/api/appointments/{id}", (int id, AppointmentData updatedAppointment) => + { + var appointment = appointments.FirstOrDefault(a => a.Id == id); + if (appointment is null) + return Results.NotFound(); + + appointment.Subject = updatedAppointment.Subject; + appointment.Location = updatedAppointment.Location; + appointment.StartTime = updatedAppointment.StartTime; + appointment.EndTime = updatedAppointment.EndTime; + appointment.Description = updatedAppointment.Description; + appointment.IsAllDay = updatedAppointment.IsAllDay; + appointment.RecurrenceRule = updatedAppointment.RecurrenceRule; + appointment.RecurrenceID = updatedAppointment.RecurrenceID; + appointment.RecurrenceException = updatedAppointment.RecurrenceException; + + return Results.Ok(appointment); + }) + .WithName("UpdateAppointment"); + + // DELETE: Delete appointment + app.MapDelete("/api/appointments/{id}", (int id) => + { + var appointment = appointments.FirstOrDefault(a => a.Id == id); + if (appointment is null) + return Results.NotFound(); + + appointments.Remove(appointment); + return Results.NoContent(); + }) + .WithName("DeleteAppointment"); + + // ============= End of Minimal API Endpoints ============= + + app.MapStaticAssets(); + app.MapRazorComponents() + .AddInteractiveServerRenderMode(); + + app.Run(); +{% endhighlight %} +{% endtabs %} + + + +**Minimal API Benefits:** + +- No controllers or routing configuration required +- Lightweight and performant +- Easy to understand and maintain +- Perfect for small APIs within the same application + + +### Step 9: Create the Scheduler Component + +Replace the contents of `Home.razor` with the following Blazor Scheduler component that provides full CRUD functionality. + +{% tabs %} +{% highlight razor tabtitle="Components/Pages/Home.razor" %} + + @page "/" + @rendermode InteractiveServer + @inject AppointmentService AppointmentService + + Appointment Scheduler + +
        + + + + + + + + + + + + + + + + + +
        + + @code { + private SfSchedule? ScheduleRef; + private DateTime CurrentDate = DateTime.Today; + private View CurrentView = View.Week; + private List Appointments = new(); + + protected override async Task OnInitializedAsync() + { + await LoadAppointments(); + } + + private async Task LoadAppointments() + { + Appointments = await AppointmentService.GetAppointmentsAsync(); + StateHasChanged(); + } + + private async Task OnActionBegin(ActionEventArgs args) + { + try + { + if (args.ActionType == ActionType.EventCreate && args.AddedRecords != null && args.AddedRecords.Any()) + { + foreach (var appointment in args.AddedRecords) + { + var created = await AppointmentService.CreateAppointmentAsync(appointment); + if (created != null) + { + // Update the appointment with the server-generated ID + appointment.Id = created.Id; + } + } + } + else if (args.ActionType == ActionType.EventChange && args.ChangedRecords != null && args.ChangedRecords.Any()) + { + foreach (var appointment in args.ChangedRecords) + { + await AppointmentService.UpdateAppointmentAsync(appointment.Id, appointment); + } + } + else if (args.ActionType == ActionType.EventRemove && args.DeletedRecords != null && args.DeletedRecords.Any()) + { + foreach (var appointment in args.DeletedRecords) + { + await AppointmentService.DeleteAppointmentAsync(appointment.Id); + } + } + } + catch (Exception ex) + { + Console.WriteLine($"Error in OnActionBegin: {ex.Message}"); + args.Cancel = true; + } + } + + } + +{% endhighlight %} +{% endtabs %} + +**Key Implementation Details:** + +- **@rendermode InteractiveServer**: Enables server-side interactivity required for CRUD operations +- **OnActionBegin**: Handles all CRUD operations by calling the AppointmentService +- **OnPopupOpen**: Sets default values when opening the appointment editor +- **Default Title Logic**: Automatically sets "Add Title" for appointments with empty subjects +- **Error Handling**: Cancels the operation if an error occurs to prevent data inconsistency + +**Why Use OnActionBegin?** + +The `OnActionBegin` event fires before any Scheduler action completes, allowing you to: +1. Intercept the operation and call your own API +2. Add custom validation and business logic +3. Handle errors gracefully +4. Control exactly when and how data is saved + + +### Step 10: Run the Application + +**Step 1: Build the Application** + +Ensure there are no compilation errors: + +```bash +dotnet build +``` + +**Step 2: Run the Application** + +Start the application: + +```bash +dotnet run +``` + +Or use watch mode for automatic reload during development: + +```bash +dotnet watch +``` + +**Step 3: Access the Scheduler** + +The application will start at `http://localhost:5175` (or the port configured in your `launchSettings.json`). + +Open your browser and navigate to: +``` +http://localhost:5175 +``` + + + +## Output Preview +![Frontend Preview](./images/blazor-minimalAPI-frontend.png) +*Image illustrating the Syncfusion Blazor Scheduler with Minimal API* + +## Complete Sample Repository + +A complete, working sample implementation is available in the [GitHub repository.](https://github.com/SyncfusionExamples/How-to-integrate-Syncfusion-Blazor-Scheduler-with-MinimalAPI) + +## Troubleshooting + +### JavaScript Errors: 'sfBlazor' is undefined + +**Issue**: Errors like `Could not find 'sfBlazor.Toolbar.initialize'` + +**Fix**: Add Syncfusion script in `App.razor` before ``: +```html + +``` + +### API Returns 404 Not Found + +**Issue**: API calls fail with 404 errors + +**Fix**: +- Ensure endpoints are defined **before** `app.MapRazorComponents()` in `Program.cs` +- Verify routes match (e.g., `/api/appointments`) +- Check browser console for actual URL + +### Service Injection Error + +**Issue**: `Cannot provide a value for property 'AppointmentService'` + +**Fix**: +- Register service in `Program.cs`: `builder.Services.AddScoped();` +- Add `@inject AppointmentService AppointmentService` in `Scheduler.razor` +- Rebuild project + +### Theme Not Applying + +**Issue**: Scheduler looks unstyled + +**Fix**: +- Verify theme CSS in `App.razor`: `_content/Syncfusion.Blazor.Themes/tailwind3.css` +- Clear browser cache +- Check Syncfusion.Blazor.Themes package is installed + +### Duplicate Appointments Created + +**Issue**: Creating one appointment makes multiple copies + +**Fix**: +- Remove duplicate `OnActionBegin` handlers +- Don't call `LoadAppointments()` inside `OnActionBegin` +- Let Scheduler manage the appointments list + +### Navigation Controls Don't Work + +**Issue**: View switching buttons unresponsive + +**Fix**: +- Check `@bind-CurrentView` and `@bind-SelectedDate` are set +- Don't cancel navigation actions in `OnActionBegin` +- Verify Syncfusion script is loaded + +To learn more about the functionality of the Schedule component, refer to the [documentation](https://blazor.syncfusion.com/documentation/scheduler/getting-started). From 7e19c5a96aecce1457e5312f1db6b2c0ea7f2567 Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Tue, 3 Mar 2026 12:16:18 +0530 Subject: [PATCH 20/49] Resolve the suggested changes --- blazor/scheduler/minimalapi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/scheduler/minimalapi.md b/blazor/scheduler/minimalapi.md index 809ce16309..80c8893528 100644 --- a/blazor/scheduler/minimalapi.md +++ b/blazor/scheduler/minimalapi.md @@ -660,4 +660,4 @@ A complete, working sample implementation is available in the [GitHub repository - Don't cancel navigation actions in `OnActionBegin` - Verify Syncfusion script is loaded -To learn more about the functionality of the Schedule component, refer to the [documentation](https://blazor.syncfusion.com/documentation/scheduler/getting-started). +To learn more about the functionality of the Schedule component, refer to the [documentation](https://blazor.syncfusion.com/documentation/scheduler/getting-started-with-server-app). From e5fec424449002268f025b96213a6051e6daff37 Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Tue, 3 Mar 2026 12:21:19 +0530 Subject: [PATCH 21/49] Change the getting started link --- blazor/scheduler/minimalapi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/scheduler/minimalapi.md b/blazor/scheduler/minimalapi.md index 80c8893528..809ce16309 100644 --- a/blazor/scheduler/minimalapi.md +++ b/blazor/scheduler/minimalapi.md @@ -660,4 +660,4 @@ A complete, working sample implementation is available in the [GitHub repository - Don't cancel navigation actions in `OnActionBegin` - Verify Syncfusion script is loaded -To learn more about the functionality of the Schedule component, refer to the [documentation](https://blazor.syncfusion.com/documentation/scheduler/getting-started-with-server-app). +To learn more about the functionality of the Schedule component, refer to the [documentation](https://blazor.syncfusion.com/documentation/scheduler/getting-started). From 8569847cb38ac6b317c1e3f93a97d42df2165b1b Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Tue, 3 Mar 2026 14:37:02 +0530 Subject: [PATCH 22/49] Add the PostgreSQL Documentation files --- blazor-toc.html | 1 + .../blazor-scheduler-postgresql-database.png | Bin 0 -> 59629 bytes .../blazor-scheduler-postgresql-frontend.png | Bin 0 -> 52964 bytes blazor/scheduler/postgresql.md | 1080 +++++++++++++++++ 4 files changed, 1081 insertions(+) create mode 100644 blazor/scheduler/images/blazor-scheduler-postgresql-database.png create mode 100644 blazor/scheduler/images/blazor-scheduler-postgresql-frontend.png create mode 100644 blazor/scheduler/postgresql.md diff --git a/blazor-toc.html b/blazor-toc.html index 435dec54f7..70ab0b046c 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -4502,6 +4502,7 @@
      • CRUD Actions
      • diff --git a/blazor/scheduler/images/blazor-scheduler-postgresql-database.png b/blazor/scheduler/images/blazor-scheduler-postgresql-database.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9ea3eb4f3c1c29fae76aa3d695b0eeda6d4768 GIT binary patch literal 59629 zcmeFZcT`jP_xFqAs3VRrDu{r91*C&grK<=?hZIU^N|n&0H-WJ-B1J>*HH0J-=^bo< zfb@jWQRxXCLNE7oocaCk_de@+*0XN;=dLwb%O$XK&PmQ^fA)UwefDd=GSJgF&B(#X zz`$@?^WI$;1H&;m1H&)3e>)ETqHW8!3;sLe3Dda4P}q5K4*c?~!)@K$3=G9lr}iEk z1HYeqbkEe2fr050^zTTETb?Zg!|YSdySEX3mh+?je!7%{mKFWuns?7$xzQ4nz{-lx zc*$6hB``!~CO<(3mY0PY#a4J3cxA|&Q#UN@V~o0M@{$~SGN$End2{cceQWq~oJTV< zCG|O%1b&m|-?{c~Lta66W`1(=aVKirE;=nOO$>Yt28P97@Oa0XU?nxYqhm>N`P*n! z!NH*+j@ly(1_FLfM}EGCf#KY5@PB@M|LaG@KYzUb=`d_{^m-pH= z^xoDAhw|g99}^Q1p+C>4_U&V=iPBF0CdYP%#6;%V3Dg}-+P2>l=wBfpFFW(m_ZA)3 zl$4Z42NIIky&Q)>^zEQqjZ%M)is{9+O<71+4IiZr<`z4;uBr>j$QT{&&8SRKspz^>;CuZUXl`Kera7G5#yO7nG>@`*(C&t`%#0Zt zom6P0Z-_=EIXk;dP8w)cR7_8wY~s7-6!7hQ!D!H(9?Dr;C#S3F1nz)>&1dMosyOGx zrCM+p9bNtSh6C?p%k=H!!e&0l`wmw1y~J|!R4#f? z2*q)JQ#dvSgRUDM?;WcTBomFr3rvdd)CbUeNq9K9At-Qvv+)o)-Vnrk{=9u%`}ou7 z=;(v(t`PLW-u5;lY+_U2%%shqN-Q5=}fA~m?86IwV zygI1df44^sbR2oF$I(++P>9Q+(u+d+@(&lTk6{fW_Use6gJ^*kRcDHHQ6?P;c~g{m7#wK?3Cx`~kJ%8IImJ zq(mJU(Rjk6n0+Q_nEIlS`QcdALBNKgO2M$_oi)nhjj;tcetCIR^fg^fZEbCwm<2&I z`Wjw8T{%g{B`J7sMMF(Z&GEu+I!XoTzIJ>0O{r3#VjvZrXHvRS3F}!LhlYgi3(MN8=VU!HBm-xB4 zUX17oMBA7iI1=vI0*kYek?G9{4VtoOQWbs{iBkRmS$jF>LBz(z$~0`^Fuz-7yv_Ph zI2JAKoXhQJ_wxAT_2|e@b(6@V-{rH;i|bNSSQVtdWv8#dZ$03*X$)89v*3zA;d&;MBh|4)TCWUOz2c{pG}lf?!s`TS%ZUJVE%a#lZ--(+BOQsSUX-Uwy3BGT=U@^zb3z4 ziUF;^fd1hGk4gDaX!TK+mX^)A)@eil3 zH57H25MCRyFFk8Sl^{helM2CUyyWEdMq3Wr2?vgMdcA|{y^^^DCKSs39BZKeb$9)< z&teMAc5F>cw*TbjRx*PQ`}6G~3Da@Hw(w25G$$v%Hsolm=tNGz2|cqRRq>YDf{;Rk zWaCDo*YUZu?>(iS`y6H)>98($6_e)O1vdp(Cpx-6yyS*W^CU;!abScYhX*kG`@b+$ z3(o&E!nei~UW!t8q=l=AK6btn52|C`d-uHwRM@(7YS+x_b4j-B^;Nbf^1gEFMH{Z! zH}<(<)~nw2>;4%`snrk3z8kBlS~?Ad4CC^vg;YG#W+3gcZ9Y><&HXt~c6+eGC3$3Igp{RrYT~kH?=xoQys|PWE;*0SezUnS7);8smp5p4p)z1P(Lu^{ zTBqD~6m?Z2lBBP)Z%g)_YKujc*uJXqrsbaC_PaG&>uZca#2oCc>1(GaBwSb+tu^jQ zl5RhsIrHd-n4#b z2Vio*=EPey2FrU+hc`#@6yf1G!sG2#4hh@8j0#Y8bZ=l$xxkyWe)^{l!pL}nCeB&(yg=kAxg zQAIUT75i_-lFIL-*|k5M|C3=q+t?|!`U3VrU%bgLNKN_k0j4T$1Gs5#0s)!LQBqpo zC)?;kX<6$hf`}2YnWz`A@%H=8t<0T`u#(<>jd8NR*`?4Z-=?5W3W)ZtxS7+9jkRJl3A6V6|*eXEFKhx;k zYsK$cv~CW3Qb}d)nKQQaR^uVmr z{-~AFzJkpDJX6}6ViRL-r@gN5Z_5dRD&M~>0H@|%NaGO;K@usx26b6S&2W~i5S69zj z9qz=Z1@AZlzou;!vR}Tpw@m| zS%lZv&*u`|UnN!AM^TN|Nb#Qn^7LzWrDlO~0a@ZDdfBwmMZtE?thx2J6%#G9=%q^G zgQ!YFb8E~~rc@*)jxO#0P!@`TmUCoOmogQXJtO91_2pP~j1OXJwa`PvPF%r^6Dcy2 zRbrRIs~M8|8zpWZCzavp8Nu~Oh9$F1|G<$W9KH3}3a*<4&jzoZi}iNz4W|S+c3%~h zdRJQ1thoOM*4tY)u^h4aW!rrNR%SgBjmR`_&TUKHOveBxeT{j6a678ZAl+wkF8f0i z!Ma*vXME$6mZmP;+9S+fd>jw+sn|hpMHGK!-_Jo$NwBwvkNkq1@K$@ncuBT-ob?5r z!>j!|Ie#mMwk?zrB)F5b5o-R%Y9CE7oof~!M5oyyOFjHk<$179CpF_XLX-U4Ka6#* zh5$)NfOo)aqh1IJ$=n99d_&a%QEbjGop0LOTXgfHifco&PC!6Se}Nf}N+uF@lV#$3 z0s{jfzc$mAUO7Y}IQHcdj0%#b4uK$t+||bXVD|FzBhB9QkOM&tjTS|RZu?iSUKtiy z)=y4ML{G?g%^KMF3P(mp3RyMOb*8HnNjh|z4DD_#5P>B?`od_x^b|8Q1sspxSQs|b zt@rWvMy4wVc~MD%TuK3?-o+n3vcM;5zc$>TRA5#a_xkl~ut5bh!~XiK8&ZfRcG|JR z#+|*)zQ!B`iT6`ab>wBfU3d(Su`BsZGZvH6E6bz|eAci^toj?3`n_Fno? zoH%tJE8y*FNI|ph?2v^Y_O4lwYI-8bA!Okg_&$|Y!WrZTYP}b5Iv%16dBA08 zC$odw{RGaoKBrGZ0{Jw$N7Kd}_t_v9@hIbR$B-gH?Kfj#gA!O)&h(tmleDlpj-ofq z_oRt%WdEY}VC&$G%~lip3rEQ#g~AM93I(j5F^cGT`-ouM27`;o+nR)nf&a*v zQjkDr*^hERUZ7npH}V8>yvRovEi83KJ+#ZRBZfgtg*!VtA&~@v z-q(wj@siZue(FyDMWyA{-ysPzwjb{;SXyTu*>J4|<`b7lFm0=qCk7IagD7ZEPD@QK zh;Vjs+qV=@o~wDOV`l5mytujQrKI4WdBysNl9uM@nWg1K?Ev?oE7~0-rlJrB zBxVVQ$Ol&=+VlAmm#Z%M`TIKpmlkJHh0{sIOw|0s!1@V_C5S);Gr71D<4N+CV*HAg z_Pw}>h=}jB$j-DVD+i1winKm+T#tI>|T!zXFDTNlEBd*d!B!)`DXM@Dlu_sH7I#ONQ zpKqG&I$Gm6`Q>e#E@4$zRCFQkLB51Tv+~A(jlBDh=XdVhDFe|7Ni>S!JAiiMnObu4 z0EU36eGNHV?Q6=!jgC6{ZfEuokH^@6s1*hdqi@W|Ce;d=1Sv@MWHG1ptm<2K&*FF_ zd_-lKu=DF9*}+CjjUkU`91GH95X`%y2^Y#1zOkR)cYfQ;7jz>(G%jTIX>hPx1~p*H za-%QL4`ba~8NQflKhv4& zR_$ExJXnJ6%Z-2>r^>;WDo7<>1h3@eOj`QfIPw6!h$~R*66r2R*xnVVigr#MMR-Gg~6i|v@yqU z*pBY}Le*K$BDUPU{O?x#Nj4Y*ppdBZW-YLq!mL`NmO@-_`LDF#xjEP**{|s{AFABJ zcXFO@L5@2YCoj|Y##Izqim4Tf_eGjIcm|r1@(_B0ct@>!HLm2e6bwigC@~2s*5qJ? ze=xD!uZ1i@YjAWno^Fy_%i`iau3%SJ7%q)C zG7_lO>(t%Rr==+)16!)toD0w*9Fz(TP~$;3lJcdyzDS8e7$5Fno}l*7nx^p+tt-IP8SnndX>Jn%{g8K92-a} zac|!IQD9!(i#D1Davh|i&gfiwprL@%l5*-7fotzAk>>hvJ>76#+%g}Wm>9etF0UjT?VSeBOP%e>7Fjs~ zR*>=Sjjuw5vc;93ItDc%&E2(folD-cm1+`DQzkz76x1Z}`Pz=;!ui6mDf2RqnKQ)A z#>+ET>Fb{l(fx<3OlvT>q|p#IcQnr|DNT$^wz@Rvb&Vw?G0Ow>Ov=SaJ#Gb!CliBw zZ+gn8z+inbNpbdgK4H7(t#6Ip^6%tNE@mB<7NWk#zcyO>K5@24_}bz${lOY$*xN2Y z6a71aVQ-&3MmP>nXrD7AGqV0%Wc|<0t zL^*;ghnAL};q26f4zp4XtHT=I4Idx$U`CDJOAYjBS~TNBOMc4Kubq)hsCrrgunnoI z-J`2`l%M3e)RYv`y9cVrjvuEs9_|-?{P>ZDlat63vS%30uW$5%k#!veHX=xyVD`Gb z9m%pzK*N?)R#K`xXV&L%>C`BdgE#f{^#PlU1!1hh1oa4xp-Q*(;Dc=k5Tyh_=p3$e zqnNqXV?o|8bm`J9s4`IY@Ga0t1PyNg&o`y2tEwKZO?SxqE~cb~9BiA3^^KQ1#Xo)a zOw{JOJg5nP!a^>$QoxttVKYjR6{Wn zKY8w29ymp>XtSe}6EP-+1sF68n0~Lecs;L!g9A|+7#;&-^Y>4otQRiiWn^5ks1G2Q z{92ng{y7(iGi!S`I56;KtaC9gS_l*{5k&#VTt}io1VnYUZDNk3Y3DUFibW zp^Cd^T;nLuMy$4@Ml291P07p;DaF@8h@R`po{{qYpdMRNNlw7=U`lNSMaSLmV%AM) zFFgce4XFj;(a&V&Pxov*bMTtBj`?_{h+3L1i(Xhfrxl++Mp-;nouSn7DOOC7k58AZ z*iJybC}ETfQPY;;>7JT(ssZkf&x{GZNU%T;=Tz+Yq6>kWK-JJQgkn4m<4?Hi+^Ghe z0BgofNHadRE&DadqoeccjMwtInm64oLr50iNcg%|Fz9VQ%#_woCm}>Z{?P|aIB(!r zq`*v83raQyRGpDtzCEj4q4bvYme{1YTwuWusZUQcM%4**mDuHTr<+xq-uy8=o!bz! zi;CNoMU!UZ_*NM9f?{GQml6{b310{C;+xI|;-T~yGj@%A-wsz@t1`6~)vLA+4#GgG zmvsFOpLi(L zqI2H^Xmg?KsHGFStX+kstrihzBy4I`>_yFI6>X3*vVdg;F?^0<6+-^<_9~rL)F=e1 zV?YWb6D4HBVrpw@&_JsY;J8TT{dIW#TBm}Cr)PU{aSRX{4f`8rN}D5|sD{VYmO*r6 zM~WO=DR6^SIUXF?ZgM1HTC_wAuroo;54u4BxFFf3s80opp%WILA8XOZwgo0 zTYg3`E^?jQ{P9}64HPGq8V?(OIeL^&GlE09_v4FG$WnVLoATGAus1^CP}v=$-7{PrGHv;cMmIH-wCCxNE|u zcXybrX0HS)aOyITWG%%nkw8L0sxj1^5Ofoy?OR(?kQ?j-)1V_GW?CPe-ssjON>BR# zrLEH+czB@7x%o2BB6=v`uv%l%zT~{l?P`wrJT{e62q1QJ0~)k5U6j2g=jK3>&kH{m zxTFNMnXc92l@}aR5AV+#IdqdO*ZRJyFT5s0filBi6$(C@qY7Tw!lhyk;~OV%f0e67vR>Yzr| zA9A>BMb0x+#cIdP_y~G|(=jqJ83C(WO1vbkq+|iKtub)gP`zN{0pzP*d@*Tcs)E}e zg_Z7u&BZ$7)XmkQBdVv-WznBoe;HNvpr}qLhWzz=R6EwIr!!3Sq?l!0UIeEs8az+Y z($yt1tL$a8#R_xQ?ib|b<_g`sY0`LjPz!1yIbe%eJUhWG;{(;k4E}uj^l85RF}s!3 z)!yarpI$rr{2>WH@@)(bvwY?y8;UPIWXmyae}?EHK2_#koz=ElxxX-k^;vL&|G;Ze={cU^ z&mW(KnV{dmE8$iG^Z*ZfUHjwj_kjH9BzV`~ulv6|5c=oG|9tDf7Sq1O=zw2Q9w_bE z@u;{tLkr3fWAJ}INaK)ndcl;^kmq!=wb}Jg8Ql;ykZFW>Fg(&oNc`_h4x}h@1$TA+ z{orgQ$e96d-q1|>E|6hx$4)N1XIQ;TQ# zGwZ|u+pqG!`_}i*amL5EI`1jCyZc<1VI`1G?Ut?ZD0r_t4#Rd7-rfbCVA@&|V!Isu(B}JI>j#>LszEQM?tD7d+Q^4}DY9rIHEGI^hn! zQ^s$=ME(c6cWPI>49X7QST$hO7dAsHQ6aQOq;j7~vOaz3#6iKh${@bLp;s3f3Z(vvzO8>h0%Ez7)Qg`(`X$?!9qYjh}-#P6W??K&mMm_V)2k!N7SH^aX=k z)KV>YvJo~jXBU@+r|8<-tEkPu=EJTKvQ}e^c#)k|>J6WcKUT}*V#SNBxc5*q5iMGT zPl2p1&b6m!8qruQOH&tTF?U9<6uGn|GRnB2E?7_n5gHNn^I_(#SMW;@&|Y5o_WKUS zxrb}~3krT8{i^P2pB}||GmG~$xQPoL+)?*Sy7<`8VcfK6-09HR%=a_O}GIA3?JT#rV55X3Zxd zgJNJD=L*HYKCHAnG~H6+{dCpfSK5phlAZrNE7#*RGN$M{Zi|&4x*k*UA z^78`dklMGq6IlVl2Q6wRGoQIgVp>KZQ(GjzwVwSI33C2w+CRioOH zas}iJJs!1L&Pb{C5GhXW&$DZ)uIk}S;-6XZk@u^JD5d$!wa!X>g3?~N17qKMv1ru?6vW*}7#QCmS%|20_^_y=NE#-$doy*%I`P2#VgYIP zW)rvOTU+s&-S#hHo-c70v1qh>Hj!iG_J05A?8oa)l<1wT=#{_x@oY?v6Dk#RKdM>y z_F1zhSv05GzDTd#DB*DUp|%j{fQ?L9HkgP?))GD>^)#`ul!Fh8F}I=-T9n;unDW~za&m3u8bQ*BH*cM$+CDEWHZyV>eJ%+*$}E@m8+;%*5E+QW5^&FF zzk#=l8f%_zm?Ic*c`D;7Jr0OQL#t_stA3$-^`+GC#oCp_`8y5$5{*2_8-Af^5jU*p zskBzp*Xx^^JJ?3A@mTkoo%^1t<@v`#?rfTN{GpVcaUz-4+ZRa6UesVO*OinDdZ(de z+0H)A9gMAG5~*7`Oxc&{^q+9Dr&b#12k*Y~PPR)aMJz(s9g7%D;a)2e_|`MO?;0+O z%U^OT?~h&L@30b}FX6uAuXrD($8AR#XRXx13MV>xaPM0Z`E2Um$}VJc?u$e{m`+HZ zUQMtcy56SoEdE}^_*llcWxlK8?+gr&x-#vB7&2~-4j0|ru$vt0g!^DH4sN~F8#M39 zTSlpRfvRtka+ci=iSIRhgdc09z!tcszQtrse!I@~cv7Rl^1MGMT?s7v=hs8Bdnfjn z@TxTzQgRT18gj-J#?-kBFQQCyW35sUB`}tdt*2SOpKXuhF)>+Njrp|7YmmOLA9EJ}>{AGdn#nKu6rry%$ahU}BR*(|G|9iPC9DYxgNbVhSqJ5a1qbRl7`F)0 z?}T?USrrsq)fbY#qK4P_==Eq)@5QM4gKi=3WG%E%W&XD^OUWrD{*ukBLrKDSQRLjg zSKYWB@!lt^`#C&Cwqm8@*&L_Y=5C33%bXi`Dzpj?k|-T#RgybA$=5&`F({SJ)|+_} z6it#Lj>oHbGrfY^6$`u3nkr&jOa_hc`{ zE5lqm*F!p4)b>hHA;Fyda{hTAcvPjfc4!=a2f9kWRoQ5jzIz?%c)=69CFs2(inP?e z=xK9feI^Vk<1Ke&Ti$nh=r8pLDM^&p!+a95Xy;1{|AdU+E3ZeZs&R+RyHwi-Rc>vU zL7F&mUzlA|-9jb!PS>b)3cd%EnjV!@=!ZItU(QWaI85OVF37#e+f-=j<{!@C7HkS! zc;ScQqhxB61p9;a1Q*7xhBGEpNde0wPc+@Ond0u3n;oz}h?<(`}X4s;GJS7u1hKlV%;nQVXK^fu;67jorSYKjtthdNM~%{=x5z5vA%pso32e%~wl7 zwkPSGA<~v_1E3xKG|1%0hv><&cj?0`X;kMh|W4$ZrR`3;-DA5-jnV-prV+0!0i?-)z*nfxuZ z^dsD6FqHE=P?0td6h^MF=iX2+JJ z<4y;shFRa{g=ctA8LHv#p^>_=iqT%~EjLn!Jk)!{xP^>Od*`mdNdMAhkKDcq+-K_6 z4IMnDO?Uob`QCWuZEYpR$`&rs;l^?*N6CB+cpQe0rZp3ad8Ijsr}-s^f|EB4dR{07 zN3gtGJy}jg!3*^^Jo3yn)28OJF&9!T&Jt`jJB!K;*Np5Wxv$2f(TXK_#Ra|sWqc{F zRBf_caniC=lWA(6cd)&{Lbp0lzO_daW*vq(yQV@h8T&-K8hCF`Nk_@!S2X6%0Zu!# zG!!k3oB(Av^W{d)Qc<_&-5W?}0luVxi}(jc{JaZ&MBqh2w6aF)A zV_;xW_=wOf5ho6Hd6Bb2>IhGE6$pAQ;rAuBLtTb;+SRbRyh2pJ>7+HT(6X!dUl~=l zR~67I;NRI|iXSU}pytcQr+ZqyHk^0Y^oXgonhIyfHQ9bLPM^KMRLnutmvZ(Ap2;2) z3`BDDsY@$HEMQ=Tf*X%u>JbCixY^qeBnOcjF;1eIHMz5Ef|$XRIQ!kvmuu}Ih%AYt zRjcfkqDx%StL9WIgGj+n6V7k0zRqruExjJ?`9-KIiT2B1L++pk#D^(v*o-?tVt>mh z!>c;w)*!y3guX>xPSoxK%17jGvEYV>SF6qp6#-vZ(Iwx{`YzLC<;^keu(|y>rEkpA zM+_4~$Z>j+usqr}BrCNwYvPh1b5}L4<89aEgB|5c?`Av?%jP$L>#Pl?GbG z@IWY;8qrU%7!1JIr}F)(Ylsee(CQc5IS12><^J-UulT_`W440aA*{f`XLhv<&2CFn zUJcDKJs9lCWD)0jb9Xd{g6F+y%t7dSlL$}HDs^+aFdii^-`<*S(R^oNmaip0t!rSR z#q0Z1UVVKe0hzKEAURbnqQs-Uzow|67aC&0Yv<|}OP4NNj=z{}JT;TzE9N5qeZ5xF@m*!y9WD!A2vd)YrFpyA&Mf;ac zwLHv+8hKO`%w4Tt+}z!Z%^#`b6$E0gs5_EJ*0E3Jyd!Prg68&3T#zZ5YfvXm4@Si- zpaxxD`H0BnoTK^Dx_l3aP2Ow|=`Eow=?k=Bef4g08VH=G#Vz$Cx z&1`;>wDP9m=63Q+Tk(Z~xl^g;ajb>sWi^n2xmZGgCaMu0@;eHzB+LwwhS%$j%KWh+ z_>qJYh)M&e_N3_I&xa?Gtwyqv+Oajdo~G0g9f$prCB{Y+ZLe9l_&cw(RGQ5L72+rj z${kLe*W#XVBe@r>4)OXwe9NS`=Ye;Yfr6J-;2^X(P27Sk7rrkjpZ z5;nMP61}C&t=orddm|_E@R7t--i{VIu0>953n<9_Gat1skV6epf?QO zrJ;XS!LP-kQubK}-7?d@HuNClf=^B1IK34r>-fpPRg5j)3otoiTsYg1J5kOzEH|M% zkj>vH8fJ=58MRZA;9OP?m{p~WHno3`amUnlkzW#GJRH;Ha`do8!<2g15$@UsJONhMA_rOkp zANNvVO2T;RrwC-Nk(jgr9K%v5n{iSP)sotewj;-V3Ko_!si@VsZZzT+Za#Rp{n zd>sL=x1>%$h?&8Dx?>VP_5^G26+Jv~dwFnO?*J(b?sajtL_^Wl7B8Vf=`Y`%fL@TqK(D8?u}3jN*YNPj&Cv73{!rjZb+G*G{@x%`HxvIQ^csBOH>(E z-U`UYzHRx`LHc&U8D)pQoA6QZvmm)imCO-?Y@3s;xo}yILcnXKY1V8RC;Wh4obnIR zt(Ir+v>*lZ5Uh5V;1S=d(OacJ>oj6K(^Zme%4$V!j84?{R|ntr{lJdGK8Hgy7{+fX82zeZ~k``kN;;S zp?}Z%?;ZH}4*Yuu{=EbL-hqGbz`u9k-#hT{9r*VS{Cfxfe|iUGK!d|vv-;0WN-K** zlCo$_%OaIY4Gs)_Y0Zprc1h&_6_5oo{Q9Bi{_DBZC@g8_TnUN!4C}o#bb)Wg}L7whbzNSSnvHrwy@JMxX4_U&_?vA5UY7 zX-aeNpB!DK(?Lf~N0~zx_r!zOTU&mBjWkeJR!)+3id(tPH~{c8M3JRZN1|j4)WixJ zcmb#J5cIS*t5z=bVzoh^y#X3c;1vY@7kxN=%8#bkfGW|S13e-J085GmEytcSovi+O zju-#=xR#(-f|RKmYVP*r$&=>A$__+=kmf(#yb#XQe0rXDyoM|l(!qUt$M#95dANj6 zBg85MOivtx{?)`8Tz@h@HG8vuZ`-=Vs#fDP8qqy`NHJ7G$s+Fg zc{?uBm+cl*bjsK|B9u|*fg-o8=faTm{>HGImcG6$H-;BL1c=?uC0Uv5Kd`yE)bztW z91~YfJxxly`dG1^p5D%k${~JxZKj<}Mq*gFxC%hii!f;A1HICPplvVTW2y}g*cqtr zuf}&NZ6W_y%ly{g=Cb-@X{iV_%Lz+KNwpMQN@RjB{0C?0=$j5fnd4ExcV4wp=wpqC z0vLv6``$imqIMg;b7-eUn9LYG4M9K% zE({c_zJ2?)SrvRAid*A;?&r^U2L}h)nX~^;Q&>tj}rb=tyx3d4c{xW6)!tl9J*# z_OrW5`lzR(&ce%( z?4mg5@)+5HD%rcBqn#8q-zc(ge4NX$-MFFmBR!D*AK<8E$3~Dn-D#!QtKfHe%mUFi zM(?5Q9w+Ej_Gxd)zP`RNZ0yjLMvmlC2oGi9;2_Xx6k28|H;ha`Mud6;t^lygR-nBT z4p>cT>(9SgG(48;QU-tMgX=3{zkU1mc(dAPAt_fUF$*+hwzafq0L+S%BIg-{!B~@* zR;St_5}ce6yfeqYy|Y6FTPrRYa1BXHffZAaA>IMJrNDlcW4FwC5C+HTiLTo%f>z>y z$+sG14?Z2=KiFMr{v-!ly=Pl^LJ*-$T!4_t2G}WtZ;{HKC^^o2TrZipgfuziz4GLJ z=JP<)n`zt4-@$eT{sP*rs7luY0J5T2el)ED&=vFwV-@WqL1(5D0BQo}i(5pZw%f%U zQzrV-)@Hh#MylM=LuHPUEea|V?Pqy@B7!I-S#X95#&m~{Bt9!ED?rrfT~!Y^05=5* zyZ~@cdliLXHUM}%+FV{;m5^c0Q(%Pi;Q`d=Av}?%8>pJ|l|5^Gufl?-%dALUT6k{M zL4Iyf12qdZA3F6jT4>*cK)(F+an8IN%QOOQ3J?7_!$XgjQ0<9t{Ec(~I2eyEBM#Yj z(NNbO?v%{KDLvXPiQ0+GGht!6-Je9MZDV3HmEKkbZ9+>%s6c?`NyT(5Zfoq9?M1VZ z2!^L)eLee`-ITDKX+Z-XiqfLGR$@aU4jLyS7RC*ulntytXs80)vGSfGY=2v@kJ5Os zvbF}#R*xw2TlsOZ^pY>2TJrJ)ln%BgN{Wk%X8@mP}gtU?Z{~EH^vh?&0A3``f117gVb7iP zppC@N6giuD>$gcsgjeVI(cs+Z;fez2KsKw#hOgPg``leP{gv4eGU2s9lyM}On_m-8n%9%g5s7& zq^)Hw=WAl@n%4-i$;WAjj796)KO0PF=ilp(4c99RHdOZ&8uB<0dii>wNSpmc}_ zp1%9>;~PouuejbwtgV{^5p=F$a=sAV8RflMV8w55zO@3CdsfRTu`5eyt09Llqn zV*|vqEqUfpe$;JSnZLeU4fOf~@}%(Lz7@OV{f?@^2}2VIzAbgo-=|ZoAbJL?1R8N0 z4|a$U4R}J*E!vW5GiM@Dk`}m=O2>?i??7v=UYHFGT*J!Ez?c9uUe|2z;}VrOe2iWOk~paHaPY|Ii+hM@g8TB2*=`}eoBv%#Q8-9I3p zt-s$05QPMj;;gA)b+8AMBpo7?WZen@e?bh~TnyNm!$|`s1Dc%xAR0^#aB|Sutb(_( z5U1+BG-i?hc=Z(^V>1D-ij{2Pr>2UaxP+WzC9u`rd;|RLw1#fKE zAP+?VXH!yHj&wW`IFWe=BK^sm+mBucc=!qyWH{R~Yh{53ex>zpRd9z&Q4K*`%MXBP z(}pHxfLqVP8JKN*``*33z_f!L02r9KFd}ezT>gMX+gu#QTSOr?s(cKwOAZ*6}G2>8AwublQ zmov~30w^lZ2e5=ept&49Sc2u910J#$3c}oykfHeb2?z-ZSxsnzHeYaN1kp&8IMW3> zjiZ!z^1ugz3|G4r;G`g|y7)WK&(A}s2+)W^qM{Q=+5gMw2yBPnCV&|thZ`Hv`qTnI0>`{b+0|*t zf>nfP1K&f{a(;UDwZBN^kEtoXkdP2a6##|(&RKD4aZwBeWGohI`jlU@#&0DHphfG8 zwM#&Xw0Nwot@XXVDywz<*I$2~EpFlNdw%j9sm|XM+Lw^0B#UTE2E`Oi+rK_9Dq`gZ z6hhnt@Tt&z8Sq+7(G=7Kt^)GYZ?9@h&dfMSA3&gIZx>L#U}gcr#3TWXv&hik2|_^I z1X!_~cf&_p8=Gv0^dKW|DyipdqNHf1s}Gx)`J3oyc;r$wAlX(oHjMoI{4&XY5&r<5 zM)?oPt_}|T;H!-SC@8K1IF?y#yk!YV$E7#tRfXHQtG9|I27_T?W##kr^_7!Hbq#GS zFB<@h@&Y~C$;Zn!Hu`zW66%lt-CNNbYy2h&3v}$Un#se+Po#vZy8yrkRLKcVn1>c& zEUg~qX?%?67J3b}{y`F&D8RA5uG(BXjUN6W$+0td1*^SdZNe;iIC)H4sV5oCkbw&d zI);V6k_5Q{&?@~?2~Mj5w0sG@7q!n1TpxgM41A!OOjcNUI0=YJ07$kZpQi=QVdMYC zU5^|+elM|G!~Jx~`2tSo4g?5+I7+S$ z^d+uLYJiPJA9P5cy08mIxQL8<0;f|RydMw*_$i>(@Y7xCMPSFy0+(I-^}dKRG!O`c zMX+}Ulf^b=K?+dG`2IEg(W7^10aQU?D|6$A2bJKi7J_|(S9^WFxzKmgr_tfRjknsB zHRt?G1tz%ck_xu!xox@Iw5X=M#|CEOB6A;{E7|d0WgG!;A`qRIUs}!JITv@-LvSJQ zRhP<@!N+AeZMK7ipUx~1(*s(*cjNKo;1;J`gIPfI@1Z;dzyd?AUkI3*v}DiV zpeaBY4E+46kea__=TGedZw_>iOJuR{;)p32qXCD(Fk%)pyqb_hgVa61+UI}{p@4Xb z$hm9=R)AdTW(5$j>487+Aln1!6bW3bU0BpDp=r5; zQjw_*s?M(%zymk{5g34BGe18SBJa|P&~RqU)vL7a_5#KCfMD?go(~e&E&1fS|F-Lu zQ;du-0|SG|iYz9WH|_xyOr_XaqK={w#4MC_{$))-C%^&y2rKPi(bkWT3{|tObr}1b z)5~37=X3#MP+0xx)7o)PNU@?5OGIp{MyI1%cLd)I#*0tJ($jbW_QJ!CrF%pJg8;)2 zKsM$LX1P$#x;~eDTfCxG;~Kp2edXP6#9~*aM_PuIvyjc|7dM1EJA5^(L;0NRKIn4Iyam!~5}bG{DcfmQ5(dhC?f_NtwBAo#d4Ze#hg zvk&?B`JI6HqmDN=Ub*V_xC;V|Ky>on-|>bA#h6maH)+>pWco|Y9>)RCE+8WE6}{~T z4&PWDb=q$HzYv$OxxuuuQ*2^T$N;7S0U;pUp#za(7O5a7HwR|pd^Oz2cn5M~utzO1 zV1NhMMQ+|AAcqGY5LId)LEbC@^LW7Emb(zp!X+|o3}O!yt@d|lMPRwh%F>krjUbc> ztmGxln&ADK-d>4d9@}bQ{Y~}Y5=O`B z*-r(KvGwBROEd%^-zu+q3Yy#k!M+}smEl-W^Z@<6okT!vf|*i8RR=N0jnzy0o~CaU z+v9q0sj)4z3BXkW3)rnSc>*oA*l8;_=(0Tb`O84B zg56If;F7`AF{h5gi6NimvO-)gdayz@X=6=Yt?63c9XU3o{+i5-T2m=2jy6|Ejfo{s zqh6v{ruT;eCCpb|QJ~yEXs7SEMOb7Xr+!)A(bEKN3>Y;aJh{i}GQyeF$Ce%Q#>)Z> zs_J2GJR!^{t=mCGl>eHwdq)i5sE@GPTAG@0>8=vSlTjp);(O12fzP=PdC*_0686@j)`sw`uK_eD5 z>}WyxJxI7F=jZbQO)CUu-2kB|@4uP@iRguqYB-oUAx*{ssSM>|7(Q)C{{mlP2PA9RLP)|xFl!75%5)ZxK!X*B2L3>Z=lsF~xz^VWnQvkU{7*Ne zXMsry1Bx5O*`bD@+OYtdC{%koa^%P=fQG;u${zMyX=-T^2D&?0)~z2D{KVYc+@Ngo z#aY-Q&~6_-e26QyclY#!1KC<`-@yTv7_Sk<4TagJFjnvHACGmUDVhBPga#k(`vw7_ z4I$$oYjk9H(9sDu$~Vb;{`^-kt0fOmttF+UegB1&8sK4A7B)5<2oiYU(V((~h|SHv z5mfu_AydkS#sj)I*Ud+_e0+R{>H{mm3@U*WCr(6gDHwq=hL)aQKgbhVSXg)gb}DMs zV1DkJPB*BVA;CUsr${R(i;IgxLyZ8{o;_8a2uA0Cj5ZsTI?SIPKaD9Ua7l}r0vU+c zxA#YswkMn@7S`wO)&Z%wmxu{Iknz8`J z0$s4ac?1Vj7llVC+C~Zj0LozKhw*7A1mqyg+}-|?*<;Om-9wR@Uy;#@_uBc$sx(yc zWMox<-2gaF3+_DJWDLSZ!B5@EhllcN`5w8*&@kF+KKDd2se~F5l1ivy3DTu)rjVK& z?*O%zm8pc9`!c9a08>ED=JpfJEo&oRpg&phvvRW&#h6KbU~{7?XL2m5Jz5T8cOAdK z41$KZaX&P$;A!Yq<94;n`PwoOoK9d=K2Pwj)qmLXy_8^4T^FDKa1<^?Ot3Z1}rVc_V1=78_I_!`E2h3)M0zG#Xm>l5J zoq)kZ**Ktog#gq$3vxmOF!@1u6Ie;u2V~F zit9-!7f@d_-7GT5e0uimS;&pJ43;#(df#6# zN;(baYXucO5TsGX)-NEH1&VuL#>cHd`2!BJ1MFARG*A=Y0p1#7VyU3W9WayXJ2^X> z2V@-q+yxJJ_ZvzLBWcOq-3DM%fKE|8Xv2Ga%QDJt<9fMHqD1aLNua?V7)9qScp_0+ zq5LKk0yMiCjof>xT?j5rPWz+g%M)k4J>u)g->zsv3nzT!5g$ys+3 z!fGucq2W8w>;Ddz_#e+# zWExZ(b!26JEK0cE|8u9z$@*_b5#lcY2LiG4>wk^&tU8w5Zft$>zXpANJO4lb6h`fP z*+rJ{$=C~k8H35bN!ELxxS*3>wNJgq7&j z6S5d;^}88b_55yA3!l&pIa4k1BS;x%=gG-$mu4jNglw$$jI)ZUS|nss6FPM26#fzmDtH&U zwD4Yz8rbtoX3y@hroYLl+WHmRH+a5fPThMtMvnX^Y&>6ih>G17v(w^C){dc3;0QuY zeR1^wkURu17tBKtj>4v11mjq)(?8=4us9siL(P|5XeqZFr2U+n>_bcqIS0;BBKNS7 z+jYswS?oGdc0r7^#`gRpw~b~!)0M13p=&aFGBOo}S;J1hfh+RYj5NVjdb0D)Q&NG` zu$hNV_V)F8iz*w&U$L1qX|tSatKq0Md2aES!Q;nIsU(6Bv#;^s(D|jw4NxahQ*WYv zo_i#x5N}l8mewqGp3h~zroAOSy%<>CH?g;Igq%s5ka53SCz$r|d6#uk3_M#}IjI>I zS$$0-6ox5CEpE41^0-^p8!IMj?BHJ$|Mld>kOOZ7^N7{>fO*#SW`%QSyphH>6TE|Y zS-9F5)?9U~`rP(2h5;F-7K6j_b-X5gH}AGbUN2v6F~Jl)1D`3Cv7Wb50_&NY$r1l1 z&&mDdYM~|m?tvi&Oig&>$u9c(&~M%uyR~%} zSuk&SWxVK;FC<+X{}6O=z%`P8CvQFHwWvLhLy?7Jt2S>9#!mim{gh3er=z2zJXe5b zp;)KT!eqjk+%!e5+^{q|?a6SG2%p^D_B#ovEgO+J%I&)(q(yDqr7m;(|AVZz4vQ*k zyT(BT6hsu17DP(AK^jH6q#H!KyGsmEy1PMOhVC3ty1ToEn4y^=1{l7>^SgfU_q^Bl zkC)eBPVIg6z3+Riwbw2(j{22U6q;_Rc#J^JH9nO7Xsm@jnz1S2!lEh8UsC){Ru8bL zU3WE)P{|Ui5Uztngeu(Jf0K8X_ur&f=<$#imw0zA9;4m#VE>R7rRl`}`axhGakK%U30rmk;agjZJ`SlK8}chkW;e|A8&eP+`%kpETV|tMKvk zfN><0jK2QiazV5+5v8CoavQL_%yNZ7644ZFtZV?cho|~Pm+|03Hdc55M>-(8dw);V zAoeCBLtStuPW269vy3;A2j}MIwwjo=_4W0uZcH7L?vs^toc>yJZ7+c z8S$TXAp+K5V08ASmrB!y=AqT>vGh_Do?@VT?se{I*1xtD=gq>V&Oa)yJy*k zNdTNP7MP|`7e`K_=Ic)9c$2eu zmAJ_$87Telt#3;g9D8BPEz_;?VrFi^k&w#e;muLIePBAS-yHYdi8j`x??I@{ASF%_)}sn*EEn<#JQht$(P)% zhE)a4-2G1zcmnolO%~5=w&3s*ApNIEcVe#KI`uSp0-*a=_B?-bdY!f}evtbZgc#TuMFEK$sKwg3!QyVUV zKfXp(t(ij^3TIrEvc-+edLqVwiTu=qlGjq{w=QE~2?h9`-&yd0M|gFv{&FD!laF7q zy;LIuY~38}c@9(#!&_8=*92^$<2RFTy__8bfW~8^Nw65EVt(A-fVq}cYg2l2n`YC& zxEY-1fw+DTTRtLo2p6QrJne0y_zj^rq&;D(H9e<<39b2M@={CnCsE{S5u-pgLA+Pj z9ur=n5w9>(@HBvu-EXl*@%HvMQdxRLiC`K?8J`!UBY{F(fhGW<*5-KcwUAZVw`|jo z`69bCty@~nuMw!$D0nR+fYQKisruVQDPea+FTmwHk(*ds7vCRkJ;B6y@m0}|-%QuZ z!*Nmx9XPzTT38mMq?>aqct>2POE3GA`DRIrft+wHDUL3Bw_(&o^Qb>PGBivDVLVKk zd7uxUGjJMRE}7Fb>+K*03J@SYvg`Ww{6A!GRd+b4!EO7e%=D7?fvM3_=LYHZFu{G^ zvUc-UsmC$=+wa|8I*KyNFO)t8ZY+^YR#BBMC*1UYH5vxm9&WKd-dc4(23O%KG~Z^o z7e8iwqgk@5tDJT7o4U+m-xOHxJGr=R+mS=cU-6J(2l!glfWD|Azo-;)+kP>(eOA~p zRoa{iAdN#82cA-M-(I+eNBRKfoNO1aQ1p2)_@t>He(nW;v&?{cLl&TLTlO3P5|F`? zw+O(omOT$97xgxx(+5>0h5v7?0X`CLY7QX3#noi3 zHlJ^C$j62zS@%>r!lwQJ2G;Ew>y}nX5`_KM+;G~MQ;a1QLUS}W+wT5C%{8@wJ+G1J zt$O`E=%26cZ0>-B+l@dIKTjnvQ0st4JD$l(lv+0-CYrzjGl_)98#@8HU` zXNJh}`%0jBrMMoe7@uuak0&p+Y=47Jd&RF9;Wm(yjCfg8rU6*nxB~lxc0s_a6vx96 z6xb;-36^4D6(SV!P-wZ>=N2&N*Y6eu;?rjC8w*P+J)fRo)Qf_@e>gV$NUvCC9l|L9oK3WAM8Y?u{*+Qo_oR=P zMPXs!>Br3kU8F{V;~6h(#1)6}Mp*a+_j!+UFD? z;Ko7^rh&4Zba0iX9JvVGBciwS^i1$hd3yHw@MZZH`sP(8x-F3Pca7EAlx}Cz;aIL% z`(8LHjruFuO_v0JotKoXpxP3uh|nkX%7akM$b{t;xS-#L);yG^6md_)!~gQ{8aa{we7V$z3cO3J|3@V>0fm!(6-1HB5(TGd6Q-{ zwiKb~yvWEG-@dBrFepkT-jIEBi?Ufk4?#E4!&^tQ>JZt{Y4n`^PHe#(Bu%h6ec_5f zzCFkQNhzjt9YmS#awlrFX31_~oVPa03rAQObWpVf1v84S3T$QsvQJ-Ksn(*GBHujx z7r!{LdKWP0%^)9Y32rdqg+N&Rs=htCJ$L23x@fQR7rt83SFRJj&}AP$E8oX8^zhUH z93r?7A-Z6@l$W{CYF;05Vb4e?Visy>&JLw+`Vd!ZTYxkR9NZDqFE=?BP0TF6C=R2)6R5D&%KZs@ zsaYhC9h;k^)X*%$6FA!r){3j$n2yK}PEUw02AmvnEJKZ{lNyu zW%i;5(z>M&y)D0iuZ!pNUyPC?_L5Z~PuhY){{Uulwm^7hfJb6sA;ggl(HlQoc2W$m^GsB_ZS{+A{I9`Rh(flFG*4DxJv? zOgd5D@*U;_fj0_z6AVid}Fx$9<_`stlPBzom zzGkUgvo#IA0u`_26;{sMP-1t#XL`M6fAs?~yh~@A(Gz&OFEJKA_1Qrp%pOJO7K`)@ zqTV$f3}vfnYTGh#3C%kH{;5yn8i2v{M*4YzS!5vTs!ZMyF`okAp7OD&9h%vx_Ugl} z*SI3GLMv>qJ-HNPT|5a`$0TG(@7QbF~F7lSmU_?+YfA&|Ep0y|3;>7NX? zEv+Cts7oAZM9XPSvej>QcnAC1;CG63hk zNncJ)u7l4kyHWvh?oaWqH84N#6cQ5-Bbf1|xu0s7+P-&^)SCE~xStCGM$KD2MFUrS z;+ne?ZosIu-Jwj8`un%%FJJxv(qXaVzgS^WQQGd7!-N1|I#>qaZ1)DDC*|FR04rK( zX{D0N!!Wx_-pyR`bqbi$fe4=@IX&kDd~ZD(FYy3W_MY?yu)Cyr2mo>27Y(3l3cy%* zyEtmo5*#j@LIPQmhlBK^K=))yLbMqlEwJCXJ-! zgTxR)d@r$T$?))p^+orZ*IMdT><8_2bPEk8>eIHTF$H3Z2m^P1F>Z(7G6o9tLo>VA zfAaB@bj1_6{4$xGP`bq0^q|45rnD5j6}pnG562Pn3r^D_f>B`pU1Er#s=maPS=lJB zD*u(+8`(M^zcPV}J3}MUh@HQy>HT(H^T?hfT3j7K;4sk1pH1^3@w44*na1bGbF5zu znmrnZ(uNSsPxW{uoX*83?<3yaeZ*Tip!~F~u(r`nadFs^v{*YTuA%8(iwEX%NLuRX z@?-zF#ob2(d|+nr^!cl|d1=VFQ388hftojB@H9euafl9SmnxSBIkCgWA@vca{@bO=&3C`|MmDayF;D zRN*FKQSs!x`tv!ZTW4?RzxQGgY4WR}6n zr<}g<{6ZWR3d|q*T1RSU#@}S^m+8+-NzQswjMbzeX7wE+6Sl_H9bodZ7yH9043tfJ z@H=o})~0cy3Cz-ASgEYz;`Wbji>EKw86~n*S9!wX)iSZCnP-`uQ^509o%fpy7IiO# zYDO!VL9}Ut_N6n)@G`H^RDbHz^>PCBO{rRReidpxL-THL1tr zteyCR+R|re*m&oko%Y+Ax|Xc{6i9Z-%|dO$m%E8J(LrN#vz@Y?)c`duGo9W1emggl zL#OkdhZh{>u|(YvLm@Mbr$A^aa`oAIF`v4p@dD3|s<1=z1(jKfH)qH%QJif6CN}`g z=lc0IBcq~{8X6jax*=ne&pbGW4t(V0~T|43xK;YEQu{Gb8BTa1dY_M%kq22+*rnii+IRGYo5qPkQ_Vc} zu=pV+6XSH`44B{s&2;btYAq8`d9*qd87|goP_}!5X`@as7JD{K)D(nVZGaMaXLl2G+eL=tk`R*j#PoEb1Ie0(8Qt_KuBAVK%m#Wx{B1A z-rYY>SLJ0;Kq%mHeXHN(xmUmlE{uv6_;d;87Y1kItUHTdR(H)w zi|M{xvbtFfjC2yS#MIAG2j5j|*(K6{rM4M6k2d#~$Esjr!T=#o6)rdvsLx=-f=|?41~?&-jQaxshm8Z0H^n743836AA@n-MQ?GdfEcXDkO#q#v zQ(ohUiE+^=Rl{FwB?zf{yNDy8H{dame?b3Aq;%h}Ybi|jk8RwW7qMn~+s|JubAke~ z25~+r-z-{8DH}D*z^7FR1$26pM$V^Sw0RV1AIvjP+cCBKKNM*yDO`wT$Q1RDCx|=k zuSo+dghdSL(IIwoA#uRCLJoy6I!yO)C@p>?wY~KPDW^xI)@vEmX-ppv;~CfK`~wk8 z^&IsKm2T}ml9plW&;5esL4_z}ysMP9BW(ktk_F)TO+H7Tjpk0zZnmL_C0bvzpHmhv z^+-D>2-U61vIF2C)->Z(6qU&f%kkV_l7DsE3bjoEQMTD9%`gd$9doYC5(lo3Bj1RL zLT&5*Ma{#PG_t1YyPHAUz4j)vu67{(t5jzDStYs^ID2#-1L_#gKGS=828<@+*0`PnV5$Zyx4l|C%VKUwq^5W-ml2b;=MhQAc5s=Wof+`~+1OJ7;8!!3agB$Sq! z6yLY4p#+>bjuz@7hZ#nGJ*QJJjM1F(elmpr`0;r2(1$6#?&AEsJirwGt{50h9@)~eG853DKAq;A=hK(QOzPBbk?o?X>x z$i5mUtPwO|cd1xyO9xXMuUL5h1&5oOKwzCP^V`NTMlrHz3tlh|(Zym3WMv!+;{^lI5B?`hA|nuj>g zQMU&wu$gN&Y%7t5@2VnoAQtB2=_zRjlTjy*H#(715|$b2@v$}hv9G6FU&t%ebDYIc zxD&4&SzW9u&-BqfCFVJ5|qR>bJAc!iof;W82D*#bJ$Dd{S$zbF8Z?p?{Fy zcJw;)Rv@6k9Yqc40ScF$_Y=f!c7(r|XR?UPd$yb%fUWq|AcM9i@b<`t^X;+-yJjR`-6mZtW&dlVZfEjvVlzzOS6V6VkZ#Z7q)8E+0ej+tme* zD?yfnVgldofH?BAhUYMPOMN+Q-JMil0kt@QMoGeFOQ*q2X29%$CoSNsadbYSO*-22 zXW>#FP#FV|%48(NVdMfR(k`WA^uDK5gxvkLIw|GhOrqt2Z3ekWJ8fWxw-pK=!3)Am z$Fg8!vSkD6UQ1XiI@@|YtxmuFOF5(H9avi$7!zLEBP1-smX7)bzF6UGE-+c$^fFi3;_#*8k%5jV9_8EtVefHIYx6SVr>q+(R+tgJ{HIiB* zDcmHjU&?1H=0TGuSN?$nUj!qkc{gWRW`bg}O1)V&^#=p-@tUgUXB;jUaX@-CDKGPm z&?kA8Z2BcyZmYAE)DYw{H$2d?!Y%rcj=webg{V(Vh=10JXt@a@HAM6zZw2ib9JPJ@ z+gU4p{HRzl%75u*v>!bx0y65Y($CIT$GoKE3W~hRY)oeL8eHSHOR{xQJswC4_N}2B zRLcIApk-Tmu1qZjMBH!lE-$va6g5m)zHY1oJ*qbm#0qc|z~*_NdV>Hu+NUvDpy zNyEmI!!W->n?Q@7ZB5J7$#2QHzx=qDbv^!7b0`>u_6OqaM$!%d(s~C6?qXwH5Y3(+ z+3n?}QXD21lu1NPFFHj}EozWjXS*>)q67CFhN#^&(_Iviw~Luu&D(B}+jBYPOUD{R zzo2r4Rl@3(GQF%*yGh9bHPX6N>Vs_-i^XMh)Vz<~-&r^QR!IK0cAAog-hk58I6rv0 z%W{O6vYYi;8wr|A`&DML9cqyddHy4HVH;J;$eEU&|Fk&NL`K(Ei&RTJKD1>}OPw+Z zzC7cWaeYvw?>=LIRaic~HIf>wrC$0*BmTv6133*XxLAqHE#+IETPt6`B_(WG*6h)W zx?3POR9AN$vsd=^Gw-QOx)lfrcjZ7p+`Rl^SmePM;BEAAp|J4bbZb8y|9U9IHNdyL zjb=Mj?F(%QNhlCxM+~q6bxZnhAun6@<0E?S;OwsZr%g%zcX=>_L_)6qx_FuP<^H*} zGyM_d4!wNUV|7>c(m3MMBNJWfG*5M=WP)+A+Hb90JYJDEkO&HXaNjrCrB`^a8-IqO ztW|q{=QNX@2lzn(>43#?g3uW&e7Hpqpq8~o?iQ~Vot9dTDAJX#cRL9qm3qM z+GY0}Vws(>m#x$q45v@=3ap;bh3l(Dt^zn#|o?t3BxfHKvDq^kByBf-_UpaGIr5>m4!Lf(eO$Lgk80MQ1_LHq!* zrJOCk>`jL8bupeI&xdB1e<~z$tlmSGe)f7A!9kGXEOmb2W^8QylcXTY+HeOj9%Y^2 z;G)|w$JI5=rSObT$7SsPo6K4OzJ9}+t7W><3t6@i1_egbb{10jFB=(r8!Z*B6 z!nSZ_xj0o{^e{v}8=&4^C=UNejw0E=v2LsltS?UfH4kh|Ya{F#-V@>pgw^WlYWT5eRoPyWfEFfCE}p0IX)I|9BIenGA>&<`=fnbIJeBJBweq zmb-d#lx6xw!CcLis&1BJladMtW4RZac8W7H6$c@PBdNAc{SGpej?u$L$AQ>QimIx~ z%G5`j3eBy7AqS_vCIm0?OW_mSr-^fjm`PLcnx1xDiH^WIEB9dtbeZjp^M*SK0e}4l z2L4jfUGgoozCN9Ld^0O%LB!LF6QK!LSy6Q$8N*O`0x4oCu2r%SMyp! zBZa}qc4NMxBy8B?GDGlA0?aHAU`h}Qt4?4^c{9%UU&{; z+^+&QmO|YxAt`AWK5hYBL+N~paD|hBDIVn(zH65A!MFTFJay56FD=td83S7XsdGDh z&|sFv=fosdlal-K+NJyIwyK4zg>64CXQ?$ix;J5HXk=(4i+5+pZ$xNQy}=tBHd<=W zbJwb}gVC-qi+2L70HFGF}!M*@s88KZ+?bsAxHlaFo;e zzzG+u9m3LTjqVJ@W%W<7FWS_6e)eBq;{-vs$MfdDCmvGEm9ad;gpwU)F|TNhN{82% z*W{)LeMcdk-JREpOwfu7u$P0Qk7(`t8k2^v!uQ?*x@m%f2aQu@-)jm<`awZ4@z-8| z_CDml#S>}@iqAmdj-=^pV}URT`JAOn$_8Vv=WYk%Kq7O`&Ack(zWF4c%z-v~osO#T zX@5NX@C%%~Ch%@{#(7VHvB^h}W%xF%Qbp~B>zU*Ik&!z7X_gqgoH7Gk=e3(|3E&YN znsk5pF>dM$>}cHm#l)@kAUL58EeYCwVN6?7ekZ+M2fqoRqk*84P&F4ufJEH6Wao=e zi+ca%Su>PPZG^8bqxeXB)b%_7y1VtOM&^6C;xZ8y$hIkH^)=@Oj-cbpkAY9`U7T}N z4i>D9UETo3@Sl`{)xF8*PHIHD8;85Gq+_Z6TO zOYIQzVzYox|JP$26 zOD?bg|NlR^|MA>frQh9&EvXXH;jlkQW5W3_7d8D?tQ@l5m(R6Ao!nI2hsCZALy42Z zfgev{v<-{Nqi(CA_Ou@vXg&C8StOVhrInd{Boi87i^C>rpCaxAU7Vd`Fl&GQ*Im2{ z7H~9PLhDU=hMk>@shm_u|Legt<)`1J*gnZ%3Cm3cKUDu;=jHn1YP|f!<#{0($F1?d z{*nh=5x=uoK@DU2g=V5Q_`fdrs~TMYPg9y3-JAQ?o2Bf3Ul9zPN5HP3e8(4&&hkHv z1+;|M{a;>6|6Av1L0H{+ajrVtCFSq9v6KF`mCJVdHg{k`>?cY9fqwW;6RYjX1sFY| z{b-Tog?=rPFF@qS14ypRZxHN@d2I~n>W{C$JfX|i(W^eSRdJ_4(^go;ySTe|{2PCc zOXckB{P*AZGZF2C^qVTC3~5Rtn-^3)c2WlURZEY2)f?J+I(8+FDQi+d0g%#CI+nEm z?uMb4TdvR@vbII9uNqdIab>e>=Q)IJs!z;x@1hz-3<7f+TjT8>8#IR-M61&6|8#5= z(ksv18ECU$i&l6qi1O(1U=8JqO;&+H*_@Fbi=ExBpl6BPRUG;S1H)iY9mq*#CUHH&q% z-GNR*- z%JGENUY=zkX=XC}YdO~Ld_M0AGHhFivx(l(|NEboY2*U}$1L&M#}qP^ncNxIpoMy+ zy1jGd(=oRa44a?2(7h&CXNK@3r>(KQ@EfBF@~p$Ue)J~Wi9vEDTJoxnZyN5_l$ES# z91M*Ui4SnZr)lF)CTw7cF;ZE4!LNI3x$7U`JlZbTu_Bjr*Dk1gr{UZ5=T5{ezBR+} z^wde8<85%()EuEM;@mJ##gLb}g&HCr-I^hah*SN@eV&L3^@TvFN9()Y^lCQ@)bDU= z3G@64_=Q(zcKy@WEe)07duA!K1K9$@6zcGEWmh*>f<4^_pu9rx>QIVKght8CrJrEV zxzTE(wX@xJvdKxYyd&AAxN_Q9 z4<7enDOV)&`QD`5JJ)Zbudk;t0|(hAi|}p40>;F)Fq4Vjy{P-~6F5TJ--bg8o+ImevW}Baiii&_;U71}2-$YVN((yF# z3o(z2!*Xc31LaFGkG{bT1z$!%s`aC-TPlU2Zm~7y2LVf4Z9C%LIl-(1l#OwQ3mOGC ztT&fXeHHZl*K!RB^Yb&+$um&V-d!VQKWO5~)Y zZqNmS45OvjbXjwaZcFEQ8^1jrw~U7ARYBqPQG3Z=AFd@?7sN@r^2LXXO>`39;JE_5 z%p%k<4KI0NP|kGiN<>PuDHOQPbA?PB%j?H#oZ_WUf95&qc7QN`nmO3xbO{tJvs@?w zDutq+pcrS-;I2s>=OeN%sd5Xs3X~xauv5fn701GYc9OwuYt}xW8Fk6Q$B}719;d0o zbu8r*8`6(|^8@*8bVCS=Bwr3XPBeyg3L)wWHlcH^D}e-+0JG~ zTBV1x)U()|*dC|Yw6bj#d(vxBjc=<_;dqeekUlY9CT#6!;R014!4`CFyt!uH2tp;= zJ&io}?R%vYExWf+Lt~V^FEz_?FrKj}{UHQb%*42_D;H~b0m6h?Mxi!4obLImWumQ) z@KB!#0lRVLjW5xuX*|#+-C0oil*4p1%4%-h9+_YNl!7&w@z!L|aCoS@Dhi)Meqlqr zs-#@IwA43^DSO|nk9YZc3{=K6qQIfUk-;Rk_}f>X$(6Ul8QAnbqpmJ|_Fvh|EH1b6 zUyNo?LHmYyD-sE6@!o^;(KA@YClnF}JmRYp@XiMaBbcX~J2?V>rzsBp5z>skWoZo6 zKXk}|PyOp3udIkbs1H0VvB-Ot7(QIBnJ7zHPa{dXI&lR6EZYscSJxExc=W;$oL*kRg_U=aCkM$L#&)8h)o5hC1%_N8bqGG6DD6@<+~9FWx7 ze!P*ZoR+aBB?3`Fe_R-(q6@PW*ZDu*>G&cKwu2bC$(f4Oo3DZzzE(zBo!s<(uq1Gb z)XrAvs81|i%#zG<5uqU1MN-^+AmOc>y@kO()yz+Ouu1$pB5ChQD!_5iY))~BCU3EW z{(08I9Cs;7gCaQUgz{HZLjCPRhVk=Pr6?|0gO#1wUkeoRZjugl-NgaLh--z+$s4|(t z72bF;#yBix&3Iwt_aNWjA>pMGAm62p0$~B#{X$q0|MqPjtvp_}+~pUJ!HdFt%C=v7 zca?MyV~N2L)#R#!9YjZ2OPyaxOb|iuDkK4MbMy9rSoJR>6kd8D`^{TN)gg1wBR=gA zCweW?4|640eTyd);dz{S2cdJBE#+(Z{S>JsQke|z)G(AH1 z#xT$dw4R-~_P<+nQw-_|2`!fz#~*sz;)Ndc%?L=QCu?~dUHETE8$XKW_@ecD*io;3 z;A=Z|7rcjX|8{x+Im4U$`b>K9!}q%% z7e2Y^p|nSPlMz1uz6Vxte$i!}jCnw^+!}K2%mCvjacF;}Pw-+Jmtf`nGAPKA^D%jk zo`?UgP#|L`wcx%~c73w4-5Viu3c3jpd9azW`BXfQ``5;ceQ-&lrZ&h(q_5YBjZS1NviR*G_MK@%vHR}kXuqC8Md(&bs;IsZz zO`)t;zUu8J{kuHA`B>6kHe9K>Qi*;}o;B=beN zM>%?@E4z?_7T3vplzn4^qkUp7;0>kM=A@u2u*X?-@!chF1O+cyJIeX$SjIDh4g5FU z_OCWMmj#uPuU`9#WyWQM$N1ypV+XHm?}YK`>d6<_sm^C|SS zK~^y2$B(heS?t>@qmM`O^c6XIaJVmp*z=Cd{zB5RC7f2R@jPv-0OJZe5_J{!$NPsqi>^LqclBqGr~5+sicAG|1tztIq#Z+ymONs*88q&o(El98}z zJt0cWz&UD*Ctrn-?{d2G*^(=+UXtGV&}AsEGU;lLIZTT3gsDmS5+8ScmQf~)Y#=T` z`)9BwjZd``2{m6l^q~j}x%K1e42iOwx+Epv#YPo)$8ltCkD(tTJZ{JZm=gk*eR+>f zIC=X><;0}RM=?+yHj$KTGp!=GS+J1uwr=qsjresi{*U;(ZmvzK4!|5WDwS>5#}=vY zPM_oE6r$uEOB;Q?S=Q9EI!mOeGD;d1pI|XyO^xt373Yi~S8neO_!J$IyG=@^;9TMO z@M*@-Wh~lSZl?=mPYrviG%G;(fPxyvmC`15<5Kgh4>tMqbXisJcnyP5iA;HR1VYZ^ zQdo6bot#e^#=@B-7Z`0GI0N<(80^(_hYJ=hZz z{o!IJGhX8+h>Cpjr-*4+L)GQqR2=qLZTjD-WMgyPV+>)>-TuFU%O^7r2rtJy{(gQy z-JDLUZ*zQ|{R{`WtMoViAHx3Vi}iu9FGXh-Ou0Qa7h#8KPVcrpD$1kM+-^~-4fw<;vqvo_4jY= z<|B99iTM7QZ|ZYU%e@Pk9`~e7{~wowIX;cNn1ol)p6wDAI3uhFmLXQ%Ab|xOj;~p* zt?AB`Y3}61l|hic<6y|+ef~7HQTLBhB)_dV^SqAaJ}VO3xO}@@bsN9)3Hx#8dyGe) zbG1CB!D_s5$8Nf3;HLKuE@a83tN7t*BQEyjI2I*xWmW#lhg6pLFXV`?hmcb8^XfCk zh`kU>J^E~w?W4scKi1zU>UwOCh*2`)w5Hmyduh7}D?+sVrk zv=^-y5My&#*FQd5 z2m-M*m5^mrd{ju`Ho+1JvndFXSrMPYMYkn&D~sT@wpSF!>0vmwp}lALM@pf=BeTbd z^HZ9pC7zL)ce5Nrqjec}`IwG-NFt>&$HU?$V{0pgBGG4 z4~%XLbC!3a$pYDer{?2*p4EexB|S~EL8(4EpajD{ruqIfGqcNptIa+}2qKpTD%McV z#6RCtM#l5jWnegTc9?;nhSB?58km+@>f=@+cZTB3YBG|ANRJ{KFn(c%)yi z>*1cF8~d{L1Ylt+k>g@3uQJ_uRv{8U$w#Bt{#?bA(#sVOP(_gubG5E-G!&?J0;Gx7MojAM07$Gs@2AIm4R=<1s25qrVH#B&yZatu%f^ z&ZUX-$Z&e5Oor)8`Yy3u>B6YJi1f|j2{=TD(~TYQQsD5u_I^>{=Hcg05iWie)_|Ul zZT6HEEnDui9TVU>7iWDN$mZ$PY&rI6aDkjT*CMf)3NcIcuJ+8XO~juBl1_+*$eeY2 z8`b5zCGYG$TB9by$8D|oUbniazi#Y2sk_^7^Hf}9pv?Xfsj9kJW12eKbwlatgP73Lm7-s4lU;U0S{JdkJABj1; zKoN;FeOLow8AmrAi#;}6#oGKLhg!b^0&4tW7cFw5MTCvMz<XvFr+h*w#*i3a{<4wr5d6zlY8>#ko-6qF(bGq8i2hil~uZmPYDzIX$)7tCrgcN98yPM42kxy(H-ej+#o;4F0stHWUZSv+eYi3q)zZYK$9+V4Oa{4N{Bsq}d+M*OnL zpj`L&JKN$T$44o?;v^kYLLvS)3mLQI5&{V>|Ii_%UmvNxvSCpTfF#vK@@V3 z(Pk+dNoLDz97$gt9Zh}YSj8B|qUQ7cD`RxBK^}!pc(4!^k$xh~dBgf+Z6))BP0y(gC#&m|DCOVbeTucv^lI87shxF^fC1|3jQX>>m6Y$ybthy_p zUJ@Z1tH$(6-h6jcLaqOk%WOueC-QOb(WZFuB8D{uig<1W8)!OoE4BW^b(6v;o=&rRIQ8 zi66fc&8jx*>u{WHCDT3bgEg-`Fux1@MhA4K-Ytn6?ZEEoXv^I5TYi!Jnd+MZ z2C4y!qhR9QKWnof$OoRb@6;3uq9P~Di} z|9B+QH=fC=+aQD~#&IdW@jYF`fsaF9a`fjUt`JJ&0ePYLwG74Rhp*wS`FU4g zOaH4(zH~k&T8Uo#@bzP`i!WNVyhhqQj+xbc0v$u7z$GGHs;r3UH zo#XK~+t4&Kti@inBo@#!1{c78rAu1nHsvcdq3=@yQ@LZ_CwwZMGEr~FUY)8?zouQ* z9v+(FJt8E!kgeiH+0{Gfc5GaFN9Bx*Tkj%cJb`{USPJmTj|GjQSx`%t>1DU6E_L?;zGR;&A-Q z=?GDaDLGu=5E=$m$XmKu6->WscM>odY2zI+cF*LB4?ZyLQ(PDv>9g=}6^@%TsTsR` zYU#g=(F$+Qf%Ary6Mi`Fuh45?11gMcc5Y$|s=GAhY{#u#i?LeY5SM?i!rL)NL73=H zW2+ktv~@-1=bfT;Hk0Qz-kmFVPyV*Y;x`B8K7o&6-2Q~v>$Su=;Hr=Ld73T#`0TDf z=8H3)i|y>gX)xnRt9JVUM~yDQ%D7J)5}s)wSnY7lLBzwio0Zm&FBQo?ZC^Nxb4eHg zR2O_}r@?h>CbeIoluuptHl^CvvBsxsGP4HhnSzhrBv(0}z2_kPYPCvAJ~Q6==~Eqk zN5xZfn$1|$ssMn7*QPkY zQYFglL{TBGlGh~9V>!>Qqx}U-2T3_JS zJC>4!P=Cq(RcNux0PiiSE6eRlaeuZ8)h*}RbSef-cnB5pCIZ>@Fe*!l)j#>WM`8J` zZycfjaD5r&{MGGq4iSNTc-JgBveDH3bEK>lj@UGXvhf2E9rn+AVR9RHJX0vNiYn*6 z9(;!9*VmA*h5VS&e5|v+rav>R@F|W~p1=+-@ju$jS8WN&3n5vAgT(a#nu$pIcHpq=x>JQHzca+IE@WY{~DxA zTgq@yc+sS#;Ea=av2QGMji5a#zTT1Ze7p1UEr7E8^iTK8vpekflE|nuG}khg!2`)N z8;*QO4d0whz9jhgv2f$Z;C{blXx{@>sd@W%%Z1g99 z!H?}`DZJRfW=&E+vk4G-Z*C=@QZ#W_9tftYGJF``o+S{)wrWwgkB7GO^ zxT_T6ZQ*i7F?E6HtcXn3GoCJDdUj_g?0vbux`5B4(HLh&W;Yr`6Wr<^7o@!Q!Ivb+ zuJt&mm2Rc*D8p)C)YzM{;sgb^F_a(u86xi8Vjv;7u~H>?do6H5zjra1R8v;1hojrF zvR(9lxccgVsJiZ53s6!;x(g9H zPpSYn1Dr5}-nSnFs_C;Abv2m{G)k;QP8@Qnxk3LoeayA1U(1#M<&^fh$LyTq&ga=c zx~#r&LN?VMZm1rY>hwTEy&>}sChxEsHB(kQaz;a2M~4#9gd!dm5LqBnI@OgUO%3>> z8$R}=;go|tK(3sblnCh3>D(*$K5_##_qk1MYGAf?eRX75t8Z^mNwBLV+H&AFi|;e^Ujl9C9;nWtl%S&ar4;Z*zQEz-3z0hM-pCTjSMLHGQ|G$c$^bk z>OrFj%l^&-Z>~6{m=qVBeZH+63mj^8BFdAlR_fnXM12Pd<`nHQr&>0491uY34Q{$g zIWW?M`D}H%`A1_(T(ww2VyQ7jDOzNTRc4Xbu4CGt!m!UZ20u};DWcyxrS_}rf zR;E2>z>(8--bF9^{+ndmM1}7rfw{mqNLDse^BaTb3s~@rQwQQyl06o^wnv|5?HAP} z6;hIaMeWGXdvFnD_?}!iGbUrj7pIoG89d))lf5R&g~$6ceb}K#s?C_i-HqKdIw_vC(~NKjvXqBP#GneGXa8%)hr;i+lH7uCV++gL;2VlP#ysR2p7W7+@n# zIUxUbqX?|$_($4D4D$1%=Z4altKu70uw)R}QvCBsgqy$cE8TjooWh5z6yDP?s=#Ln z?@F5_AaB^0X%!`?+$wbBU)Q6@owNTP#P=a(cuDaf&293#gP?%uhi-oPH;+pOyc*=b zmgI_STZl)DcHavahb;(GmkJGH<G6ViQ_`x>Ky)HvUuDOmjaJ5!}=ixHYwJS)(7qKU znNo+Z8ro;9TKa~h`*xla%x1GR%XHSbJ{*qbF`Ex4+^7QCO^+7T@u?TR=sdD*xJ@x> z{$aMaR&#=!yJA~$dA}2v>I^xA4aGcTZv6&%n^JfEZRe1Q9(8Wu;Sjws<33Eg!|Zb} z*I*_7$@&M;gX?%8(_{W9Ym2b<&n=`4)Gl@{ve8CSF=R-@TVv%#ej!adm-q;3~L(3gQw5mOtiy)fX^1zl)hOw59@ObS@w$KID-pNe%Bu>c~{EW`Ouc=nJ zf3Ofx*t0dQW1!dxwMf0V1M!3~@A(uUFhcR2!Hm?<_6~YDPI2LuVi7 zm+nH$;*`T>L|Fr7;Xi0?4`f6^p0G1(h?@PG6Iyk-^3bi?C>^x<@TEp{@m|-=rcE=? zuZj+9cz1vq@fPLq=0x-?`WKgvY7I40j>4uPeiB5Ipx?TO zyx?DmxpZ($-T1ZyDd;%%Ls?8rBLS_Ahb93oKr&+Ts+kYy3Eu4;2peYT>D=q~cyqhw zM^0ww8may+X2*8WKI|?(Ah4}XZ&?J}y4A|1>s+R)u<+goo<8#$vf;ZgRb>G|QU75f zdOBDH`QXl<9j7es(FreU@;sKMWYYlF4x`G4F;|kq)d0N`2k;b9eyEWXBave5zW8w2 z=fgrhqWEPktf+g3v${Wl-2$QF*7BS-_r$d--Lwn z1~H20xT{IAqH^XfJ5pApCoizU9Y0-sTM;ldiwm`*gEEeSkjiK-zd>@`97Qt<&rkS#$2t*aJ1h4@ zCjJ1|;o}>FXBv-g-NKZhMOTRQ@-~#>Bot`o)rzZYB68eK&8Sb$)sp@u1L<;@Q zXvmUUe(pDuvdS`+%&6G$oL6yg-%`PKSo~F{!)JKQeukYPm(Ju~F!PxwB_A965IFd( zUMn=k?1oZMjMnLpi`J%UU#qc7!{Cqo&FBq^Ve2g+Q=Xi>r7a!vUCZ+weF!fgtexju zyX4zGFqfs~)~*OOkLJ3k5~MvTV5oH;f&WPx4C{2LgC{L`L_ob#ZB~!XhdA_OxOTY1 zw`#Z&Jq><>WUtxNY*eq;+5?KX${H_fhB?%4&$Hd`RI9!A2S2ivO~vi`Xy4EU!-N&R z^woFKqO{6C_)}Gk@D)sI93@sJb%IOwCa;7pZL6;KSdx;H`i@2%9ZN2kOs6b|_=Lom z7n2Qr%-5NdkiKc~>->jd0UL-~eho<7Wx?w+-5r*pBf~9BLs_ng%wvpQH z5=B>@6cr;}vz{I>_Mrd^@7O+$ad;_b@|6_+X zsN&>$9bu*7H^Q?}>XYcf5-h8JU*{|umJQC_ypNt5vp#LnlLdS2fPMCD;*?oCvbU#S z&c*uLh$dQ!)@NAS$6cFEs>ScegEst!vV@IVq{g%L6Z*pS^X&ETJYbD7KC|%F->^2H zduMYLQMmeCGyUjvTt%IQ;J9Py)K|k8E*lluIgzsx;c-{(qEg?{SRGp6sLA`KXtE{d(wcO1LBAr@eQ}mLcT^eb!U{+vT7BzGQ>f6a4ReR(vSkNz@&1m=m zrqZEBQ1}ERg@~~1ZbfDCBCEu=$vhf(2^@Nbh!0~ks;L?JR|X3A)Oh`Zch9w&Cwo}e2CkzLZU>XMgh7f1p*vvW$?{qWyI908dxufj^+eFvln zCmAWS^vgduM1vb(5gNNF z`H=UP^HHRR#lC=E4HCF$e=<-2MfWIJ1pR~@w7wXn7 zvvCANt=UH^9P;V^h}BP)SD52-%!O-aX;TtK;IBlaVx4nNV_4H` zN#hCH%E^><(Y{B6s_;Z-E{DcH{H*YFXRhHq4NRW0p!+*3b8keho4Pff?ENk@PpTk5 zA`Sb{z|Hh{%`xp|^-5jaeo=rAQ>RAsoK8$%xdPA4u^_Wo(TQhGDy6y?y-s3Zw!TUV zTX>PP&zY{Y`Fyt(Et7XNr{mtM%(eKTCfa>3ibSH>#Piz-^NxM35xVg7tfO!#GNzpS zRV%&z7!Sm0=T{@IYaSiaEdI%#$UnTD*plse){jBUmB7-vNM)giR+)a@4+ zeJb-=!mYL6Osuonxb3J6rAZM-1{sap*7p6u)WoeYgL3S;W!Ngg5JRRC2_k31u{Ip# zmvUI~Lt3~B?551li(>7#3h0tse=6|>`TI~bjO`}__=wl9vHKC^W9;>=55%K_z=9BJ zf*KQ%n^BsUJp6R}Xsc%;mp-!4y+fxM8=D;1`b0SyHLi4hN*k>!r|LOGh%Y(qV!b<) z;y1cYS{}dv$&hDij;;tixfzcO=#fl(A&aVOx`t(m2}9NYXlIZA?vQ3 z6YkBFwV5tthfC-n^bqhxTXqdSo>r?ASw}Kwu|xmGuYJcF&pf#JkNq3%j576m2SXOa zlzQxj#M$x!=pSIE`Fx6OjxQ-SbTu1M!?IxiaeacNQGrZo&bysVt8jmzn9M=g4vOa$ z3pqQzW2r6h>_e;YroRxedg7!D8du;Nw4^p|Me1gVMLq60V4s#1Ob%~o9<#F(;qIi5 zlMxgmDqej+(ef?tvq8I|rTxadPa;?_8T_lZK6?SSz3M6IsCcA*ep`Q0T&9Ej&Vh}u z>x8RjDfCd!!W*^zl#W%%s@bF3HODzP-`=s-C~S{B*j24w_$@11+s%nORZ9PZLiQ}# zx!_VSCKATbZRc<9@oJsJ2V~6=UfvV@$(LnU6Vd)OZ8S=mL6?EdwdLoE_CBxWn?9oB`u``F!52&-$=$D|) z2oZ8NhdxTmp5;7V3$)%eYpxTvnh+%N3mJMp72phFyhU-GL`HwI*K=%JAzNQHd9Y>Z zkB-1<<#$_kS!q=#nGPTkur5~L7e0eo35j^*uMN!7RNfMC8yNm-sc4nyi~fu&N_c?| z5;{xIORO{J9Z!*hI4;&-`KRsre~KS-w`H$!vWX4|(R=AH`{f3|_x>HQo`9cyz(5IuFlVy1=+E|@;tX^|? zE04|2oXJb-IDL5}LPZFjIeHkKdyv!a-dy?tZvA4g2t7_2_OL{mP!ssPOWN$-CWM)j z%&3L%HE-`Md5R41C(C5bnbxV?(-%A$Vz&#uLq(*C*BK$fU}4BLAMt1goSR85vV*E#B$%sN-{>H5(L*;(vw zvJA~yD+Qk)yo)VASSvm^`Qe{f&a@I{2Lyof7PTw&MhP;^r@zwn&QblgrSb!`n>tJ& zbq-0k1o3UwgjDxapV#?1IDB{G1)k_ss%fCTyM3rof1|&atvoK31Qa*49z19Z5cySd z08}Bl3OVi4bWO4fEVDc9Aql)>Z>zx?|F@>^1IUJselTOn z-m8n=rdw}>M7eR*#+(N<9?C>3X6X!slxcALsacX19PMn~BgnCMvsjUo8@Ok>$m!=N zpDekQXq|TE_&0Sui~Me9pNPf|E1xpvX9UHO<}O~$VVK109bUrOWcP(l@!*toPl>#0CM3I3VPtgLt`bLD_1Jw1~B$$&ro0R=ku$p(6#%gE}Z?vP3mUzteV!G@lRT3zX3 zg2Ua}I+DeRCvlb9Y>cTs(-s=KlH0d!aX$&3)n(gMJX-!7;zqfBn^i7{<*f=<{gFy^ z`~VNRA&ps*tVY!uBf};7iBEm>Z6tHa`bu4@_pTq^-dbr|+?{fznd%>|moxp@S$*ch zRx_VTWA2!fM$c0`VidFe<+*T9{LLOn6tZnr1h{X*k27g>97eXI;OUu|=gX?MCHEq+ zYQn{a-MU{u_JW(9)L-l|0JccmTZhk;rk-&BsNGiZ-c=*Ft+zA6cX3NvIMfot?J9et zm`Dj^E#L;V>WG@$*FpBfZ<<%VaJK|oQ`l=!z6rUDGdstBZN5vBy-HG|tfLMFPUCm} za=-UMEe{=ZP?Z?RthW<|6i~hkM^&e!-rDt*kws75?e@c3>*cyO3lcKKikD8=Na-D@ z2q0-ukh4J5UJ>0$7~~&BRw12M06>Q*naGl;Ebt%R zmKyGt^Owh+S}o%zy)tu-#H;uE!yzicJ0zX{!-Xjcx%MpxivfJnDF2pkFn>jQls6$s zr-Rw#FxGe09<*kz6ByN3#CZ1UX~(NA#8uLOJ6ZF`BJIH*@?r?$*9v10Ecepo_Z4#I z08hL`d5(1R?sb0O2N#A>r@Ky+5svg1K#5xUXc3LO{P&Aojl(yPD>A=E2ihh7xrtsa z>scH9*Nk6!51RjADP+qU52Khvm51K|UC_j3+p2H2m1U`Z76iiiGhYBYUFxKRY=&C; zdE)WcgxYr&#`}pxUMT}f+R?sgskew9tAE&NVq`oY9T(oM+HgFk5*#kX1K=!UVLq~4 z*?K+Y0$JODI-97jfZX;o|(hS8{%mgcNN2n*_9^1d8RNp|K7vz zk2dUeEESo5>tV!`hKhffV-MZzjkO9|iUIWOf_(VQZ{1rlZL z105B8JeeNfF49L^?I5!)?{waTl1R>Z$zPU(JsJ)Sc3ot(5WGTFo~Bn$6pbvy^gd%D ztm>s~^vG8<*`*7$N(-{0?O@gHy29YUo0iO?l<3`zmcc87JPdrTwXuWuKt|9m=UTB6 zKK5vEX<(i|HW#UJV}`1C zj)=_m&qFRB&4){_pb^t)gK`-9(&jTi+n)KXGNP98h?)b-bbg9{jN*P`SCcmPLgA59Wq6*>Eb5V1@u9y`M_3UT_DE$hYSw}C?3W)rnVE7x#_O^4^CI+Ppw{Ud*Qs3?v9nHQn*&F?o-e||63AO4;;`7Ep5-3*3=TK z1aMmsRGK4?>LH&2uByLCdPH8{e;fkYsi4!4(<@%3GmJ5U?ncHTI5zM}cLw?lg} zR1{%j-uyFyWr`lk2k-m($(zOCL+8tvR+o2ZZ63wk;RaMjYxrd@@nfE6MKQvEzy?1L zAJN(10vQnD|0Fa~92{N*@j#Aa_4|SU{Q*U8Uu;X-ElqY9N^)pQPHI11HT#viLH*Hg z6+FNGidNQsPgV;DT(d;*@$*?G0Wr#>_7fAaZg#LTYsMS_ohMQ#=ognYvU$$4_nC*XM8TkZXzLazm1^?XQ+0 z#t~#<#F-UO06ZfH&m$*O@XKcxTXlo510QV!BX-(iI-NO5oq^ihxI38Ub#l^^%UD9k zP5*yQ&ye`v>48Xsa0?5GAC&;PdVYS=uO)pCY(}3IYWS(XClddjrpVMOuI8Ysi4UZo zYSd=j;xImVl{Ku~P>@I5t8ifDV*Y=+I(2VmF~Hi!&O~+PFnqVM3IAWjZF6<|z!F^C z;CH2*`8qN>MgM;F_`?NmA?e-2($oLqdT%PJZ5frG{stG4gqe`bsQ-%`Pdzk7y?0Y! zvjA)V@#6soh6GW7Bt%tRr&vRzWjBjvI34kq8qP#pQuYk!V=kTZ_fQdwr-e*mr{;?L z0nEYcrslYfI+R6$kAZ>(fad=YLt5e;r0b!ywDc>4np#&USJ(Os)(?@d z_YD6T{Anruv!W?4!CQ0Dd*pE9}(M`?^L-D3)JiiZ;GDioi2+6GGCO8Z+Z84u7f z$T33{-5Id+hp>wOi>ltO(sdO_C&~Floq` z{ZYxkN%2BER+wCb=<1wqXMA{IjmSY_5zrGQ$F*HRAtK07?Y|#x-T2OVrA4f!j-gRD zZ$^9!Ij0B<{;H05ZDTe1U#xj^(@S2uv*R=M=<6#2$%m#!kaItU3UEQU3jWJ-;`KO%CbN)EhM)h{tmi-Ue#L6=vwtrUpUgGEz#L^^IjE8=zg_c0 z8rAN6XJs+`5VLUq!rNcOHEz_Njhw_bjC2bT&21U|)cAOU!qOs~Bt}L3B9hhA6jWz-y%s0MR0JT59r(}RccxhM* z{hV~@u-MEYt-{1W6eqJL!<10+!)}L@I0~J#;q(Ka_*>i3q8kfGbLo)-w;DY*8{zb>nVTCj z7Q<`a>;O0?pX2KGt|D0?8ubGi)1HLqqJt#8Lb`~bZ!PfI#jZqZ`-5Cd>*VwVtWSMu zgiJ1piz?cXW};*U{%JuW%wE@uku<$oWG>vn4{Ee&1rHufW|!}lHDN;(06CI7Hoq5g ze}dDWu&;JSrHJ?ntc1kFu+3Kyg$DtmD8k^AE-Jr>9WYG~7B8pytOi%4?Xoa=U(dzKvZ|B9bHfTYfw)+Ep|=9ZzCTn-_&8nx^OGE+mfG-#U0;a zFtaz_1pOW#H8#vb7S0?Fp=xm_X55qr5gSv|)TO?5jFC9^`@q1{`3u~G%Qr7{TgPhA zbo;F}vuZ!SSb8P?JvSrO?e9$k zT;Wi!C;5F-74h6vsy}4`e{W_cQ!3K!$#|Mv(a2+RuCg5sY)ef~QV^G-VAdxukmLE# zYj4#1VfC^iDG6=wZK5RfR$aCi;@@o!`EvPgrBI>95qsN`c~Zx9PjM}E*yj;FDm_f8 zLf@}f6F1nEK}pK?#N3FrD~hGwN;Pc0OWj5n*FWUDmypTgSRq9rMRSMmM9KdAIy2&D z^DetbPL@;2x~W3KF@%wNB}Zy*G{0}f&y%g|vabZYI*xg4wtwT-?oNo=;u}(Q-`(mA zL@e}*9x)hXy^@)h0)8gzUWP6?9hOl9k1xx5k-zHu(u0A7=W+A_h^QXsuM+$8rWxZm zwO=FqueZr9aE4y*AH3ALTM&jNnx*G{T}b}NhJi5w_K$IVJA>(MPj($9~ z?7KZCb+3pMRxvdALMP_A#}gm|CU^2+Yu{8M8PqC4qaX)Vr*W)Q|6(h#VK95e?OJK*Tcp#~wS_*FB!U(2#;X;tFH2-g<$Oq0WY z&b_4~C}z1IrrlOwx=^hxaM^Q4S#Y*oK_2y~p*S7VMqzOP$fWG-_M|9ZY6;758Qd$X zr_QX&(8NeDmTH_{=Ad=PrkH4T&Mk}B`7N}erPt1q*reVKSsKpJxu7f7tBxhU=1x5m zFmSUe6Xd0*@b7TC^G(Y{u^vw~8|F;s3Fl&N^V;VG)^@sN39&@m3N1awwv35OkeL3A z%cDAKKUss5AG&c>L%ID$IqP49FvGtSQ4p%XyT zdR$ahupZrwWSwCby}6!fzW2%K?%1l!gfdyA1Lrt)iYx?!gxD3%SV#YaQuNE0)@=sn z+Sq3=O-$$Wzmnrh7Y7TFhz8>H`2ea&J;SLc5jbuzGSyGn>`Y?mU24=rzejm;iP)i9 zO99-4fjiw{Ny@v`JHBucH}5w;i$m`gWM<8AcSb$m5Kp7atPPz*lU!Y!oWFmL&Y}$n zEDcv*rQ8)EGMGtpxh-pgrN1vOX-%jYe|$n#_QroBlorris!eRp^xuh3y&q--OL`xa zT}=ijH{Nx}^0hvWX}Z=H=lhic!Voy=dEb$7{JTS&x?B)TQKDmepnB&V<68QrJCX3@Etl#ea7*Q%HEO#WHQ3P}SO3`*Gq;V~o>{-4Ua(hcQFrgi*wcKAiU%j?i`Mbqu z*S9m1cuwUU1}HIGNUt^~oSnH4N( z?Kxr!-|?<{HhJmYf#!nuA<-L&Hf+S{c*xH##%~}_X@Q@P%A`KFu`bVHp|U5Ei<9a0GP#VJm`Q#!;jG8o_T$-_WEmF=^P)P-kMZ_iBBr z5t0{Upq|$pdnrb2*3=B@NHCg6P&_%bStTj;=2~@oBTp1OQRYZ>BfLIi33EOi)byI3 zuP;+sQc)l)*qYZc)f_D6VI%l7xhHF?DYuq0qC?s>oT=9wN|BB6D;%2qjjUC0?NnrP?Qp(X!HM#wE8I8+aJny7w$nKe9l%>5%p9RFneK5--y_tu0q!i-03^Ja@?WRofOnm00{G*PuSOpVkQ;CWDeD>T zM0Rs+GbOWiRTn?5OSz>LGVwT>Jd0f5D-&k^HGAnpbnNbRn4fnap}A*RE_tY5{M|kb zRqi|GHHPP!Lb*3I>=?m>EoyNSi=L{BWO8M&?O5rFV(-~YfK%q|2oOS%GKC|kpgXL> zw8pr0i4Z7>E_;yFrr^$73lSBagXx-|{#p7$K^%NE6JtrOmnDBU+*@c*3drXQKAKZ! zwXR^VNzoPfh#FMU%SFr0jdRm7JHGH1vweFqfrnSlI~q9fS9co!Y8D+GAphREB!_~<`k@b2PPC5l`?W*a*^EOUXF z!8$`Y@iA(bcn#AwCF_=9fx`gv-E@uuY1()&^zk0*23z#|vP56t${)yJ_~NB6!akp!7FkdHyj?vl?l<9%Ow5c5goqft>cHU0*bx> zhrGWtABzW`84S~t#eW9;bksZhImWJ?D^RWyW|)7 zEwdxmr3S4P7@n&d9_H{>O*cx75=(`&Y_F|+Oq$DlR^`Sbgu9Px;_vdq1x1wYFNHMM zN^f}EVT5pnKT6INDhZKg3e0#s;&NZLo)jzyboiFHX{G%9SF^XBhvCDFys zLdh5C7g<{lkro_FGp@gmbzE&2YG*ssMrWLB0Pr$esx7P3KS;lCWYG#sIT?F0!X`&2}f*PTLcnt2fL+Swm0& z*o-%NI_v-0tf#<`KXD;=10OZf&C}<~*e*|8R?`{ILC$Z0Q9rb7_@ zM^60Ti-V!{j)9D@@1!QdQdj`j;aNEYI2mzA1zYh?VwhQ z?8fj}0!{y|nQ9&`S2zx9Cgs;&9N3FYvw3Lno+JKaGmA8)LWic7?vm{2xK#6Y<##BR z`#zW&|FjqvrOy;4A=`JFfC;s)?W}WzfYc*1G(M44YMNF!7noE=R11r>X z;itKxT4UAn!3X=LjT){c(+ub-l_Ai#sa&=g{@fbeCHfsUWF*_mPn;~@4Sckb9yRuG ztI3H7$2MIVxBuinledeZR*citv*cuRu@rpZWx+M+*fH9Ho<}?hX$l*?CDd$1eY~y> z#nT|Ege6C@T5ix=yOA3E4l1A}_WO6`ouIrx;d$|cBO~j+=j4O|u(1=%2=;3x89KU6 z5tA`8F{6I3PWGi&h%Ab|=UacC6H3!#12-Z4XAMjd0#j$o@E6rF}Ru{QmyJof6 z$?l(&UYkq-6@Y5dV7-kdHI%YB;6EC6C8$=U{?-H|^_ra7~Q@D zh&Bl)wV_aNI3j zM0qO^sYrO<238oRbbfvdouLD+x>6cRC3kZ9U3Fj9hV1*OL!6Gboe^fX@%7$(4H=h| z3`fq$hzC0q-OsXZqwE?WJ&oc)BS! zO=47w|KKd6{ez}gB8d}07z5`%i50QbJfJKL;4nN&kJH)$1WApAZI=8Ei(4eVt}qMBkAa@ao$-(&2*; z>KeC34B2TOxW>mqV62eG{K7Dm!ekC?jR1%{$kmX4dTsfG3GU1#uGz@)Q@YehMx&h9 zAw9!|9PIl;M zJ9i3ti%|6~b4G9K3{{i9syZ`MzDdd7=S^&eiR}8F(DtjIMY=Z$v~gFrQq0{ARg^5MFWt{%**QJb~OBom% z9n*stAuCYkB{PqVMn|$;M$D+FsGtf}Mg3daAO8kho4~mDiXFxLDLNi$UrP!JOZy(= zt2WiaoqzGumD&ia0S=9ci3zwlhc71v2B2!I67gQ+f2QppgqeZ)ANHQ+s>~h*pmZ9l z8IKWB0mkW42l4>=gPn#_bIa2%4bMSe^8-|-WhtNkhrL7R^*14KT#@F~Vf(>sa%Obx z)yIDi=C6$F%u?SeSTUaQzk2-KGgk)#3?SY5SB?KmF!rw%yTG+XHYBb8Ws?uu>IX)p zE#aNkS=aaf!o{B&SJ_Z0fNsgG6aQ;cut0PvOcg5swuEOM@UM{je=Vo(B-eDh>DmhR zj*jWjdOfSrti8)B=2GF-uO&b_U8{EA&%oOlJDy&6Soh4rS#&33$0jkXM84DQs52T~ zD?mgvnidpKvRcAAjnJz6xT>nnJx^q~7FVvbLB1547gObU0V zbQDP5wd08}DD}cpUJ>cBb2|g+`VF@#;oC7UwY0<+;vTqkABy^mg#8W7K1d4TzyGt0 zU+2di+|-2TR{j40YTuUKw}4K{NM`5vMncy9vIU89?dF7tvc04-EaQZsw2g;Plq0vl z&5~3u6q_YsIrd5Ry&$s8NCH5N+L?1tJ@V}6(}tS~KSGIZ4O`<8Uz3i|h74_7Y`&R& zOavq_9ccyezSI`N27qc4)wxLXt3_X_@(5Zswy2cmj*OJK>^&icosXiNt|9pT&0@@# zy)TG}e$VS3kf1hqyF=uVC@9BO0hRTI1&_0{b8jVC|LDN8Cjm}U^+k3jmX|-E=UQ#| z&0kZR#!2QB>gU6_sUnQv4tTr1_|kfMEb>&Lme(m9o00En0IN{52QTDxH($+Qnrv-; zN4cHzk{9s9= zB;B~#=j1#Y(RaRIJv$<39kL>qjCE18i6H78?Rc^7lwFgQEzhq%yQV`K_cod+yr^Dp zxiDet*d$5IcYI;j6%h&u;IFNi-^njUGkf0D%Ga2Qg z;Y-a=l$Ecki7&MQ(_CzHS>USMse6|-YBxqDJ)eGSz0kxNneJ}fch83gTQe2Vn}@@h z4h-?=-PbWas?y)zU#|AG7!TSVC4&u5ktGib+bC=lTv{q*! z@7qp!6@}X|p#qRn$qF4nieA3mwyDajdLwa+6ob1xjmoF1xAtT(e_W5J^dVU4f+ z{qnA^THg8{hjHs1_lm|GC*bo=9p9vWS35La@5OMB1zXypcV=(!=>NI;Zj-pndb-0? zG)^)LyZ0amZgFeGC_CE34uWL)n(&s>`~1N!yh^Lks42VO(QDvS7S08bY{SL+;QVbh zA%yPo@7f~j;6eWtRMH+jZrF_c*a{=u`CoU^JNEWT#5{Jtl`9a*r>z`5eB6LzMAL?1xReSjYpS|+Otr7{`Ap@ zSXvxSSK8kViN861=(9(??k-3Ev7Yrs1HVDw zH{QF7ub8B87qgmrdeR&&@o!!RjPcv^OdB>%N|u~Hr^A&qzt!B|#kRb%*|L5_2Nb2) zu+58JP9^y$N6;}^vv$2Zxu=Ugx3?N(CF#I1ZT7&O#Mt`2!hzdZF&*9#LXbgiGXG?j zBWfJc{{nGDo@RgjJ&ZWv-BaqJz6r9f@>6XOo+XbK&aoM$gKPI1`zM5%WIA<=Ec_DZ zn$V}j#sGBPyB9xEu(6k0EyqgLrad%FmpDV=&R054byWiFkzTCZ3wPY6S@7p@7Qf{{kw zotq+W@?G zbkX8k=_;&gMV@3~5y!HEj5Q=WAFCwaK*O-KY`4tt6dHT2JMIj)xzh>#1Bm7dOP5f(_RyLJN`-3CA~)| zPhoDyO_jYnn(T5CK5DhOX@c~1G4*KI$|5kbMYRK0#zS(<@eRGlZo`_Ih-XC)H{QnT_%dEW!!=t{8#(shZCdE#d7nKecw~$!hdaXIS7Rq|@^Efz98=4z*PjNl&opYxJ@EC~oCADm$UORAphn5P4Gem|J-1~Ks0F_l zHU`g4I}ZvyNq#=!hJ{J%YeH1^WmZW2Z%!CBo;<<6HQ#PV!%8N&bvPRrtL*t@4a~Tw zD85HhGSNW)IHD)REtR|rDlfg6sf=804M*iFbj^rySG{a@pv`>L3YYn{^^fr$Dd7iT zt7_tEv@=4I2iLxqghth3Wn4LltMCPw&V6zn<0m>8GZ!7#KEQ5tDAxR036<%yHr1lC zFJ8QFG9_D3#>ug)ray0pTA77&aoFz65aW&K+UI8pzi&tvyW3}T5Pzz&XNHf;uKos% zG~H{<`Uj(SxX_{_x0Al|$*HRYFzNu$!0Jbbipilcj)H0RhNJI%xENqJ3btF;rCIG2 zSk_+YLF=tV84u+vrI9g$kw24heUZ9Tu9xVmUQFqKic`3V@O~$bdl7=-A#Mg5vbMxR zNa;n^@2_V71ltbtV3o?6ShL9|)VwcOrDV zo{3(20#mgXKotG5_<~$4n^*ZObp6~bl{haTYEQrmhn@Eq7>nVtrv^FlwaJAW5mv+2<&^)J1 zr$^+ziLF-f9 zix$&bv{2e7e5Hn+`n_u5y^&^Lnmn-_HxfmZX~zsxo7UW~tB`|BFjmgLw$g0Xr~RCV zZoXEXahD#sy3&XvKfR3n6>$Tb0*O3Ep5OES0aCSLH}})|#F{gS*_JNRF+>C4kH7Ei zMsA6;1fsIgh+Rd+iHkPnJFrK>S%rZNRU*-CzV(C8{tKe0Waa6B`pGB8)SMB*ny%xR zq`f7aOGgdFlJvqcW9Ghkjb|ZlnjyS9ntB&jDj5wyv5uLHne3lye4&f#WIA|Ch8g4< z;URdqA)amoYN=$;TGZZ03XK zdp%1sOhp=ItmAQEPkXHP7#xCwX$Lgy?hg^~(zyQa1atj#h3k)SQ6QIEYiso*ZaM1# zfokC`WuOwF30{|WZ^Uv!jhg(}OApQZ+No!H^#|HV4(-0+E85KP~9xRn_P~MLz)qvq=Zb3B5kAOTp+s0gotWy$1`1|{vkp&~ zqpc%UbFzXjo&nq^s@%q1f*GeMQZnFH9Nqc98kY61qdo{*kEXt)HF|eXgjHDEDW+7{ zBJ<5L8A#deN9yFs=;4Eij!X?h?g#CPt%-A1DNReeQ*fq$RZv|7)=`K|<#22}-qDux zus@cqg&(8?1xlh#T2mh@^N&>qK%ZD|USKnFZL7Y^?(5)J39Lue{5C7*9pV8??SK$o zr@&s^{K97Z9(rT=29Ion#h=3vWJQDW;6f6+kvV(0oA_UYpc%1ubM&-hwE3f4M z4Fo-bKd21p=)!BfiW52s1cXg~Zl&aU>ZaXCkuu<6ZqJH7D)W?VfZ+#vt1bP7VuChg zEh1>DndLsRTgOnaM#ul?FX!k_OSE&TSMxSAo=S#KKokjpPD3{ zCMR)%)NWXbBa~D04Q&;y3+%^jdu}*;1;_?bm+eJX-UO2b+xJze5N}%EX^2}K4s5tG zAiW;Vxx{+d1b@!ags6EY&hu@VBvmd(f0S`5!00H?#ngIML5VD;G&YwU>;J4KafPzh z+%LgwMej8*09(|}@6YY?bTfZ|YcrL_R&o z2b-*-3^8%PIvb0w)v3dznzvpxfctpj6tm`OpXqM~R{%4#6);2T7U8V#$g{pW9I0ys z)pgSAVyeNm{1(aQ}epR;=LU_@<%La0(`)*)6x&NuOv}41M*w@ z5=NqtctHMG0zgt=vm zkC(n|M)DZAEmB60Pl(huX+&6HRA`&tj&{ISS9=}1{tacIOU-S(ZD5jb-QT$ET?u&gE)DpHFg_WqA{X<|*Kw;oJlF^Z7B(QHA4))3nb8xAdABHdiAzjfl~+_C zsTms|m7{@*RTFv8UcO>~Hy)(~0Cf7|)3kp|aYsFSk{uMf$AReewxZZaoD#N`7V4!+ zv>Vv=p9pr>Efhe@Gcq!+>M{)fS92Y^n{0ypyCb^}Hw)>>HtO?iJQ$E7*`2uM3o zIOG5-^b&5`59NzAEYO5pf`B4nm_o5vK?}Oq;Mz1^S|&M zrv$T?xBCI~C|yy?6Trd}Cr~>tF%&oR%@iXtdTr874*kOI%eEQ;&QX{f2ZwS1E26@c zTb#BB4#5AH#DpK*{kqq&rcgn^!d$UBg6|g)JpOfaCs2{rAk literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/blazor-scheduler-postgresql-frontend.png b/blazor/scheduler/images/blazor-scheduler-postgresql-frontend.png new file mode 100644 index 0000000000000000000000000000000000000000..d281d1e087316ac9001c6751546a4e8126df48ec GIT binary patch literal 52964 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
        **|1-83lAA%a%X1C+V!XLbT F`CnGi+rj_< literal 0 HcmV?d00001 diff --git a/blazor/scheduler/postgresql.md b/blazor/scheduler/postgresql.md new file mode 100644 index 0000000000..2b76338821 --- /dev/null +++ b/blazor/scheduler/postgresql.md @@ -0,0 +1,1080 @@ +--- +layout: post +title: PostgreSQL Data Binding in Blazor Scheduler Component | Syncfusion +description: Learn about consuming data from PostgreSQL Server and binding it to Syncfusion Blazor Scheduler Component, and performing CRUD operations. +platform: Blazor +control: Scheduler +documentation: ug +--- +# Connecting PostgreSQL to Blazor Scheduler Using Entity Framework + +The Syncfusion® Blazor Scheduler component supports binding data from a PostgreSQL database using Entity Framework Core (EF Core). This modern approach provides a more maintainable and type-safe alternative to raw SQL queries for managing appointments and calendar events. + +## What is Entity Framework Core? + +Entity Framework Core (EF Core) is a software tool that simplifies database operations in .NET applications. It serves as a bridge between C# code and databases like PostgreSQL. + +### Key Benefits of Entity Framework Core + +**Automatic SQL Generation**: Entity Framework Core generates optimized SQL queries automatically, eliminating the need to write raw SQL code. + +**Type Safety**: Work with strongly-typed objects instead of raw SQL strings, reducing errors. + +**Built-in Security**: Automatic parameterization prevents SQL injection attacks. + +**Version Control for Databases**: Manage database schema changes version-by-version through migrations. + +**Familiar Syntax**: Use LINQ (Language Integrated Query) syntax, which is more intuitive than raw SQL strings. + +## What is Npgsql Entity Framework Core Provider? + +The `Npgsql.EntityFrameworkCore.PostgreSQL` package is the official Entity Framework Core provider for PostgreSQL. It acts as a bridge between Entity Framework Core and PostgreSQL, allowing applications to read, write, update, and delete appointment data in a PostgreSQL database. + +## Prerequisites + +Ensure the following software and packages are installed before proceeding: + +| Software/Package | Version | Purpose | +|-----------------|---------|---------| +| Visual Studio 2026 | 18.0 or later | Development IDE with Blazor workload | +| .NET SDK | net10.0 or compatible | Runtime and build tools | +| PostgreSQL Server | 12 or later | Database server | +| pgAdmin 4 | Latest | PostgreSQL GUI management tool | +| Syncfusion.Blazor.Schedule | Latest Version | Scheduler and UI components | +| Syncfusion.Blazor.Themes | Latest Version | Styling for Scheduler components | +| Npgsql.EntityFrameworkCore.PostgreSQL | 10.0.2 or later | PostgreSQL provider for Entity Framework Core | +| Microsoft.EntityFrameworkCore.Design | 10.0.0 or later | Design-time tools for migrations | + +## Setting Up the PostgreSQL Environment for Entity Framework Core + +### Step 1: Create a Blazor Web App + +Create a **Blazor Web App** using Visual Studio 2026 or .NET CLI. + +**Using Visual Studio 2026 or later:** +1. Open Visual Studio 2026 +2. Click **Create a new project** +3. Search for **Blazor Web App** template +4. Configure project name as **BlazorSchedulerApp** +5. Select **.NET 10.0** as the target framework +6. Set **Interactive render mode** to **Server** +7. Set **Interactivity location** to **Per page/component** +8. Click **Create** + +**Using .NET CLI:** +```bash +dotnet new blazor -n BlazorSchedulerApp --interactivity Server +cd BlazorSchedulerApp +``` + +> Configure the Interactive render mode to **InteractiveServer** during project creation as the Scheduler requires interactivity for CRUD operations. + +### Step 2: Install Required NuGet Packages + +Before installing the necessary NuGet packages, a new Blazor Web Application must be created using the default template. This template automatically generates essential starter files—such as `Program.cs`, `appsettings.json`, the `wwwroot` folder, and the `Components` folder. + +For this guide, a Blazor application named **BlazorSchedulerApp** has been created. Once the project is set up, the next step involves installing the required NuGet packages. NuGet packages are software libraries that add functionality to the application. These packages enable Entity Framework Core and PostgreSQL integration. + +#### Method 1: Using Package Manager Console + +1. Open Visual Studio 2026. +2. Navigate to **Tools** → **NuGet Package Manager** → **Package Manager Console**. +3. Run the following commands: + + ```powershell + Install-Package Syncfusion.Blazor.Schedule + Install-Package Syncfusion.Blazor.Themes + Install-Package Npgsql.EntityFrameworkCore.PostgreSQL + Install-Package Microsoft.EntityFrameworkCore.Design + ``` + +#### Method 2: Using .NET CLI + +Open a terminal in the project directory and run: + +```bash +dotnet add package Syncfusion.Blazor.Schedule +dotnet add package Syncfusion.Blazor.Themes +dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL +dotnet add package Microsoft.EntityFrameworkCore.Design +``` + +#### Project File Reference + +The installed packages are reflected in the `BlazorSchedulerApp.csproj` file: + +```xml + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + +``` + +All required packages are now installed. + +> **Note**: After installing packages, build the project to ensure all dependencies are restored correctly: `dotnet build` + +### Step 3: Create the Data Model + +A data model is a C# class that represents the structure of a database table. This model defines the properties that correspond to the columns in the `Appointments` table. + +#### Instructions: + +1. Create a new folder named **Models** in the Blazor application project. +2. Inside the **Models** folder, create a new file named `Appointment.cs`. +3. Define the `Appointment` class with the following code: + + {% tabs %} + {% highlight csharp tabtitle="Appointment.cs" %} + + using System.ComponentModel.DataAnnotations; + + namespace BlazorSchedulerApp.Models + { + /// + /// Represents an appointment record mapped to the 'Appointments' table in the database. + /// This model defines the structure of appointment-related data used throughout the application. + /// + public class Appointment + { + /// + /// Gets or sets the unique identifier for the appointment record. + /// This is the primary key and auto-incremented by the database. + /// + [Key] + public int Id { get; set; } + + /// + /// Gets or sets the subject or title of the appointment. + /// Maximum length of 200 characters. + /// + [StringLength(200)] + public string Subject { get; set; } = string.Empty; + + /// + /// Gets or sets the detailed description of the appointment. + /// Maximum length of 500 characters. + /// + [StringLength(500)] + public string Description { get; set; } = string.Empty; + + /// + /// Gets or sets the start date and time of the appointment. + /// This field is required. + /// + [Required] + public DateTime StartTime { get; set; } + + /// + /// Gets or sets the end date and time of the appointment. + /// This field is required. + /// + [Required] + public DateTime EndTime { get; set; } + + /// + /// Gets or sets the location where the appointment takes place. + /// Maximum length of 200 characters. + /// + [StringLength(200)] + public string Location { get; set; } = string.Empty; + + /// + /// Gets or sets a value indicating whether the appointment spans the entire day. + /// + public bool IsAllDay { get; set; } + + /// + /// Gets or sets the recurrence rule for repeating appointments. + /// Uses iCalendar RRULE format (e.g., "FREQ=DAILY;INTERVAL=1"). + /// Maximum length of 50 characters. + /// + [StringLength(50)] + public string RecurrenceRule { get; set; } = string.Empty; + + /// + /// Gets or sets the ID of the parent appointment in a recurrence series. + /// Links recurring appointment instances to their parent. + /// + public int? RecurrenceID { get; set; } + + /// + /// Gets or sets the exception dates for recurring appointments. + /// Stores dates when the recurring appointment should not occur. + /// + public string? RecurrenceException { get; set; } + + /// + /// points to parent series Id + /// + public int? FollowingID { get; set; } + } + } + {% endhighlight %} + {% endtabs %} + +#### Explanation: + +- The `[Key]` attribute marks the `Id` property as the primary key (a unique identifier for each record). +- Each property represents a column in the database table. +- The `?` symbol indicates that a property is nullable (can be empty). +- The model includes comprehensive XML documentation for each property. +- `StringLength` attributes enforce maximum character limits for text fields. +- The model supports recurring appointments through `RecurrenceRule`, `RecurrenceID`, and `RecurrenceException` properties. + +The data model has been successfully created. + +> **Note**: The `Subject` property does not have the `[Required]` attribute to allow empty titles. The service layer will provide a default value "Add Title" if the subject is empty. + +### Step 4: Configure the DbContext + +A `DbContext` is a special class that manages the connection between the application and the PostgreSQL database. It handles all database operations such as saving, updating, deleting, and retrieving appointment data. + +#### Instructions: + +1. Create a new folder named **Data** in the Blazor application project. +2. Inside the **Data** folder, create a new file named `ApplicationDbContext.cs`. +3. Define the `ApplicationDbContext` class with the following code: + + {% tabs %} + {% highlight csharp tabtitle="ApplicationDbContext.cs" %} + + using Microsoft.EntityFrameworkCore; + using BlazorSchedulerApp.Models; + + namespace BlazorSchedulerApp.Data + { + /// + /// DbContext for Appointment entity + /// Manages database connections and entity configurations for the Appointment Scheduler + /// This context bridges the application with PostgreSQL database + /// + public class ApplicationDbContext : DbContext + { + /// + /// Initializes a new instance of the ApplicationDbContext class. + /// + /// The options to be used by a DbContext + public ApplicationDbContext(DbContextOptions options) + : base(options) + { + } + + /// + /// Gets or sets the DbSet for Appointment entities. + /// Represents the collection of all appointments in the database. + /// + public DbSet Appointments { get; set; } = null!; + + /// + /// Configures the entity mappings, constraints, and database-specific configurations. + /// This method is called by Entity Framework Core during model creation. + /// + /// Provides a simple API for configuring the EF model + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + // Configure the Appointment entity + modelBuilder.Entity(entity => + { + // Define primary key + entity.HasKey(e => e.Id); + + // Configure string properties with max length constraints + entity.Property(e => e.Subject) + .IsRequired() + .HasMaxLength(200); + + entity.Property(e => e.Description) + .HasMaxLength(500); + + entity.Property(e => e.Location) + .HasMaxLength(200); + + // Configure required date/time properties + entity.Property(e => e.StartTime) + .IsRequired(); + + entity.Property(e => e.EndTime) + .IsRequired(); + + // Configure recurrence-related properties + entity.Property(e => e.RecurrenceRule) + .HasMaxLength(50); + // Helpful index: find all edited occurrences for a parent quickly + entity.HasIndex(e => e.RecurrenceID); + + entity.Property(x => x.FollowingID); + + entity.HasIndex(x => x.FollowingID); + }); + } + } + } + {% endhighlight %} + {% endtabs %} + +#### Explanation: + +- The `DbContext` class inherits from Entity Framework's `DbContext` base class. +- The `Appointments` property represents the `Appointments` table in the database. +- The `OnModelCreating` method configures how the database columns should behave (maximum length, required/optional). +- By convention, Entity Framework Core will create a table named `Appointments` based on the `DbSet` property name. + +#### Why the DbContext is Required: + +1. It connects the application to the PostgreSQL database. +2. It manages all database operations. +3. It maps C# models to actual database tables. +4. It configures how data should be validated and stored. + +Without this class, Entity Framework Core will not know where to save data or how to interact with the `Appointments` table. The DbContext has been successfully configured. + +### Step 5: Configure the Connection String + +A connection string contains the information needed to connect the application to the PostgreSQL database, including the server address, database name, and authentication credentials. + +#### Instructions: + +1. Open the `appsettings.json` file in the project root. +2. Update the `ConnectionStrings` section with the PostgreSQL connection details: + + ```json + { + "ConnectionStrings": { + "DefaultConnection": "Host=localhost;Port=5432;Database=SchedulerEvents;Username=postgres;Password=your_password" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" + } + ``` + +#### Connection String Components: + +| Component | Description | +|-----------|-------------| +| Host | The address of the PostgreSQL server (localhost for local development) | +| Port | The port number on which PostgreSQL is running (default is 5432) | +| Database | The database name (in this case, SchedulerEvents) | +| Username | The PostgreSQL username (default is postgres) | +| Password | The password for the PostgreSQL user account | + +> **Important**: Replace `your_password` with your actual PostgreSQL password. + +> **Security Note**: For production environments, store sensitive credentials in environment variables or Azure Key Vault instead of storing them in `appsettings.json`. Example: `Password=${DB_PASSWORD}` and set the environment variable `DB_PASSWORD` on the deployment server. + +The database connection string has been configured successfully. + +### Step 6: Create the Service Class + +A service class is an intermediary layer that handles all database operations. This class uses Entity Framework Core to communicate with the PostgreSQL database. + +#### Instructions: + +1. Create a new folder named **Services** in the Blazor application project. +2. Inside the **Services** folder, create a new file named `AppointmentService.cs`. +3. Define the `AppointmentService` class with the following code: + + {% tabs %} + {% highlight csharp tabtitle="AppointmentService.cs" %} + + using Microsoft.EntityFrameworkCore; + using BlazorSchedulerApp.Data; + using BlazorSchedulerApp.Models; + + namespace BlazorSchedulerApp.Services + { + /// + /// Service class for Appointment entity using Entity Framework Core + /// Handles all CRUD operations and business logic for appointments + /// Communicates with PostgreSQL database through ApplicationDbContext + /// + public class AppointmentService + { + private readonly ApplicationDbContext _context; + + public AppointmentService(ApplicationDbContext context) + { + _context = context; + } + + /// + /// Retrieves all appointments from the database + /// + /// List of all appointments + public async Task> GetAllAppointmentsAsync() + { + try + { + return await _context.Appointments.ToListAsync(); + } + catch (Exception ex) + { + Console.WriteLine($"Error getting appointments: {ex.Message}"); + return new List(); + } + } + + /// + /// Retrieves a single appointment by ID + /// + /// The appointment ID to retrieve + /// The appointment if found, otherwise null + public async Task GetAppointmentByIdAsync(int id) + { + try + { + return await _context.Appointments.FindAsync(id); + } + catch (Exception ex) + { + Console.WriteLine($"Error getting appointment: {ex.Message}"); + return null; + } + } + + /// + /// Creates a new appointment in the database + /// + /// The appointment model to add + /// The created appointment with database-generated ID + public async Task CreateAppointmentAsync(Appointment appointment) + { + try + { + // Reset Id to 0 to let database generate it + appointment.Id = 0; + + // Provide default subject if empty + if (string.IsNullOrWhiteSpace(appointment.Subject)) + { + appointment.Subject = "Add Title"; + } + + _context.Appointments.Add(appointment); + await _context.SaveChangesAsync(); + return appointment; + } + catch (Exception ex) + { + Console.WriteLine($"Error creating appointment: {ex.Message}"); + throw; + } + } + + /// + /// Updates an existing appointment in the database + /// + /// The appointment model with updated values + /// The updated appointment + public async Task UpdateAppointmentAsync(Appointment appointment) + { + try + { + // Provide default subject if empty + if (string.IsNullOrWhiteSpace(appointment.Subject)) + { + appointment.Subject = "Add Title"; + } + + // Detach any existing tracked entity with same Id to avoid tracking conflicts + var existingEntity = _context.Appointments.Local + .FirstOrDefault(e => e.Id == appointment.Id); + if (existingEntity != null) + { + _context.Entry(existingEntity).State = EntityState.Detached; + } + + _context.Entry(appointment).State = EntityState.Modified; + await _context.SaveChangesAsync(); + return appointment; + } + catch (Exception ex) + { + Console.WriteLine($"Error updating appointment: {ex.Message}"); + throw; + } + } + + /// + /// Deletes an appointment from the database + /// + /// The appointment ID to delete + /// True if deletion was successful, otherwise false + public async Task DeleteAppointmentAsync(int id) + { + try + { + var appointment = await _context.Appointments.FindAsync(id); + if (appointment != null) + { + _context.Appointments.Remove(appointment); + await _context.SaveChangesAsync(); + return true; + } + return false; + } + catch (Exception ex) + { + Console.WriteLine($"Error deleting appointment: {ex.Message}"); + return false; + } + } + } + } + {% endhighlight %} + {% endtabs %} + +#### Service Layer Benefits: + +- Encapsulates database logic away from UI components +- Provides error handling and logging +- Allows for easier testing and maintenance +- Handles Entity Framework change tracking issues + +#### Error Handling in Service: + +Each method includes try-catch blocks to: +- Log errors to console for debugging +- Prevent application crashes +- Return safe default values (empty list, null, false) + +The service class has been created successfully. + +### Step 7: Register Services in Program.cs + +The `Program.cs` file is where application services are registered and configured. This file must be updated to enable Entity Framework Core with PostgreSQL and the service pattern. + +#### Instructions: + +1. Open the `Program.cs` file at the project root. +2. Add the following code: + + {% tabs %} + {% highlight csharp tabtitle="Program.cs" %} + + using BlazorSchedulerApp.Components; + using BlazorSchedulerApp.Data; + using BlazorSchedulerApp.Services; + using Microsoft.EntityFrameworkCore; + using Syncfusion.Blazor; + + // Configure AppContext to handle DateTime timestamps for PostgreSQL + + AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); + + var builder = WebApplication.CreateBuilder(args); + + // Add services to the container + + builder.Services.AddRazorComponents() + .AddInteractiveServerComponents(); + + // Register Syncfusion Blazor service + + builder.Services.AddSyncfusionBlazor(); + + // Get connection string from appsettings.json + + var connectionString = builder.Configuration.GetConnectionString("DefaultConnection"); + + if (string.IsNullOrEmpty(connectionString)) + { + throw new InvalidOperationException("Connection string 'DefaultConnection' not found in configuration."); + } + + builder.Services.AddDbContext(options => + { + options.UseNpgsql(connectionString); + + if (builder.Environment.IsDevelopment()) + { + options.EnableSensitiveDataLogging(); + options.EnableDetailedErrors(); + } + }); + + builder.Services.AddScoped(); + + var app = builder.Build(); + + AppServices.Root = app.Services; + + // Configure the HTTP request pipeline + if (!app.Environment.IsDevelopment()) + { + app.UseExceptionHandler("/Error", createScopeForErrors: true); + app.UseHsts(); + } + + app.UseHttpsRedirection(); + app.UseAntiforgery(); + + app.MapStaticAssets(); + app.MapRazorComponents() + .AddInteractiveServerRenderMode(); + + app.Run(); + + public static class AppServices + { + public static IServiceProvider? Root { get; set; } + } + + {% endhighlight %} + {% endtabs %} + +#### Explanation: + +- **`AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true)`**: Prevents PostgreSQL from automatically converting DateTime to UTC, avoiding timezone offset issues. +- **`AddSyncfusionBlazor()`**: Registers Syncfusion Blazor components (Scheduler, themes, etc.). +- **`AddDbContext`**: Registers the DbContext with PostgreSQL as the database provider using `UseNpgsql()`. +- **Connection String Validation**: Ensures the connection string is configured before attempting to connect. +- **`EnableSensitiveDataLogging()`**: Enabled in development to log detailed information about database operations (useful for debugging). +- **`EnableDetailedErrors()`**: Provides more detailed error messages during development. +- **`AddScoped`**: Registers the service as a scoped service, creating a new instance for each HTTP request. +- **`AddRazorComponents()` and `AddInteractiveServerComponents()`**: Enables Blazor server-side rendering with interactive components. +- **`AppServices.Root`**: app.Services: Stores the application's root service provider so the CustomAdaptor can create new DI scopes for resolving services at runtime. + +The service registration has been completed successfully. + +## Integrating Syncfusion Blazor Scheduler + +### Step 1: Install and Configure Blazor Scheduler Components + +Syncfusion is a library that provides pre-built UI components like Scheduler, which is used to display and manage calendar events and appointments. + +#### Instructions: + +1. The `Syncfusion.Blazor.Schedule` package was installed in Step 2 of the previous section. + +2. Import the required namespaces in the `Components/_Imports.razor` file: + + {% tabs %} + {% highlight razor tabtitle="_Imports.razor" %} + + @using BlazorSchedulerApp.Models + @using BlazorSchedulerApp.Services + @using Syncfusion.Blazor + @using Syncfusion.Blazor.Schedule + @using Syncfusion.Blazor.Data + + {% endhighlight %} + {% endtabs %} + +3. Add the Syncfusion stylesheet and scripts in the `Components/App.razor` file. Find the `` and ``section to add: + + {% tabs %} + {% highlight razor tabtitle="App.razor" %} + + + + + + + + + + + + + {% endhighlight %} + {% endtabs %} + +#### Theme Options: + +- `bootstrap5.3.css` - Bootstrap 5.3 theme (used in this example) +- `material3.css` - Material Design 3 theme +- `fluent.css` - Microsoft Fluent Design theme +- `tailwind3.css` - Tailwind CSS theme + +For this project, the **bootstrap5.3** theme is used. A different theme can be selected or the existing theme can be customized based on project requirements. Refer to the [Syncfusion Blazor Components Appearance documentation](https://blazor.syncfusion.com/documentation/appearance/themes) to learn more about theming and customization options. + +> **Critical**: The Syncfusion JavaScript file (`syncfusion-blazor.min.js`) is **REQUIRED** for Syncfusion components to work with InteractiveServer render mode. Without this script, you'll see JavaScript interop errors. + +Syncfusion components are now configured and ready to use. For additional guidance, refer to the [Scheduler component's getting-started documentation](https://blazor.syncfusion.com/documentation/scheduler/getting-started). + +### Step 2: Create and Apply Database Migrations + +Before creating the Scheduler component, generate Entity Framework Core migrations to create the database schema. + +#### Instructions: + +1. **use pgAdmin or psql to create database**: + + ```sql + CREATE DATABASE "SchedulerEvents"; + ``` + +2. **Generate the migration**: + + Open a terminal in the project directory and run: + + ```bash + cd BlazorSchedulerApp + dotnet ef migrations add InitialCreate + ``` + +This creates three files in the `Migrations/` folder: +- `_InitialCreate.cs` - Contains Up() and Down() methods for schema changes +- `_InitialCreate.Designer.cs` - Migration metadata +- `ApplicationDbContextModelSnapshot.cs` - Current model state snapshot + + > **Note**: The `` is automatically generated by EF Core based on the current date and time. Your files will have a different timestamp. + +3. **Apply the migration** to create tables in the database: + + ```bash + dotnet ef database update + ``` + +**What happens during update:** +1. Connects to PostgreSQL using connection string from `appsettings.json` +2. Creates `__EFMigrationsHistory` table to track applied migrations +3. Executes the Up() method from InitialCreate migration +4. Creates `Appointments` table with all columns and constraints + +> **Note**: The "Failed executing DbCommand" message on first run is normal. It means the `__EFMigrationsHistory` table doesn't exist yet. EF Core will create it automatically. + +5. **Verify migration success** using pgAdmin or psql: + + ```bash + psql -U postgres -d SchedulerEvents -c "\dt" + ``` + +The database schema has been created successfully. + +### Step 3: Create the Scheduler Component + +The Scheduler component will display appointment data in a Syncfusion Blazor Scheduler with full CRUD (Create, Read, Update, Delete) capabilities and multiple calendar views. + +#### Instructions: + +1. Replace the contents of `Home.razor` in the `Components/Pages` folder with the following Blazor Scheduler component that provides full CRUD functionality. + + + {% tabs %} + {% highlight razor tabtitle="Home.razor" %} + + @page "/" + @rendermode InteractiveServer + + Appointment Scheduler + + + + + + + + + + + + + + + + + + + @code { + private SfSchedule? scheduleRef; + private DateTime currentDate = DateTime.Today; + private View currentView = View.Week; + + public class CustomAdaptor : DataAdaptor + { + public override async Task ReadAsync(DataManagerRequest dm, string? key = null) + { + if (AppServices.Root is null) + throw new InvalidOperationException("AppServices.Root is not initialized. Ensure Program.cs sets it after building the app."); + + using var scope = AppServices.Root.CreateScope(); + var svc = scope.ServiceProvider.GetRequiredService(); + + var data = await svc.GetAllAppointmentsAsync(); + + return dm.RequiresCounts + ? new DataResult { Result = data, Count = data.Count } + : (object)data; + } + + public override async Task InsertAsync(DataManager mgr, object data, string key) + { + if (AppServices.Root is null) + throw new InvalidOperationException("AppServices.Root is not initialized."); + + using var scope = AppServices.Root.CreateScope(); + var svc = scope.ServiceProvider.GetRequiredService(); + + var item = data as Appointment ?? throw new ArgumentException("InsertAsync received invalid data type."); + var created = await svc.CreateAppointmentAsync(item); + return created; + } + + public override async Task UpdateAsync(DataManager mgr, object data, string keyField, string key) + { + if (AppServices.Root is null) + throw new InvalidOperationException("AppServices.Root is not initialized."); + + using var scope = AppServices.Root.CreateScope(); + var svc = scope.ServiceProvider.GetRequiredService(); + + var item = data as Appointment ?? throw new ArgumentException("UpdateAsync received invalid data type."); + if (item.EndTime < item.StartTime) + throw new ArgumentException("End time cannot be earlier than start time."); + + var updated = await svc.UpdateAppointmentAsync(item); + return updated; + } + + public override async Task RemoveAsync(DataManager mgr, object data, string keyField, string key) + { + if (AppServices.Root is null) + throw new InvalidOperationException("AppServices.Root is not initialized."); + + using var scope = AppServices.Root.CreateScope(); + var svc = scope.ServiceProvider.GetRequiredService(); + + int id; + if (data is int directId) + { + id = directId; + } + else if (!int.TryParse(data?.ToString(), out id)) + { + throw new ArgumentException("RemoveAsync received invalid key value."); + } + + await svc.DeleteAppointmentAsync(id); + return data; + } + + public override async Task BatchUpdateAsync( + DataManager mgr, + object changedRecords, + object addedRecords, + object deletedRecords, + string keyField, + string key, + int? dropIndex) + { + if (AppServices.Root is null) + throw new InvalidOperationException("AppServices.Root is not initialized."); + + using var scope = AppServices.Root.CreateScope(); + var svc = scope.ServiceProvider.GetRequiredService(); + + var changed = (changedRecords as IEnumerable)?.Cast()?.ToList() ?? new(); + var added = (addedRecords as IEnumerable)?.Cast()?.ToList() ?? new(); + var deleted = (deletedRecords as IEnumerable)?.Cast()?.ToList() ?? new(); + + foreach (var a in changed) + await svc.UpdateAppointmentAsync(a); + + foreach (var a in added) + await svc.CreateAppointmentAsync(a); + + foreach (var a in deleted) + await svc.DeleteAppointmentAsync(a.Id); + + var data = await svc.GetAllAppointmentsAsync(); + return new DataResult { Result = data, Count = data.Count }; + } + } + } + + {% endhighlight %} + {% endtabs %} + +#### Component Explanation: + +- **``** + The main Scheduler component that displays appointments in calendar format and supports multiple view modes. + +- **``** + Defines the list of calendar views (Day, Week, WorkWeek, Month, Agenda) available for selection. + +- **``** + Configures the appointment model, enables create/edit/delete actions, and connects the Scheduler to the data source. + +- **``** + Binds the Scheduler to the **CustomAdaptor**, which handles data communication. + It enables automatic calls for Read, Insert, Update, and Delete operations. + +- **`CustomAdaptor`** + A custom class derived from `DataAdaptor` that executes all database operations by using the `AppointmentService`. + It handles `ReadAsync`, `InsertAsync`, `UpdateAsync`,`RemoveAsync`, and `BatchUpdateAsync`. + + +#### Key Implementation Details: + +- **CustomAdaptor**: Handles all database operations (Read, Insert, Update, Delete) directly through EF Core +- **SfDataManager**: Automatically triggers the adaptor methods whenever the Scheduler performs an action +- **Scheduler UI**: Updates immediately, while the adaptor persists changes to PostgreSQL + +**Event Flow:** + +1. User creates, edits, or deletes an appointment in the Scheduler +2. **SfDataManager** detects the action and triggers the corresponding method in the **CustomAdaptor** +3. The Scheduler UI updates immediately without waiting for any database response +4. **CustomAdaptor** executes the required database operation (`InsertAsync`, `UpdateAsync`, `RemoveAsync`,and `BatchUpdateAsync`) through `AppointmentService` +5. After saving, the updated appointment data (including database-generated ID) is returned to the Scheduler for syncing +`` +The Scheduler component has been created successfully. + +### Step 4: Build and Run the Application + +With the Scheduler component created and database configured, you're ready to run the application. + +#### Build the Application + +Ensure there are no compilation errors: + +```bash +dotnet build +``` + +#### Run the Application + +Start the application: + +```bash +dotnet run +``` + +Or use watch mode for automatic reload during development: + +```bash +dotnet watch +``` + +#### Access the Scheduler + +The application will start on a port configured in `launchSettings.json` (typically `http://localhost:xxxx`). + +Open your browser and navigate to: +``` +http://localhost:xxxx + +``` + +> **Note**: Replace `xxxx` with the actual port number shown in the terminal output when the application starts. + +You can now perform CRUD operations on the scheduler: +- **Create**: Click on a time slot or use the "+" button +- **Edit**: Double-click an appointment or click and select "Edit" +- **Delete**: Click an appointment and select "Delete" +- **Drag & Drop**: Move appointments to different time slots +- **Resize**: Extend or shorten appointment duration + +All operations are automatically saved to the PostgreSQL database. + +## Output Preview +![Frontend Preview](./images/blazor-scheduler-postgresql-frontend.png) +*Image illustrating the Syncfusion Blazor Scheduler* + +![Database Preview](./images/blazor-scheduler-postgresql-database.png) +*Image illustrating the events of the Syncfusion Blazor Scheduler stored in PostgreSQL* + +## Complete Sample Repository + +A complete, working sample implementation is available in the [GitHub repository.](https://github.com/SyncfusionExamples/How-to-integrate-Syncfusion-Blazor-Scheduler-with-Postgre) + +## Troubleshooting + +### JavaScript Interop Errors + +**Error**: `Could not find 'sfBlazor.Toolbar.initialize'` or `'sfBlazor' was undefined` + +**Solution**: Add Syncfusion JavaScript file in `App.razor` before closing `` tag: +```html + +``` + +### Database Connection Failed + +**Error**: Cannot connect to PostgreSQL database + +**Solutions**: +- Verify PostgreSQL service is running: `pg_ctl status` +- Check connection string in `appsettings.json` +- Ensure `SchedulerEvents` database exists +- Confirm username and password are correct +- Test connection using pgAdmin + +### Migration Errors + +**Error**: `dotnet ef database update` fails + +**Solutions**: +- Ensure PostgreSQL is running and database exists +- Verify user has CREATE TABLE permissions +- Check password in connection string +- Delete `Migrations` folder and run: `dotnet ef migrations add InitialCreate` (if corrupted) + +> **Note**: The error `relation "__EFMigrationsHistory" does not exist` on first run is normal. + +### Timezone Issues + +**Error**: Appointment times are incorrect (offset by several hours) + +**Solution**: Add this line at the top of `Program.cs`: +```csharp +AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); +``` + +### Scheduler Not Loading + +**Error**: Spinner shows indefinitely + +**Solutions**: +- Check that `AppointmentService` is registered in `Program.cs` +- Verify database connection string is correct +- Check console for errors in `LoadAppointments()` method +- Ensure migrations have been applied: `dotnet ef database update` + +## Summary + +This documentation has demonstrated how to: + +1. Set up a PostgreSQL database and integrate it with Entity Framework Core +2. Create the `Appointment` data model and configure the `ApplicationDbContext` +3. Configure the PostgreSQL connection string in `appsettings.json` +4. Implement a service layer (`AppointmentService`) for all CRUD operations +5. Register Syncfusion, DbContext, and services in `Program.cs` +6. Build a Blazor Scheduler component connected through `SfDataManager` +7. Use a CustomAdaptor to handle all database persistence while keeping the Scheduler UI responsive + +The application now provides a professional appointment scheduling system with: +- Multiple calendar views (Day, Week, Month, Agenda) +- Full CRUD operations +- Database persistence with PostgreSQL +- Type-safe queries with Entity Framework Core +- Responsive UI without page refreshes + +## Additional Resources + +- [Syncfusion Blazor Scheduler Documentation](https://blazor.syncfusion.com/documentation/scheduler/getting-started) +- [Entity Framework Core Documentation](https://docs.microsoft.com/en-us/ef/core/) +- [Npgsql Entity Framework Core Provider](https://www.npgsql.org/efcore/) +- [PostgreSQL Documentation](https://www.postgresql.org/docs/) + +--- From b7c5b14dfecd0855508b75b24a7f818f0b6ae778 Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Tue, 3 Mar 2026 17:23:35 +0530 Subject: [PATCH 23/49] Resolve the suggested changes --- blazor-toc.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor-toc.html b/blazor-toc.html index 70ab0b046c..919a41c6c6 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -4498,7 +4498,7 @@
      • Data Binding
      • -
      • Scheduler Integrations +
      • Integrations
        • GraphQL
        • MinimalAPI
        • From 1356eccaeee5e8d52a4aa4f93229018127dd04c8 Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Wed, 4 Mar 2026 09:36:29 +0530 Subject: [PATCH 24/49] Resolve the alignment changes --- blazor/scheduler/postgresql.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/blazor/scheduler/postgresql.md b/blazor/scheduler/postgresql.md index 2b76338821..9307a10852 100644 --- a/blazor/scheduler/postgresql.md +++ b/blazor/scheduler/postgresql.md @@ -67,6 +67,7 @@ dotnet new blazor -n BlazorSchedulerApp --interactivity Server cd BlazorSchedulerApp ``` + > Configure the Interactive render mode to **InteractiveServer** during project creation as the Scheduler requires interactivity for CRUD operations. ### Step 2: Install Required NuGet Packages @@ -115,6 +116,7 @@ The installed packages are reflected in the `BlazorSchedulerApp.csproj` file: ``` + All required packages are now installed. > **Note**: After installing packages, build the project to ensure all dependencies are restored correctly: `dotnet build` @@ -360,6 +362,7 @@ A connection string contains the information needed to connect the application t } ``` + #### Connection String Components: | Component | Description | @@ -739,6 +742,7 @@ This creates three files in the `Migrations/` folder: dotnet ef database update ``` + **What happens during update:** 1. Connects to PostgreSQL using connection string from `appsettings.json` 2. Creates `__EFMigrationsHistory` table to track applied migrations @@ -966,6 +970,7 @@ Or use watch mode for automatic reload during development: dotnet watch ``` + #### Access the Scheduler The application will start on a port configured in `launchSettings.json` (typically `http://localhost:xxxx`). @@ -976,6 +981,7 @@ http://localhost:xxxx ``` + > **Note**: Replace `xxxx` with the actual port number shown in the terminal output when the application starts. You can now perform CRUD operations on the scheduler: @@ -1041,16 +1047,6 @@ A complete, working sample implementation is available in the [GitHub repository AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); ``` -### Scheduler Not Loading - -**Error**: Spinner shows indefinitely - -**Solutions**: -- Check that `AppointmentService` is registered in `Program.cs` -- Verify database connection string is correct -- Check console for errors in `LoadAppointments()` method -- Ensure migrations have been applied: `dotnet ef database update` - ## Summary This documentation has demonstrated how to: From 555ed3f3582504887b6ce739d0f35ae21f0d686b Mon Sep 17 00:00:00 2001 From: Sivakumar Manimaran Date: Wed, 4 Mar 2026 10:06:41 +0530 Subject: [PATCH 25/49] Resolve the suggested changes --- blazor-toc.html | 2 +- blazor/scheduler/postgresql.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/blazor-toc.html b/blazor-toc.html index 919a41c6c6..662d44ada9 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -4502,7 +4502,7 @@
        • CRUD Actions
        • diff --git a/blazor/scheduler/postgresql.md b/blazor/scheduler/postgresql.md index 9307a10852..02c8a66892 100644 --- a/blazor/scheduler/postgresql.md +++ b/blazor/scheduler/postgresql.md @@ -8,7 +8,7 @@ documentation: ug --- # Connecting PostgreSQL to Blazor Scheduler Using Entity Framework -The Syncfusion® Blazor Scheduler component supports binding data from a PostgreSQL database using Entity Framework Core (EF Core). This modern approach provides a more maintainable and type-safe alternative to raw SQL queries for managing appointments and calendar events. +The [Syncfusion® Blazor Scheduler component](https://www.syncfusion.com/blazor-components/blazor-scheduler) supports binding data from a PostgreSQL database using Entity Framework Core (EF Core). This modern approach provides a more maintainable and type-safe alternative to raw SQL queries for managing appointments and calendar events. ## What is Entity Framework Core? From 431a5f2159bd230d26e87d89c44a0c39ff8b8576 Mon Sep 17 00:00:00 2001 From: Amrisharjun Date: Thu, 5 Mar 2026 14:13:44 +0530 Subject: [PATCH 26/49] 1008939: Need to create documentation and sample for datagrid integration with ElasticSearch --- blazor/datagrid/connecting-to-backends/elasticsearch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/datagrid/connecting-to-backends/elasticsearch.md b/blazor/datagrid/connecting-to-backends/elasticsearch.md index 7165839d60..c33fa41335 100644 --- a/blazor/datagrid/connecting-to-backends/elasticsearch.md +++ b/blazor/datagrid/connecting-to-backends/elasticsearch.md @@ -7,7 +7,7 @@ control: DataGrid documentation: ug --- -# Connecting Elasticsearch to Blazor Data Grid Using ES library +# Connecting Blazor Data Grid to Elasticsearch The [Syncfusion® Blazor DataGrid](https://www.syncfusion.com/blazor-components/blazor-datagrid) supports binding data from an Elasticsearch index using the Elastic.Clients.Elasticsearch library. This modern approach provides full-text search capabilities, advanced filtering, and high-performance data operations. From a99a506902f44f7615cd783fd1af1904ed568b6d Mon Sep 17 00:00:00 2001 From: sridhar Date: Fri, 6 Mar 2026 14:44:26 +0530 Subject: [PATCH 27/49] 1014239: Reverting the content of UI kit control --- ...build-your-first-blazor-app-with-blocks.md | 67 ++++++++++--------- blazor/ui-kit/getting-started.md | 55 ++++++++------- blazor/ui-kit/overview.md | 23 +++---- 3 files changed, 71 insertions(+), 74 deletions(-) diff --git a/blazor/ui-kit/build-your-first-blazor-app-with-blocks.md b/blazor/ui-kit/build-your-first-blazor-app-with-blocks.md index 4e58e57d52..08d6a30943 100644 --- a/blazor/ui-kit/build-your-first-blazor-app-with-blocks.md +++ b/blazor/ui-kit/build-your-first-blazor-app-with-blocks.md @@ -1,30 +1,30 @@ --- layout: post -title: Build your first Blazor app with UI Kit blocks | Syncfusion -description: Build a Blazor Web App using blocks from the Essential UI Kit. Configure Tailwind or Bootstrap themes and add a Sign in block. Explore to more details. +title: Build your first Blazor app with our blocks | Syncfusion +description: Learn all about building your first Blazor app using our blocks from the Essential Blazor UI Kit in Syncfusion Essential Studio and more. platform: Blazor control: UI Kit documentation: ug --- -# Build your first Blazor App with UI Kit blocks +# Build your first Blazor App with our blocks -This tutorial guides you through building a Blazor Web App using blocks from the Syncfusion Essential UI Kit for Blazor. It demonstrates how to create a new project, choose Tailwind CSS or Bootstrap 5.3 themes, and add a Sign in block. The goal is to help developers quickly build responsive, modern web apps using pre-built blocks with minimal effort. +This tutorial guides you through building a Blazor Web App using Syncfusion's UI Kit blocks. It demonstrates how to set up a new Blazor Server project, choose between Tailwind CSS or Bootstrap 5.3 themes, and add a sign-in block in your application. The goal is to help developers quickly build responsive, modern web apps using a variety of prebuilt blocks with minimal effort. ## Create a new Blazor App -A Blazor Web App is used for this example. To create a new app, follow the Microsoft setup guide [here](https://learn.microsoft.com/en-us/training/modules/build-your-first-blazor-web-app/3-exercise-configure-environment?pivots=vscode). This tutorial then walks through adding a simple Sign in block to the newly created app named **MyBlazorApp**. +A Blazor Web App is used for this example. To create a new app, follow the official setup guide [here](https://learn.microsoft.com/en-us/training/modules/build-your-first-blazor-web-app/3-exercise-configure-environment?pivots=vscode). This tutorial then walks through the step-by-step process of adding a simple sign-in block to the newly created app, named **MyBlazorApp**. > This tutorial focuses on using Blazor Server rendering mode rather than Blazor WebAssembly. ![New Blazor App](images/new-blazor-app.png) -## Set up Tailwind CSS or Bootstrap 5.3 theme +## Setting up Tailwind CSS or Bootstrap 5.3 theme in the app After creating the new Blazor app named **MyBlazorApp**, open it in Visual Studio Code (which will be used throughout this walkthrough). The next step is to choose a theme, either Tailwind CSS or Bootstrap 5.3, in either light or dark mode, and configure the app accordingly. ### Tailwind CSS configuration -If the **Tailwind CSS** theme is selected, follow these steps to configure it. +If you choose **Tailwind CSS** theme, follow these steps to configure it. 1. In **Components -> App.razor** file, add the following code for light mode (`class="light"`) and dark mode (`class="dark"`) in the `` tag. @@ -40,7 +40,7 @@ If the **Tailwind CSS** theme is selected, follow these steps to configure it. ``` -2. In the **Components -> App.razor** file, add the following scripts in the `` tag. These scripts generate Tailwind CSS classes at runtime based on the styles used in the application and replace the primary color with a custom indigo palette. This CDN approach is suitable for demos; for production builds, integrate Tailwind via a build pipeline. +2. In **Components -> App.razor** file, add the following scripts in the `` tag. The main purpose of these scripts is to dynamically generate the appropriate Tailwind CSS classes at runtime based on the styles used in the application, and to replace the primary (highlight) color in the CSS with a custom indigo color palette. ```html @@ -70,23 +70,23 @@ If the **Tailwind CSS** theme is selected, follow these steps to configure it. } ``` - > Syncfusion® Blazor components use **Indigo** for light mode and **Cyan** for dark mode. To maintain a uniform appearance, adjust the primary color accordingly. + > The Syncfusion Blazor components uses **Indigo** for light mode and **Cyan** for dark mode. To maintain a uniform appearance, change the primary color accordingly. -3. In the **Components -> App.razor** file, add the theme stylesheet CDN link for Syncfusion® Blazor components in the `` tag. +3. In **Components -> App.razor** file, add the style oriented CDN link for Syncfusion Blazor components in the `` tag. - For **light mode**: ```html - + ``` - For **dark mode**: ```html - + ``` -4. **Optional**: To use the font icons prepared for **Tailwind CSS**, include the following CDN link: +4. **OPTIONAL**: If you wish to use our font icons prepared for **Tailwind CSS**, you can include the following CDN link: ```html @@ -100,7 +100,7 @@ Now that the **Tailwind CSS** theme is configured for either light or dark mode ### Bootstrap 5.3 configuration -If the **Bootstrap 5.3** theme is selected, follow these steps to configure it. +If you choose **Bootstrap 5.3** theme, follow these steps to configure it. 1. In **Components -> App.razor** file, add the following code for light mode (`data-bs-theme="light"`) and dark mode (`data-bs-theme="dark"`) in the `` tag. @@ -116,27 +116,27 @@ If the **Bootstrap 5.3** theme is selected, follow these steps to configure it. ``` -2. In the **Components -> App.razor** file, add the CDN link for the **Bootstrap 5.3** theme stylesheet in the `` tag. +2. In **Components -> App.razor** file, add the style oriented CDN link for **Bootstrap 5.3** theme in the `` tag. ```html ``` -3. In the **Components -> App.razor** file, add the theme stylesheet CDN link for Syncfusion® Blazor components in the `` tag. +3. In **Components -> App.razor** file, add the style oriented CDN link for Syncfusion Blazor components in the `` tag. - For **light mode**: ```html - + ``` - For **dark mode**: ```html - + ``` -4. **Optional**: To use the font icons prepared for **Bootstrap 5.3**, include the following CDN link: +4. **OPTIONAL**: If you wish to use our font icons prepared for **Bootstrap 5.3**, you can include the following CDN link: ```html @@ -154,25 +154,26 @@ Now that **MyBlazorApp** is set up with the desired theme configuration, the nex ### Steps to explore and copy block code snippets from the online demo -1. In the [online demo](https://blazor.syncfusion.com/essential-ui-kit), navigate to the **Authentication** category and select the **Sign in** block. This opens the corresponding demo page. +1. In the [online demo](https://blazor.syncfusion.com/essential-ui-kit), navigate to the **Authentication** category and select the **Sign In** block. This will direct you to the appropriate demo page. ![Navigate to the sign-in block demo](images/navigate-to-the-sign-in-block-demo.png) -2. On the demo page, open the first demo, which showcases a simple Sign in block. Choose the desired theme, then switch from the **Preview** tab to the **Code** tab. +2. On the demo page, go to the first demo, which showcases a simple sign-in block. Choose the desired theme, then switch from the **Preview** tab to the **Code** tab. ![Choose Tailwind CSS or Bootstrap theme](images/choose-tailwind-or-bootstrap-theme.png) -3. In the **Code** tab, copy the Razor (HTML) code using the **Copy to Clipboard** option and paste it into the **Components -> Pages -> Home.razor** file, replacing the default "Hello, world!" content. +3. In the **Code** tab, copy the Razor (HTML) code using the **Copy to Clipboard** option and paste it into the **Components -> Pages -> Home.razor** file, replacing its content with the provided "Hello, world!" example. ![Copy HTML code snippet to clipboard](images/copy-HTML-code-snippet-to-clipboard.png) > Ensure that you do not remove the `@page` directive and `` element while replacing the content. These are essential for routing and setting the page title. -4. If CSS is provided, copy the CSS code, create a new file **Components -> Pages -> Home.razor.css**, and paste the code into it. If C# code is provided, create a new file **Components -> Pages -> Home.razor.cs** and paste the code into it. Otherwise, ignore this step. + +4. If CSS is provided, copy the CSS code, create a new file **Components -> Pages -> Home.razor.css**, and paste the code into it. Similarly, if a C# code is provided, create a new file **Components -> Pages -> Home.razor.cs** and paste the C# code into it. Otherwise, you can ignore this step. ### Steps to explore and copy block code snippets from the GitHub source -1. After [downloading](https://github.com/syncfusion/essential-ui-kit-for-blazor) and opening the source in Visual Studio Code, navigate to **Components -> Pages -> BlocksSection**. +1. On [downloading](https://github.com/syncfusion/essential-ui-kit-for-blazor) and opening the GitHub source in Visual Studio Code, navigate to the following folder: **Components -> Pages -> BlocksSection**. ![Downloaded GitHub app in Visual Studio Code](images/downloaded-github-app-in-visual-studio-code.png) @@ -186,33 +187,33 @@ Now that **MyBlazorApp** is set up with the desired theme configuration, the nex > 1. In the Razor file, the **Tailwind CSS** and **Bootstrap 5.3** design code is placed in their respective if-else statements. You can copy and paste as per your requirement. > 2. Ignore the code within the **"SB Code - Start"** and **"SB Code - End"** comments, as it is intended solely for sample browser purposes. -## Steps to install and configure Syncfusion® Blazor components +## Steps to install and configure Syncfusion Blazor components -While copying and pasting the Razor code, note that Syncfusion® Blazor components are used. To incorporate them into **MyBlazorApp**, install the necessary packages and import the corresponding namespaces in **Components -> _Imports.razor** so the app can compile and run. +While copying and pasting the Razor (HTML) code, you'll notice that Syncfusion Blazor components are used. To incorporate them into **MyBlazorApp**, install the necessary packages and import the corresponding namespaces to the **Components -> _Imports.razor** file for the app to run. -In the simple sign-in block, components such as textbox, checkbox and button are used. After copying and pasting Razor (HTML) code into the Razor file, open the **MyBlazorApp.csproj** file and add the required nuget packages: `Syncfusion.Blazor.Buttons` and `Syncfusion.Blazor.Inputs`. For more details about other Syncfusion® Blazor component packages, refer to this [link](https://www.nuget.org/packages?q=Syncfusion.Blazor) +In the simple sign-in block, components such as textbox, checkbox and button are used. After copying and pasting Razor (HTML) code into the Razor file, open the **MyBlazorApp.csproj** file and add the required nuget packages: `Syncfusion.Blazor.Buttons` and `Syncfusion.Blazor.Inputs`. For more details about other Syncfusion Blazor component packages, refer to this [link](https://www.nuget.org/packages?q=Syncfusion.Blazor) ![Adding required packages for Syncfusion components](images/adding-required-packages-for-syncfusion-components.png) -After the packages are added, run the following command in the terminal to install them. +Once the necessary packages are added, run the following command via the terminal to install those packages. ```bash dotnet restore ``` -After restoring the packages, import the required namespaces `Syncfusion.Blazor.Buttons` and `Syncfusion.Blazor.Inputs` in **Components -> _Imports.razor** to enable Syncfusion® components in the application. +After restoring the packages, import the required namespaces `Syncfusion.Blazor.Buttons` and `Syncfusion.Blazor.Inputs` in the _Imports.razor file to enable Syncfusion components in the application. ![Importing Syncfusion Namespaces](images/import-syncfusion-namespaces.png) -Finally, revisit the [online demo](https://blazor.syncfusion.com/essential-ui-kit) or the [GitHub repository](https://github.com/syncfusion/essential-ui-kit-for-blazor) and copy the required Razor (HTML) code for the simple Sign in block into your app as outlined above. +Finally, again check the [online demo](https://blazor.syncfusion.com/essential-ui-kit) or the [GitHub repository](https://github.com/syncfusion/essential-ui-kit-for-blazor) and copy the required Razor (HTML) code for the simple sign-in block into your app as outlined in the previous topic. ## Steps to download and add assets to the app -To use the images from the design, download the **assets** folder from the [GitHub repository](https://github.com/syncfusion/essential-ui-kit-for-blazor/tree/master/UI_Blocks/wwwroot/assets), place it inside the **wwwroot** folder of **MyBlazorApp**, and update image URLs in the Razor (HTML) file if necessary. +If you want to view and experience the images used in our design, you can download the **assets** folder from the following [GitHub repository](https://github.com/syncfusion/essential-ui-kit-for-blazor/tree/master/UI_Blocks/wwwroot/assets), place it inside the **wwwroot** folder of **MyBlazorApp**, and modify the image URLs in the Razor (HTML) if necessary. ## Steps to run the app -With **MyBlazorApp** set up—including Razor markup, CSS (if applicable), C# (if applicable), and and assets (optional) — you can build and run the app. Run the following command in the terminal; a localhost URL will be provided by the Blazor development server. +Now that everything is set up in **MyBlazorApp** — including the Razor (HTML), CSS (if applicable), C# (if applicable), and assets (optional) — you are ready to build and launch the app. Type the following command in the terminal, and you will see a localhost URL provided by the Blazor development server. ```bash dotnet run @@ -220,6 +221,6 @@ dotnet run ![Build and launch the app](images/build-and-launch-the-app.png) -To view the app in a browser, **Ctrl+click** (or **Cmd+click** on macOS) the localhost URL displayed in the terminal. This opens the app in the default browser and displays the simple Sign in block. +To view the app in your browser, simply **Ctrl + Click** (or **Cmd + Click** on macOS) on the localhost URL displayed in the terminal. This will open the app in your default browser, allowing you to view and experience the simple sign-in block. ![View the app in the browser using the localhost URL](images/view-the-app-in-the-browser-using-the-localhost-URL.png) diff --git a/blazor/ui-kit/getting-started.md b/blazor/ui-kit/getting-started.md index 6c3166ac2e..9b993a9df7 100644 --- a/blazor/ui-kit/getting-started.md +++ b/blazor/ui-kit/getting-started.md @@ -1,20 +1,20 @@ --- layout: post -title: Get started with the Essential UI Kit for Blazor | Syncfusion -description: Learn here about how to set up the Essential UI Kit for Blazor from GitHub or try the online demo, including prerequisites and license key registration. +title: Getting Started with Essential UI Kit for Blazor | Syncfusion +description: Checkout and learn about getting started with the Essential UI Kit for Blazor in Syncfusion Essential Studio, along with more details. platform: Blazor control: UI Kit documentation: ug --- -# Getting started with the Essential UI Kit for Blazor +# Getting Started with Essential UI Kit for Blazor -Use either of the following options to explore the Essential UI Kit for Blazor: +Follow the steps below to get started with Essential UI Kit for Blazor. You can begin in one of two ways: - **Download the App from GitHub**: Get the full free source code and run the app locally to explore the blocks. - **View the Online Demo**: Alternatively, you can try out the blocks directly through the online demo to see them in action without needing to download anything. -## Get started by downloading the app from GitHub +## Get Started by Downloading the App from GitHub ### Step 1: Download and Open the App in Visual Studio Code @@ -22,50 +22,49 @@ Download the app from the GitHub [link](https://github.com/syncfusion/essential- ![Launching the downloaded app](images/launching-the-downloaded-app.png) -### Step 2: Open a new terminal +### Step 2: Open a New Terminal In Visual Studio Code, go to the **Terminal** menu and select **New Terminal** to open the integrated terminal. -![Open a new terminal in Visual Studio Code](images/opening-a-new-terminal.png) +![Opening a new terminal](images/opening-a-new-terminal.png) ### Step 3: Install Dependencies and Run the App +Run the following commands one after the other in the terminal: -Run the following commands in the terminal (PowerShell on Windows): +1. **Restore dependencies** + Run the command below to install all necessary packages related to the blocks, the Syncfusion Blazor components, and the sample browser. -1. Restore dependencies + ```bash + dotnet restore + ``` -```bash -dotnet restore -``` + This will download and install all the dependencies listed in the **.csproj** file. -Restores the packages referenced in the project file. Note: dotnet run also performs an implicit restore if needed. +2. **Serve the App Locally** + Once the dependencies are installed, you can run the app locally by starting the Blazor development server. To do so, run the following command. + + ```bash + dotnet run + ``` -2. Serve the app locally + This command will start the local development server, and you'll see an output in the terminal indicating the app is running. Typically, it will display a local host URL like this: -Once the dependencies are installed, you can run the app locally by starting the Blazor development server. To do so, run the following command. + ![Local development server running](images/local-development-server-running.png) -```bash -dotnet run -``` + To view the app in your browser, simply **Ctrl + Click** (or **Cmd + Click** on macOS) on the local host URL displayed in the terminal. This will open the app in your default browser, allowing you to interact with the blocks. -This command will start the local development server, and you'll see an output in the terminal indicating the app is running. Typically, it will display a local host URL like this: +### Step 4: License Key Requirement -![Terminal output showing the local development server URL](images/local-development-server-running.png) - -To view the app in your browser, simply **Ctrl + Click** (or **Cmd + Click** on macOS) on the local host URL displayed in the terminal. This will open the app in your default browser, allowing you to interact with the blocks. - -### Step 4: License key requirement - -The blocks include several Syncfusion® Blazor components that require an active license key for proper display and usage. To activate the license, refer to the topics below: +The blocks include several Syncfusion Blazor components that require an active license key for proper display and usage. To activate the license, refer to the topics below: #### How to Obtain the License Key -To obtain the license key, visit the following page: [Syncfusion® License](https://blazor.syncfusion.com/documentation/getting-started/license-key/how-to-generate). +To obtain the license key, visit the following page: [Syncfusion License](https://blazor.syncfusion.com/documentation/getting-started/license-key/how-to-generate). #### How to Register the License Key in the App Once you have your license key, register it in the Blazor app through any one of the following methods suggested in this [link](https://blazor.syncfusion.com/documentation/getting-started/license-key/how-to-register-in-an-application). By adding the license key, you ensure seamless browsing and usage of the blocks, making them fully functional and free from licensing issues. -## Get started by viewing the online demo +## Get Started by Viewing the Online Demo If you prefer a quick demo instead of downloading the app, you can explore the blocks directly through the online demo. Simply visit the official [Essential UI Kit for Blazor](https://blazor.syncfusion.com/essential-ui-kit) website to interact with the blocks. diff --git a/blazor/ui-kit/overview.md b/blazor/ui-kit/overview.md index 03c04d2a70..8ce383f3c6 100644 --- a/blazor/ui-kit/overview.md +++ b/blazor/ui-kit/overview.md @@ -1,17 +1,15 @@ --- layout: post -title: Essential UI Kit for Blazor overview | Syncfusion -description: Explore the Essential UI Kit for Blazor over 260 ready-to-use blocks built with Razor, CSS, C#, and Blazor components, with Tailwind and Bootstrap support. +title: Overview of Essential UI Kit for Blazor | Syncfusion +description: Learn all about the overview of the Essential UI Kit for Blazor in Syncfusion Essential Studio and more here. platform: Blazor -control: UI Kit +control: UI Kit documentation: ug --- -# Essential UI Kit for Blazor overview +# Overview: Essential UI Kit for Blazor -The Essential UI Kit for Blazor comprises over 260 responsive, ready-to-use, easy-to-implement, and customizable blocks designed to help you quickly build web applications. These blocks are developed using HTML (Razor), CSS, C#, and Syncfusion® Blazor components, delivering robust functionality and ease of use. They are compatible with both Tailwind CSS and Bootstrap 5.3 CSS frameworks, supporting light and dark modes to offer flexibility and seamless integration across different user preferences. The UI kit includes blocks for the following categories: - -The UI Kit includes blocks for the following categories: +The Essential UI Kit for Blazor comprises over 260 responsive, ready-to-use, easy-to-implement, and customizable blocks designed to help you quickly build web applications. These blocks are developed using HTML (Razor), CSS, C#, and Syncfusion Blazor components, delivering robust functionality and ease of use. They are compatible with both Tailwind CSS and Bootstrap 5.3 CSS frameworks, supporting light and dark modes to offer flexibility and seamless integration across different user preferences. The UI kit includes blocks for the following categories:
    @@ -112,20 +110,19 @@ The UI Kit includes blocks for the following categories: > These provide pre-designed blocks for the quick implementation of web applications. However, customization and the integration of business logic must be handled on your end to meet your specific requirements. -## Supported Blazor versions - -The blocks designed and showcased are built using .NET 8, but you can use other versions of Blazor as well, since they are primarily developed with HTML, CSS, and C# to facilitate building your web applications. Additionally, for using Syncfusion® Blazor components, the compatible Blazor and Syncfusion® versions are outlined in this [link](https://blazor.syncfusion.com/documentation/common/how-to/version-compatibility) for your reference. +## Supported Blazor Versions +The blocks designed and showcased are built using .NET 8, but you can use other versions of Blazor as well, since they are primarily developed with HTML, CSS, and C# to facilitate building your web applications. Additionally, for using Syncfusion Blazor components, the compatible Blazor and Syncfusion versions are outlined in this [link](https://blazor.syncfusion.com/documentation/common/how-to/version-compatibility) for your reference. -## Supported browsers +## Supported Browsers - Google Chrome - Microsoft Edge - Safari - Mozilla Firefox -## Supported CSS frameworks +## Supported CSS Frameworks - Tailwind CSS - Bootstrap 5.3 -Both **Tailwind CSS** and **Bootstrap 5.3** support **Light** and **Dark** modes, allowing the blocks to adapt to user preferences or system settings for a consistent experience across devices. +Both **Tailwind CSS** and **Bootstrap 5.3** support **Light** and **Dark** modes, allowing you to seamlessly adapt the blocks to your web applications based on user preferences or system settings. This flexibility ensures a consistent and optimal user experience across different environments and devices. From 4b862b99932c9159d724d58439726a5a330ccd8d Mon Sep 17 00:00:00 2001 From: Muthukrishnan Kandasamy Date: Fri, 6 Mar 2026 15:47:32 +0530 Subject: [PATCH 28/49] Getting started meta details updated. --- blazor/datagrid/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blazor/datagrid/getting-started.md b/blazor/datagrid/getting-started.md index ecee564052..65d2af320c 100644 --- a/blazor/datagrid/getting-started.md +++ b/blazor/datagrid/getting-started.md @@ -1,7 +1,7 @@ --- layout: post -title: Getting Started with Blazor DataGrid | Syncfusion -description: Checkout and learn about getting started with Syncfusion Blazor DataGrid in Blazor WebAssembly Application. +title: Getting Started with Blazor DataGrid (WASM) | Syncfusion +description: Learn how to add the Syncfusion Blazor DataGrid to a Blazor WebAssembly (WASM) app using Visual Studio, VS Code, or the .NET CLI step-by-step. platform: Blazor control: DataGrid documentation: ug From 6158f139426a60700d153751f07e4ba769def7cf Mon Sep 17 00:00:00 2001 From: Backiaraj Date: Fri, 6 Mar 2026 16:30:38 +0530 Subject: [PATCH 29/49] Updated toc file --- blazor-toc.html | 942 +++++++++++++++++++++++++----------------------- 1 file changed, 490 insertions(+), 452 deletions(-) diff --git a/blazor-toc.html b/blazor-toc.html index 662d44ada9..206fbb7c8d 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -3,20 +3,6 @@
  • Introduction
  • -
  • - API Reference -
  • - -
  • - System Requirements -
  • -
  • - Browser Compatibility -
  • -
  • - NuGet Packages -
  • -
  • Getting Started
  • Blazor Hybrid -
  • -
  • Visual Studio Code Integration - -
  • -
  • Visual Studio Integration -
  • -
  • MCP Server - -
  • -
  • Smart (AI) Solutions - -
  • -
  • Installation -
  • -
  • License - -
  • -
  • Upgrade - - -
  • -
  • Appearance +
  • + UI Kit
  • -
  • Common Features +
  • Tooling -
  • -
  • Smart Components +
  • AI and Smart Tooling +
  • + + +
  • Integration +
  • - +
  • Appearance and Theming + +
  • +
  • Common Features + +
  • +
  • + Accessibility +
  • +
  • + Troubleshooting +
  • +
  • Security + +
  • +
  • Performance and Scalability + +
  • +
  • Installation +
  • +
  • License + +
  • +
  • Upgrade + +
  • +
  • Deployment + +
  • +
  • + System Requirements +
  • +
  • + Browser Support +
  • +
  • + NuGet Packages +
  • +
  • + API Reference +
  • Release Notes