.NET核心支持
从版本开始R1 2019 (13.0.19.116)
Telerik Reporting提供了一组为。net Core项目设计的程序集和NuGet包,使您能够在Windows、Linux和macOS平台上的。net Core应用程序中使用Telerik报告。
NuGet包可在Telerik NuGet feed.此外,程序集可在\ Bin \ netstandard2.0 \
,\ Bin \ netcoreapp3.1 \
,\ Bin \ net5.0 \
,\ Bin \ net5.0-windows \
,\ Bin \ net6.0 \
,\ Bin \ net6.0-windows \
位于Telerik Reporting安装目录中的文件夹。
程序集的目标是。net Standard 2.0,桌面查看器的目标是。net Core 3.1、。net 5.0或。net 6.0,这确保了与更多种类的框架和应用程序的兼容性。此外,NuGet包解析外部依赖项,以提供更好的依赖项管理和代码可移植性。
需求
- (对于web项目)ASP。NET Core 2.1或更高版本。
- (对于桌面项目). net Core 3.1或更高版本。
要使用NuGet,您需要提供以下NuGet包。注意,当使用Telerik NuGet包时,所需的依赖关系会自动解析。否则,您需要手动将它们添加到项目中。
包名 | 版本 |
---|---|
Microsoft.Extensions.Configuration |
2.1.2001 |
Microsoft.Extensions.Configuration.Binder |
2.1.2001 |
Microsoft.Extensions.Configuration.Json |
2.1.2001 |
System.Configuration.ConfigurationManager |
4.5.2000 |
System.Data.Common |
4.3.2000 |
System.Data.SqlClient |
4.6.2000 |
System.Drawing.Common |
4.5.2001 |
System.IO.Packaging |
4.5.2000 |
System.Reflection.Emit |
4.3.2000 |
System.Reflection.Emit.Lightweight |
4.3.2000 |
System.Runtime.Loader |
4.3.2000 |
System.Security.Cryptography.Pkcs |
4.5.2001 |
System.Security.Permissions |
4.5.2000 |
System.Text.Encoding.CodePages |
4.5.2000 |
System.Threading.AccessControl |
4.5.2000 |
sqlite-net-pcl |
1.7.302-beta |
特点和限制
在Windows上,报告引擎仍然依赖于GDI+库,因为它提供了处理文本的最快、最方便的方法,这对产品来说是必不可少的。
- 对于Windows, . net Core运行时本地解析GDI+调用。
- 对于Linux和macOS,需要安装下面列出的库集。
大多数在Windows上运行并使用。net Framework 4或更高版本的处理和呈现特性也在。net Core项目中得到了新的。net标准程序集的支持。
作为一个缺点,报表项设计器与。net标准不兼容。因此,Visual Studio中没有可用的设计时支持,也不支持类型报告。因此,建议您这样做转换该等报告.trdx
或.trdp
使用独立报表设计器定义。
另外,您可以将这些类用作运行时创建的报表实例。您可以使用Visual Studio中创建的报表定义作为。net Core应用程序中的报表实例,但是它们的代码不能包含任何对codedom特定类的调用,比如ResourceManager
.
Telerik Reporting支持以下功能:
除了MHTML (HTML存档)、XPS (XML纸规范)和XLS (Microsoft Excel 97 - 2003)之外的所有渲染扩展。
Linux和macOS上支持HTML、PDF和基于openxml的渲染。由于图形库不兼容,在某些情况下,OpenXML呈现中的基于图形的项显示不正确。
除了过时的Chart报表项外,支持所有报表项。
支持的报表定义类型为
TRDX
,TRDP
,并报告在Visual studio中创建的类,而不使用VS设计器特定的代码。Telerik Reporting支持以下数据源组件:
的基于json的报告配置也受支持。对于CLI项目,JSON配置优先于当前基于xml的报告配置。
在Linux上部署
在部署到Linux机器时,请确保您拥有libgdiplus库安装。该库是针对非windows操作系统的GDI+ API的Mono实现。
下面的代码片段演示了如何在Ubuntu或Debian上更新和安装必要的库:
Sudo apt-get update Sudo apt-get install libc6-dev Sudo apt-get install libgdiplus
由于libgdiplus库不是Windows图形库的完美替代品,因此呈现的报告在文本定位、换行和对齐方面可能有所不同。这些问题大多影响图像渲染扩展因此,不建议使用它。
下面的JSON配置片段从可用的渲染扩展列表中隐藏了图像渲染扩展:
"telerikReporting": {"extensions": [{"name": "IMAGE", "visible": "false"}]}
在Linux机器上,还需要安装报告中使用的字体。否则,字体替换算法将用系统字体替换它们。在呈现PDF文档时,只有当字体列在< privateFonts >
配置元素。
在macOS上部署
在mascOS上使用。net Core:
安装libgdiplus通过使用家酿.
Brew安装monoo -libgdiplus
创建你的。net Core应用程序,或者从Windows机器上复制一个现有的。net Core应用程序。
添加
nuget.config
带有NuGet存储库路径的文件。中添加一个部分
appsettings.json
文件的任何字体后退。运行以下命令构建项目并运行应用程序。如果您以调试模式运行项目,visualstudio Code将要求您将调试配置添加到
launch.json
文件。dotnet构建
使用集装箱平台
您可以在Docker映像中使用Telerik Reporting,如果它满足GDI+的要求。的Microsoft-distributed微软/ windowsservercore
图像包含图形库。但是,它们的大小与Linux容器中的。net运行时的大小相比要大得多。这样的容器只需要安装libgdiplus库及其配套库。
以下dockerfile
代码片段演示了如何实现预期的结果。安装了这三个库后,Telerik Reporting将在生成的Docker映像上运行。
运行apt-get update \ && apt-get install -y——allow-unauthenticated \ libc6-dev \ libgdiplus \ libx11-dev \ && rm -rf /var/lib/apt/lists/*
要在Windows容器中使用Telerik Reporting,目标是包含GDI支持的Windows基映像。同样的方法是微软推荐.
示例项目
Telerik Reporting附带了现成的。net Core示例,演示了如何在ASP中显示示例报告。NET Core, WinForms Core和WPF Core应用程序。ASP。网络核心demo also shows how to inject anappsettings.json
配置文件到控制器,以及如何初始化WebHostBuilder,使其在Windows和Linux下运行。
示例项目可在\ \ CSharp例子\ Asp。NetCoreDemo
Telerik Reporting安装目录的子文件夹。