<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anto Ani</title>
    <description>The latest articles on DEV Community by Anto Ani (@butterfly).</description>
    <link>https://dev.to/butterfly</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1275811%2Fdc6c4d82-bc70-4e4a-abeb-9f2b50ace195.png</url>
      <title>DEV Community: Anto Ani</title>
      <link>https://dev.to/butterfly</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/butterfly"/>
    <language>en</language>
    <item>
      <title>What’s New in Angular 17 and for Syncfusion Angular Components</title>
      <dc:creator>Anto Ani</dc:creator>
      <pubDate>Tue, 27 Feb 2024 11:32:10 +0000</pubDate>
      <link>https://dev.to/butterfly/whats-new-in-angular-17-and-for-syncfusion-angular-components-4lig</link>
      <guid>https://dev.to/butterfly/whats-new-in-angular-17-and-for-syncfusion-angular-components-4lig</guid>
      <description>&lt;p&gt;&lt;a href="https://www.syncfusion.com/angular-components"&gt;Angular 17&lt;/a&gt; is brimming with innovative features that are set to redefine coding experiences and make a significant impact on the Angular community. In this blog, we’ll dive deep into the heart of Angular v17, exploring its robust features and how &lt;a href="https://www.syncfusion.com/angular-components"&gt;Syncfusion’s Angular components&lt;/a&gt; work with them.&lt;/p&gt;

&lt;p&gt;Key features&lt;br&gt;
Angular 17 introduces a plethora of key enhancements. &lt;/p&gt;

&lt;p&gt;Angular learning is reimagined with Angular.dev&lt;br&gt;
With Angular 17, developers can now access an updated documentation platform hosted on Angular.dev. This update brings a fresh structure, revised guidelines, enriched content, and an interactive Angular playground. Features such as directive composition, hydration, standalone components, and signal-based reactivity have been significantly improved.&lt;/p&gt;

&lt;p&gt;Simplified built-in control flow&lt;br&gt;
Angular 17 introduces a new block template syntax, enhancing the developer experience by offering powerful features through simple, declarative APIs. Managed by the Angular compiler, this updated syntax streamlines control flow and lazy loading, improving overall efficiency.&lt;/p&gt;

&lt;p&gt;Insights from in-depth user studies revealed common stumbling blocks with *ngIf, *ngSwitch, and *ngFor that many developers, including seasoned ones, encountered. These insights led to the introduction of this change.&lt;/p&gt;

&lt;p&gt;The benefits of this built-in control flow are manifold:&lt;/p&gt;

&lt;p&gt;Streamlined syntax: The more intuitive syntax, resembling JavaScript, reduces the need for extensive documentation lookups.&lt;br&gt;
Improved type checking: More precise type narrowing is achieved through improved type checking.&lt;br&gt;
Efficiency at build-time: Being primarily a build-time concept, it reduces the runtime footprint and potentially shrinks the bundle size by up to 30 kilobytes, benefiting Core Web Vitals scores.&lt;br&gt;
Automatic integration: It integrates automatically into templates without requiring additional imports.&lt;br&gt;
Performance enhancements: Significant performance enhancements are achieved.&lt;br&gt;
Simplified conditional statements&lt;br&gt;
The if and else directives offer a fresh approach to handling conditional logic in your templates. These directives provide a more concise and declarative method for rendering different sections of your template based on specific conditions. This is a significant improvement over the traditional *ngIf and *ngElse directives, as well as [ngSwitch].&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
When we use Syncfusion Angular Tabs. Each tab corresponds to a different social media platform: Twitter, Facebook, and WhatsApp. The content of these tabs dynamically changes based on the socialMedia value.&lt;/p&gt;

&lt;p&gt;When socialMedia matches one of these platforms, the corresponding tab displays content related to that platform. However, if socialMedia doesn’t match any of these platforms, a message stating, “No tabs to display,” will be shown. This example illustrates the power and flexibility of the new if and else directives in Angular v17.&lt;/p&gt;

