# External Customizations in ActiveReports

Learn how to use ActiveReports.NET with other technologies. For reports, these options include scripts or external assemblies, custom report items, custom data providers, and custom map tile providers. For Viewers, they include PWAs, .NET MAUI (WebView) and .NET MAUI Blazor (BlazorWebView). You can also create custom exports.

## Content

This article discusses the possibilities to use ActiveReports.NET with other technologies.

ActiveReports gives you opportunity to customize reports, viewers, and exports if you are looking for customization at different levels of using the product.

### Reports

ActiveReports provides the following extension possibilities for reports:

* Scripts or external assemblies
* Custom report items
* Сustom data providers
* Сustom map tile providers

ActiveReports provides many reports-related features. If you are looking for more possibilities, you can try the following extensions:

* **Customize with scripts or external assemblies**
<br>
    To have custom assemblies load in restricted domains, you should add a configuration file with the name of *yourApp*.exe.config file as follows.

    ```xml
    <configuration>
        <runtime>
           <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
              <probing privatePath="PrivateBin"/>
           </assemblyBinding>
        </runtime>
     </configuration>
    ```

    > type=note
    > **Limitation**: Private assemblies are deployed in the same directory structure as the application. If the directories, specified in the **privatePath** setting are not under ApplicationBase, they are ignored.
* **Customize with custom report items**
<br>
    ActiveReports delivers a number of samples demonstrating how to use custom report items. See the [Samples](/activereportsnet/docs/v19.2/samples) page for details.
* **Customize with custom data providers**
<br>
    To learn about possible options, see Custom Data Providers in [Configure ActiveReports using Config File](https://docapp.mescius.io/activereportsnet/v19.1/docs/devops/customization/configure-ar).
* **Customize with custom map tile providers**
<br>
    To learn about possible options, see Custom Map Tile Providers in [Configure ActiveReports using Config File](https://docapp.mescius.io/activereportsnet/v19.1/docs/devops/customization/configure-ar).

### Viewers

ActiveReports provides various ways to create your own preview control, including different platforms for custom viewers based on the [JS Viewer](/activereportsnet/docs/v19.2/developers/create-applications/js-viewer-application) component and the [Blazor Viewer](/activereportsnet/docs/v19.2/developers/create-applications/blazor-viewer-application) control.

The **Custom Preview** sample demonstrates how to create your own preview control and show report output in a custom preview form. You can find the **Custom Preview** sample [here](https://github.com/activereports/Samples19/tree/main/Web/CustomPreview). You can modify both viewer's mouse mode and touch mode toolbars and set custom commands. You can also customize the Viewer control to make it a perfect fit for your Windows application by adding and removing toolbar buttons, adding and removing menu items, creating custom dialogs, and calling them from custom click events. For more information, see [Customize the WinForms Viewer Control](https://docapp.mescius.io/activereportsnet/v19.1/docs/developers/create-applications/dotnet-viewer-application/working-with-win-viewer/customize-winforms-viewer-control).

With the [JS Viewer](/activereportsnet/docs/v19.2/developers/create-applications/js-viewer-application) component and the [Blazor Viewer](/activereportsnet/docs/v19.2/developers/create-applications/blazor-viewer-application) control, you can implement your own preview control on many different platforms like:

* [PWAs](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/)
* [.NET MAUI (WebView)](https://learn.microsoft.com/en-us/dotnet/maui/user-interface/controls/webview?view=net-maui-8.0&pivots=devices-android)
* [.NET MAUI Blazor (BlazorWebView)](https://learn.microsoft.com/en-us/dotnet/maui/user-interface/controls/blazorwebview?view=net-maui-8.0)

### Exports

You can create custom exports in your ActiveReports applications. ActiveReports provides a lot of various powerful exports that cover most situations.

However, you can write your own exports as demonstrated in the [CustomPdfExport](https://github.com/activereports/Samples19/tree/main/Advanced/PageAndRDLX/CustomPdfExport) sample. It shows how to write custom exports for non-embedded fonts. Such tasks have some limitations because they are dependent on the internal API.

However, the simplest way is to write custom export to graphics-like formats: PDF, SVG, [DrawingML](https://en.wikipedia.org/wiki/Office_Open_XML_file_formats#DrawingML), [XPS](https://en.wikipedia.org/wiki/Open_XML_Paper_Specification), etc. More complex formats may require a lot of work.

### Environment

ActiveReports delivers implementation solutions that can work in different environments. We recommend that you consider this logic when making a decision on what option to choose:

* Use Page/RDLX reports, Section report requires some knowledge on writing scripts and is intended mainly for developers.
* Use custom font resolving (and distribute fonts together with your application).
* Use the new Blazor viewer for the cross-platform UI.

## See Also

[Extensibility in ActiveReports](/activereportsnet/docs/v19.2/developers/extensibility-in-activereports)