Sql server 使用客户端报告与服务器端报告?

Sql server 使用客户端报告与服务器端报告?,sql-server,reporting-services,reporting,Sql Server,Reporting Services,Reporting,我们什么时候使用客户端报告,什么时候使用服务器端报告 哪种报告是最佳做法(客户端/服务器) 这与SSR报告有关。那么。。。如果您有winforms之类的客户端,而您不能保证它能够持续访问数据源,那么您将使用客户端报告。它可能在客户端缓存了一组数据,即使与服务器的连接不可用,您也需要报告这些数据 在需要简化报告分发和部署的场景中,您将使用服务器端报告,因为您只需将报告部署到一个位置,每个人都可以访问它们。这样做的缺点是,当客户端从非常不同的来源收集数据时,客户端报告也很方便,因为它总是要求服务器连

我们什么时候使用客户端报告,什么时候使用服务器端报告

哪种报告是最佳做法(客户端/服务器)


这与SSR报告有关。

那么。。。如果您有winforms之类的客户端,而您不能保证它能够持续访问数据源,那么您将使用客户端报告。它可能在客户端缓存了一组数据,即使与服务器的连接不可用,您也需要报告这些数据


在需要简化报告分发和部署的场景中,您将使用服务器端报告,因为您只需将报告部署到一个位置,每个人都可以访问它们。这样做的缺点是,当客户端从非常不同的来源收集数据时,客户端报告也很方便,因为它总是要求服务器连接可用。我们有一个内部公司应用程序,它调用内部服务从财务数据以及我们单独的生产数据库中获取数据,并将它们组合成一个数据集,然后传递给ReportViewer控件


从美学的角度来看,将报告集成到应用程序中是很好的,这样用户就不会觉得他们离开应用程序打印或导出应用程序的数据了。

客户端站点报告

如果以下情况之一为真,则应使用客户端站点报告:

  • 如果数据仅在客户端上,而不在网络或服务器上。对于桌面应用程序,这一点基本上是正确的
  • 没有服务器(家庭系统)
服务器站点报告

如果以下情况之一为真,则应使用服务器站点报告:

  • 数据位于服务器上或网络中的静态位置
  • 您只有瘦客户端
  • 应安排报告时间
  • 单个服务器的许可证成本低于许多桌面安装
  • 报告模板是共享的,可以经常更改
在这种情况下,这取决于您所称的“服务器”。当你提到SSR时,我假设你把数据库(SQLServer)看作服务器。< /P> 这完全取决于应用程序/项目结构和要求。如果您有一个包含业务逻辑(存储过程)的数据库,并且您只想查询数据并显示/导出数据,那么SSRS就很方便了

但是,如果您有一个带有持久层(数据库)的web应用程序,它只存储信息并确保信息的一致性,但是您的业务逻辑例如位于查询/维护数据库数据(CRUD)的web API(即RESTful API项目)中并添加一些逻辑,然后使用请求的结果/信息(即:使用JSON)响应HTTP请求到丰富的前端,然后我将在客户端(前端)添加报告功能,例如在浏览器中执行Javascript库,该库能够以任何方式显示检索到的数据,它可以将其导出到文档、Excel、电子邮件等

典型Web应用程序的关注点分离:

  • 持久层(数据库)用于存储信息并保证一致性
  • 业务层(后端RESTful API)对每个HTTP请求的资源、计算、身份验证和授权执行所有智能操作
  • 丰富的前端(Javascript+HTML+CSS)与用户交互,并向后端请求/显示信息作为显示信息的一部分,此前端还将生成报告

网络表单呢。用webforms做客户端报告值得吗?不值得。人们只有在不知道如何使用ReportViewer webcontrol代表ASP.NET用户进行身份验证时才会这样做(SSRS需要域身份验证,ASP.NET进程可以充当代理并满足用户的这一要求)。