&lt;p&gt;Performance surge with the familiar for syntax&lt;br&gt;
Angular 17 introduces a new, built-in for loop, which brings about substantial performance enhancements compared to the traditional *ngFor directives. Benchmarks reveal a runtime improvement of up to 90%, leading to a noticeable speed boost in your apps.&lt;/p&gt;

&lt;p&gt;Additionally, the empty block offers a neat solution for handling scenarios with empty collections, further simplifying your coding process.&lt;/p&gt;

&lt;p&gt;Let’s illustrate this with an example. We’ll use for in the Syncfusion Angular Data Grid data source.&lt;/p&gt;

&lt;p&gt;Here are some key advantages of the for syntax:&lt;/p&gt;

&lt;p&gt;Familiar syntax: You can write loops like JavaScript, making it easier to understand and maintain your code.&lt;br&gt;
Explicit tracking: The track expression ensures efficient DOM manipulation, especially for dynamic datasets.&lt;br&gt;
Empty list handling: The empty block provides a clean way to handle scenarios with empty collections.&lt;br&gt;
Deferrable views&lt;br&gt;
Angular 17 introduces a concept known as deferrable views or defer blocks. This innovative design paves the way for future enhancements in performance and efficiency by enabling the dynamic loading of components.&lt;/p&gt;

&lt;p&gt;Unlike the traditional, router-based lazy loading, defer embeds the loading logic directly within your templates. This streamlined approach simplifies component loading management and optimizes your app’s performance.&lt;/p&gt;

&lt;p&gt;Let’s illustrate this with an example. We’ve used the Syncfusion Angular Data Grid component within the &lt;a class="mentioned-user" href="https://dev.to/defer"&gt;@defer&lt;/a&gt; block. The rendering of the grid component is deliberately delayed for three seconds. This delay displays an initial “Waiting…” message, optimizing the first-page load. Once loaded, the grid dynamically displays its columns based on the provided data source. A “Something went wrong” notification appears if any errors occur during the process.&lt;/p&gt;

&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/defer"&gt;@defer&lt;/a&gt; (on timer(3000)) {&lt;br&gt;
 &lt;br&gt;
  &lt;br&gt;
    &lt;a class="mentioned-user" href="https://dev.to/for"&gt;@for&lt;/a&gt; (column of getGridColumns(data[0]); track column){&lt;br&gt;
      &lt;br&gt;
    }&lt;br&gt;
  &lt;br&gt;
 &lt;br&gt;
}&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/placeholder"&gt;@placeholder&lt;/a&gt; { &lt;br&gt;
    &lt;/p&gt;Waiting for 3 seconds to load Grid with data &lt;br&gt;
} &lt;br&gt;
@error { &lt;br&gt;
    Something went wrong &lt;br&gt;
}&lt;br&gt;
Revamped hybrid rendering experience&lt;br&gt;
Angular 17 brings a revitalized hybrid rendering experience, offering robust server-side rendering (SSR) and static site generation (SSG) support. This support is accessible through command-line prompts and flags, simplifying the process for developers.

&lt;p&gt;You can run the following command to enable SSR in your new Angular project. This command will automatically include the necessary dependencies and configuration for server-side rendering.&lt;/p&gt;

&lt;p&gt;ng new my-app --ssr&lt;br&gt;
This enhancement in Angular 17 improves your apps’ performance and overall user experience by enabling faster initial page loads and improved SEO.&lt;/p&gt;

&lt;p&gt;New @angular/ssr package&lt;br&gt;
Angular 17 brings a significant shift in the ecosystem by introducing the new @angular/ssr package. The Angular Universal repositories have now been integrated into Angular, making it easier than ever to update your existing Angular CLI to support hybrid rendering (SSR).&lt;/p&gt;

&lt;p&gt;Moreover, while Angular version 16 introduced hydration in the developer preview, version 17 has made it the default for all server-side rendering. This enhancement paves the way for more efficient and dynamic web apps.&lt;/p&gt;

&lt;p&gt;Vite and esbuild as the default for new projects&lt;br&gt;
Vite and esbuild became the standard build tools for new projects in Angular v17. This shift prioritizes simplifying developers’ workflows and enhancing app performance.&lt;/p&gt;

&lt;p&gt;Benefits:&lt;br&gt;
A 67% improvement in build time.&lt;br&gt;
An 87% speed improvement with SSR and SSG.&lt;br&gt;
A lightweight and efficient build process.&lt;br&gt;
Note: For more details, refer to the new esbuild system.&lt;/p&gt;

&lt;p&gt;Default standalone components&lt;br&gt;
With v17, Angular has made standalone components, directives, and pipes the default format. This means all components generated via ng generate will be created as standalone components by default, streamlining the development process.&lt;/p&gt;

&lt;p&gt;Moreover, you can leverage the schematic to automate the conversion of your existing app into the standalone format.&lt;/p&gt;

&lt;p&gt;Run the following command.&lt;/p&gt;

&lt;p&gt;ng generate @angular/core:standalone&lt;br&gt;
This command transforms your existing components into standalone ones, enhancing modularity and maintainability.&lt;/p&gt;

&lt;p&gt;Roadmap: signal-based reactivity&lt;br&gt;
Looking ahead, Angular v18 promises to introduce exciting new features beyond its signal-based components. These enhancements will deliver predictable performance, cleaner code, and an improved developer experience.&lt;/p&gt;

&lt;p&gt;As announced by the Angular team, signals are graduating from the developer preview stage. This advancement indicates that we can anticipate the arrival of features like signal-based inputs, and view queries in the coming months.&lt;/p&gt;

&lt;p&gt;Other features&lt;br&gt;
Dive into the detailed debugging of dependency injection directly within DevTools, effectively utilize input value transformations, and enjoy the convenience of string-based styles and styleUrls. Enhance your skills with dedicated Angular developer training. Angular 17 offers improved development workflows, increased flexibility, and enhanced control, catering to a diverse audience.&lt;/p&gt;

&lt;p&gt;Syncfusion Angular components now support Angular 17—Time to upgrade!&lt;br&gt;
Exciting news for Syncfusion Angular users! Starting from version 23.2.4, Syncfusion Angular components are fully compatible with Angular 17. It’s the perfect time to upgrade your Syncfusion Angular packages to maximize this compatibility.&lt;/p&gt;

&lt;p&gt;Why should you upgrade?&lt;br&gt;
Upgrading ensures seamless compatibility and optimal performance with the latest Angular 17 features. Keep your Syncfusion Angular components up to date to leverage the newest enhancements, fixes, and features.&lt;/p&gt;

&lt;p&gt;How to upgrade?&lt;br&gt;
For step-by-step guidance on upgrading Syncfusion Angular packages, visit the Getting Started page in the Angular documentation. This resource provides straightforward instructions to help you kickstart your project on the latest Angular 17 version.&lt;/p&gt;

&lt;p&gt;Don’t miss out on the enhanced capabilities and improved performance —upgrade your Syncfusion Angular components today!&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
Thanks for reading! In this blog, we’ve seen the new features of Angular version 17 and Syncfusion’s Angular component’s compatibility with this latest update. As we conclude, we trust that you’re departing with a renewed enthusiasm for Angular development!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Blazor Synchronized Charts: The Perfect Tool for Trade Analysis</title>
      <dc:creator>Anto Ani</dc:creator>
      <pubDate>Thu, 08 Feb 2024 06:59:40 +0000</pubDate>
      <link>https://dev.to/butterfly/blazor-synchronized-charts-the-perfect-tool-for-trade-analysis-3444</link>
      <guid>https://dev.to/butterfly/blazor-synchronized-charts-the-perfect-tool-for-trade-analysis-3444</guid>
      <description>&lt;p&gt;Syncfusion &lt;a href="https://www.syncfusion.com/blazor-components/blazor-charts"&gt;Blazor Charts&lt;/a&gt; component offers a wide range of functionalities, including data binding, over 50 chart types, animation, tooltip, zooming and panning, crosshair, selection, and highlighting.&lt;/p&gt;

&lt;p&gt;With the &lt;a href="https://www.syncfusion.com/forums/185916/essential-studio-2023-volume-4-main-release-v24-1-41-is-available-for-download"&gt;2023 volume 4&lt;/a&gt; release, Blazor Charts component now supports a &lt;a href="https://blazor.syncfusion.com/documentation/chart/how-to/synchronized-chart"&gt;synchronization&lt;/a&gt; feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synchronized Charts: An overview&lt;/strong&gt;&lt;br&gt;
A synchronized chart provides access and interaction with two or more charts at the same time. This means that actions performed on one chart, such as positioning a cursor, clicking on a specific point, or activating a tooltip, are reflected simultaneously on corresponding positions or data points across other synchronized charts based on their x- and y- coordinates.&lt;/p&gt;

&lt;p&gt;Synchronized charts prove invaluable when navigating multiple datasets or diverse information simultaneously. By linking data across several graphs or charts, they empower users to effortlessly discern connections, identify trends, and recognize crucial patterns.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll explore the user-friendly features of the new Blazor Synchronized Chart and its uses!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Uses of Synchronized Charts&lt;/strong&gt;&lt;br&gt;
The use cases of &lt;a href="https://blazor.syncfusion.com/documentation/chart/how-to/synchronized-chart"&gt;Synchronized Charts&lt;/a&gt; include:&lt;/p&gt;

&lt;p&gt;Correlation analysis:** Revealing interconnected relationships within data.&lt;br&gt;
&lt;strong&gt;Holistic view:&lt;/strong&gt; Enabling comprehensive understanding by combining multiple perspectives.&lt;br&gt;
&lt;strong&gt;Real-time analysis: **Empowering instantaneous insights into evolving trends.&lt;br&gt;
**Comparative analysis:&lt;/strong&gt; Facilitating side-by-side comparisons for insightful observations.&lt;br&gt;
&lt;strong&gt;Improved decision-making:&lt;/strong&gt; Empowering informed and strategic choices.&lt;br&gt;
&lt;strong&gt;Enhanced user experience:&lt;/strong&gt; Elevating the accessibility and usability of data.&lt;br&gt;
Analyzing trade data using Blazor Synchronized Charts&lt;br&gt;
When traders delve into a market, synchronized charts emerge as their closest allies. These charts enable traders to survey distinct facets of market data concurrently. This capability aids in making astute decisions while comprehending the comprehensive landscape of market dynamics.&lt;/p&gt;

&lt;p&gt;In the following sections, we’ll see how easy it is to implement synchronization for different interactive chart features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synchronizing chart elements&lt;/strong&gt;&lt;br&gt;
Let’s seamlessly analyze stock market data by configuring the following elements using the Blazor Synchronized Chart:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tooltip&lt;/li&gt;
&lt;li&gt;Crosshair&lt;/li&gt;
&lt;li&gt;Zooming&lt;/li&gt;
&lt;li&gt;Selection
&lt;strong&gt;Tooltip synchronization&lt;/strong&gt;
You can easily synchronize tooltips across multiple charts. This will enhance the user experience and comprehension of interconnected data. The process involves utilizing two essential methods: ShowTooltip and HideTooltip.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ShowTooltip method allows the display of pertinent information across various charts when a user hovers over a data point in a chart. In synchronized charts, this functionality enables simultaneous showcasing of related data.&lt;/p&gt;

&lt;p&gt;To implement the ShowTooltip method for a chart, specify the following parameters:&lt;/p&gt;

&lt;p&gt;x: Represents the x-value of the point or its x-coordinate value.&lt;br&gt;
y: Represents the y-value of the point or its y-coordinate value.&lt;br&gt;
Refer to the following code example.&lt;/p&gt;

&lt;p&gt;@code { &lt;br&gt;
    SfChart? _chart1;&lt;br&gt;
    SfChart? _chart2;&lt;br&gt;&lt;br&gt;
    public CurrencyRates[] ChartPoints { get; set; } = new CurrencyRates[] { };&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;protected override async Task OnInitializedAsync()
{
    ChartPoints = await Http.GetFromJsonAsync&amp;lt;CurrencyRates[]&amp;gt;(NavigationManager.BaseUri + "synchronized-data.json");
}

public class CurrencyRates
{
    public DateTime USD { get; set; }
    public double EUR { get; set; }
    public double JPY { get; set; }
    public double SGD { get; set; }
    public double INR { get; set; }
}       

public void OnMouseEventChart1(ChartMouseEventArgs args)
{
    _chart2.ShowTooltip(args.MouseX, args.MouseY, false);
}
public void OnMouseEventChart2(ChartMouseEventArgs args)
{
    _chart1.ShowTooltip(args.MouseX, args.MouseY, false);
}

public void OnMouseLeaveChart1()
{
    _chart2.HideTooltip();
}
public void OnMouseLeaveChart2()
{
    _chart1.HideTooltip();
}

public void OnMouseLeaveChart1(ChartMouseEventArgs args)
{
    _chart2.HideTooltip();
}
public void OnMouseLeaveChart2(ChartMouseEventArgs args)
{
    _chart1.HideTooltip();
}    
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Crosshair synchronization&lt;/strong&gt;&lt;br&gt;
Synchronizing crosshairs across multiple charts can significantly enhance data analysis and comparison. The &lt;strong&gt;ShowCrosshair&lt;/strong&gt; and &lt;strong&gt;HideCrosshair&lt;/strong&gt; methods facilitate this synchronization.&lt;/p&gt;

&lt;p&gt;When hovering over one chart, invoking the ShowCrosshair method for other connected charts aligns their data points, streamlining the process of comparing information across the charts.&lt;/p&gt;

&lt;p&gt;To enable the crosshair for a specific chart using the ShowCrosshair method, specify the following parameters:&lt;/p&gt;

&lt;p&gt;x: The x-coordinate value.&lt;br&gt;
y: The y-coordinate value.&lt;br&gt;
Refer to the following code example.&lt;/p&gt;

&lt;p&gt;@code {&lt;br&gt;
    SfChart? _chart1;&lt;br&gt;
    SfChart? _chart2;    &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public void OnMouseEventChart1(ChartMouseEventArgs args)
{
    _chart2.ShowCrosshair(args.MouseX, args.MouseY);
}
public void OnMouseEventChart2(ChartMouseEventArgs args)
{
    _chart1.ShowCrosshair(args.MouseX, args.MouseY);
}

public void OnMouseLeaveChart1()
{
    _chart2.HideCrosshair();
}
public void OnMouseLeaveChart2()
{
    _chart1.HideCrosshair();
}

public void OnMouseLeaveChart1(ChartMouseEventArgs args)
{
    _chart2.HideCrosshair();
}
public void OnMouseLeaveChart2(ChartMouseEventArgs args)
{
    _chart1.HideCrosshair();
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;br&gt;
Refer to the following output image.&lt;/p&gt;

&lt;p&gt;Crosshair synchronization in Blazor Charts&lt;br&gt;
Crosshair Synchronization in Blazor Charts&lt;br&gt;
Zooming synchronization&lt;br&gt;
Ensuring uniform zoom levels across multiple charts significantly enhances the visualization experience. This synchronization is accomplished by using the OnZoomEnd and OnZooming events.&lt;/p&gt;

&lt;p&gt;Within these events, you’ll retrieve the ZoomFactor and ZoomPosition values unique to each chart and then apply these values to ensure consistency across all charts. This not only streamlines the viewing experience and maintains coherence in data analysis across various visual representations.&lt;/p&gt;

&lt;p&gt;Refer to the following code example.&lt;/p&gt;

&lt;p&gt;@code {&lt;br&gt;
    SfChart? _chart1;&lt;br&gt;
    SfChart? _chart2;&lt;br&gt;&lt;br&gt;
    List toolbarItems = new List() { ToolbarItems.Pan, ToolbarItems.Reset };&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public void ZoomEvent(ZoomingEventArgs args)
{
    if (args.AxisCollection != null &amp;amp;&amp;amp; args.AxisCollection.Count &amp;gt; 0)
    {
        zoomfactor = args.AxisCollection.Find(item =&amp;gt; item.AxisName == "PrimaryXAxis").ZoomFactor;
        zoomPosition = args.AxisCollection.Find(item =&amp;gt; item.AxisName == "PrimaryXAxis").ZoomPosition;
        InvokeAsync(StateHasChanged);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;br&gt;
The following image shows zooming synchronized across charts.&lt;/p&gt;

&lt;p&gt;Zooming synchronization in Blazor Charts&lt;br&gt;
Zooming synchronization in Blazor Charts&lt;br&gt;
Selection synchronization&lt;br&gt;
You can sync up the selection of a data point across charts by using the OnSelectionChanged event. You can easily apply desired values to other charts in your app by copying and pasting the values directly from this event to the respective chart.&lt;/p&gt;

&lt;p&gt;Refer to the following code example.&lt;/p&gt;

&lt;p&gt;@code {&lt;br&gt;
    SfChart? _chart1;&lt;br&gt;
    SfChart? _chart2;&lt;br&gt;
    public int SelectedSeries = -1;&lt;br&gt;
    public int SelectedPoint = -1;&lt;br&gt;
    public void Selection(SelectionCompleteEventArgs args)&lt;br&gt;
    {&lt;br&gt;
        var selectedValues = args?.SelectedDataValues;&lt;br&gt;
        if (selectedValues?.Count &amp;gt; 0)&lt;br&gt;
        {&lt;br&gt;
            var firstSelectedValue = selectedValues[0];&lt;br&gt;
            var seriesIndex = firstSelectedValue.SeriesIndex ?? -1;&lt;br&gt;
            var pointIndex = firstSelectedValue.PointIndex ?? -1;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        if (SelectedSeries != seriesIndex || SelectedPoint != pointIndex)
        {
            SelectedSeries = seriesIndex;
            SelectedPoint = pointIndex;
            InvokeAsync(StateHasChanged);
        }
    }

}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;References&lt;br&gt;
For more details, refer to the &lt;a href="https://blazor.syncfusion.com/documentation/chart/how-to/synchronized-chart"&gt;Synchronized Charts in Blazor documentation&lt;/a&gt; and &lt;a href="https://github.com/SyncfusionExamples/Blazor-Synchronized-Charts"&gt;GitHub demos&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
Thanks for reading! In this blog, we explored how to use the new Syncfusion Blazor Synchronized Charts for seamless trade analysis. This feature is available in our 2023 Volume 4 release. Try out this powerful tool and share your feedback in the comments section.&lt;/p&gt;

&lt;p&gt;For a detailed overview of all the exciting updates in this release, we invite you to visit our &lt;a href="https://blazor.syncfusion.com/documentation/release-notes/24.1.41?type=all"&gt;Release Notes&lt;/a&gt; and &lt;a href="https://www.syncfusion.com/products/whatsnew/blazor-components"&gt;What’s New&lt;/a&gt; pages&lt;/p&gt;

&lt;p&gt;To our existing customers, the new version of Essential Studio is available on the &lt;a href="https://www.syncfusion.com/account/login"&gt;License and Downloads page&lt;/a&gt;. If you’re new to Syncfusion, we’re offering a &lt;a href="https://www.syncfusion.com/downloads"&gt;30-day free trial&lt;/a&gt; for you to experience the wide array of features we provide.&lt;/p&gt;

&lt;p&gt;You can also reach us through our &lt;a href="https://www.syncfusion.com/forums"&gt;support forum&lt;/a&gt;, &lt;a href="https://www.syncfusion.com/feedback/"&gt;support portal&lt;/a&gt;, or &lt;a href="https://www.syncfusion.com/feedback/"&gt;feedback portal&lt;/a&gt;. We’re always happy to assist you!&lt;/p&gt;

</description>
      <category>blazor</category>
      <category>javascript</category>
      <category>chart</category>
      <category>csharp</category>
    </item>
  </channel>
</rss>
