SQL Server 2005 Reporting Services - 优缺点

11

我正在使用ASP .NET 2.0、VS 2008和SQL Server 2005开发Web应用程序。我想使用SSRS 2005来构建此Web应用程序所需的各种报告。我想说服团队,我们应该将SSRS作为大多数内部和外部Web应用程序的主要报告平台。

使用Reporting Services的优点和缺点是什么?我可以看到许多优点,如与IIS、SQL Server和Visual Studio的紧密集成、丰富的呈现功能和导出功能、订阅等,因此我主要关注SSRS的缺点。

编辑:我了解如果我不使用VS 2005进行应用程序开发,则将为应用程序开发和报告开发使用不同的Visual Studio版本。然而,我更关心SSRS本身的负面(或不太好的)方面。

11个回答

9

我知道你说的是2005,但我也会在注释中加入关于2008年的内容。

SRS优点:
- 免费(只要你有SQL Server许可证)
- 与SQL Server紧密集成的数据,但它可以处理.NET所能处理的任何东西(如Oracle、ODBC等)。 (2008年原生支持Terradata
- 可视化工具组件,SharePoint和PerformancePoint都存在,使得利用它变得更容易。虽然它只是一个Web应用程序,但与任何可以与Web服务器通信的网页或应用程序进行集成也很容易。
- 内置工具用于订阅(即定期向人员列表发送电子邮件,其中包含报告)。 接收者列表可以是静态人员或SharePoint站点或动态人员列表(从数据库中提取)(08还支持对SharePoint的动态支持
- 存在第三方供应商来增强产品
- 导出到各种格式(XML、CSV、Excel、PDF等)
- 能够设计模板,以便高级用户可以构建报告而无需了解SQL(因为SQL包含在模板中)。高级用户使用特殊的报告生成器工具,该工具通过单击方式传递。
- 与Crystal报告不同的工作方式(我不喜欢Crystal,这就是为什么这对我来说是正面的)

SRS缺点:
- 图表控件看起来像Excel 2003,功能有限。(2008年默认包含Dundas控件,因此它们更加强大、多样化和美观
- 由于它是Web应用程序,Kerberos问题可能会导致烦人的问题。(2008年已经移除了IIS Web应用程序,它运行自己的基于IIS核心的Web服务器,但更接近于一个独立的应用程序-所以安全问题不是问题
- 设计器支持很麻烦。必须在VS 2003中开发2000报告,在VS 2005中开发2005报告,在VS 2008中开发2008报告。通过Visual Studio,我的意思是普通的Visual Studio或你在SQL管理工具中获得的简化版本。
- 兼容性。每个版本的报告服务只能运行当前版本和上一个版本的报告。
- 安全性仅限于集成Windows或匿名(2008添加了对基于表单的安全和自定义提供程序的支持,就像ASP.NET一样


1
我很幸运也曾经使用过Crystal,但即使考虑到这里提到的问题,我仍然认为SSRS更好。 - Benjamin Autin
在2005年,表单身份验证是可能的。但是设置起来非常困难... - JPot
@JPot,你能提供一个相关链接吗?据我所知,2005年的任何其他身份验证方式都不受支持。 - Robert MacLean

4
你的设置中存在一个缺点,就是由于你使用了SSRS 2005,所以你将不得不使用Visual Studio 2005来进行报告项目。由于你在其他开发中使用的是Visual Studio 2008,这意味着你需要安装两个版本,并且大部分时间都需要同时打开和运行两个版本。
我也处于同样的情况,这确实很麻烦,但我已经习惯了。
编辑: 我遇到的其他一些缺点通常与设计有关。它们可能已经在2008年得到解决(我不确定),但我认为这是因为SSRS相对于其他更成熟的报告解决方案还处于初期阶段。
这些缺点包括:
- 每次进入数据选项卡时,数据集都会更改为文本,即使你将其设置为存储过程。 - Web服务数据集在更改查询时会丢失其参数。 - 表达式编辑器非常简单,仅略好于使用记事本。

达斯汀,我同意在我的设置中会使用不同的 Visual Studio 版本。然而,我更关心 SSRS 本身的负面(或不那么好的)方面。 - cwius

3

缺点:

  1. 在Firefox或其他浏览器中呈现可能会有所不同。当在ASP.NET页面上使用SSRS ReportViewer时,确保验证报告在除IE之外的浏览器上呈现时的外观/感觉/布局。

  2. 一个缺点是,对于SSRS,开发人员可用的选项太多了,可能会让人感到困惑。我说的更多的是关于是否使用本地报告还是服务器报告,是否将代码放在代码模块内,在可重用的程序集中,或者使用可重用的托管代码(C#)存储过程。

  3. 我能想到的SSRS中最大的缺点是代码模块非常基础。没有智能提示和调试功能。此外,如果SSRS脚本支持C#而不仅仅是VB.NET,则会很棒。

  4. 虽然表达式很棒,但问题是没有单个容器/位置允许您查看报告中定义的所有表达式。这可能会在未来带来维护上的问题。

话虽如此,对于经验丰富的开发人员来说,SSRS是一个强大的工具。


2

优点:

  • 免费
  • 可能比大多数其他软件更适合与MS SQL集成
  • 适用于大多数类型的报告

缺点:

  • 免费,支持访问不如Crystal Reports
  • 没有其他老牌竞争对手拥有的每个功能。作为一款较新的软件,它仍在获得其他产品(如Crystal Reports)多年拥有的新功能。

我经常以最简单的方式运行报告。最近我建立了自己的基于Web的界面,驱动任何PDF / HTML / Crystal / SRSS报告的组合并将其交付。通常Crystal会在2步骤中完成某些工作,而SRSS则做得更好。如果我现在必须选择一个用于所有场景的工具,我可能会选择Crystal。随着我使用SRSS越来越多,这款软件已经几岁了,但仍在积极开发新功能(赶上像Crystal这样的产品),我可以看到它被广泛使用...但还不是现在。


但是您并没有具体说明缺少哪些功能?这对我来说才是有趣的... - AviD
罗伯特已经概述了主要问题。一旦你开始进行报告开发,这些问题就会变成一个大问题。关键是要找出所有的问题,看看哪些适用并可能适用,然后从那里开始。水晶报表软件比较老,因此它会有较少的问题,因为他们在这些年里增加了更多的功能。祝好运! - Jas Panesar

1

我发现SSRS非常强大,并提供了非常广泛的功能,以满足您的报表需求。我尝试过其他工具(如Crystal),但并不喜欢它,没有SSRS好用。(当然,这可能只是个人口味问题)。

即使对于初学者来说,SSRS也有许多向导可以帮助您获得所需的结果;而对于经验丰富的开发人员,您可以通过钻取、颜色、编码等方式来精细调整报表。

老实说,我对SSRS没有任何负面评价。Dustin指出的一个缺点是您的VS版本和SQL版本不同。我有一个应用程序在VS2005中,但使用的是SQL 2000后端,为了使报表正常工作,我必须将它们单独放在一个VS2003项目中。


1
为了更好地提供分析,如果我们知道您正在考虑的替代方案,那将会更容易。例如,如果是SSRS与无报告相比,则论点很简单,同样,SSRS与定制报告(例如ASP.NET)相比。但是,如果您正在考虑其他报告工具,例如Crystal,则我们可以更加批判。此外,您计划制作什么类型的报告,以及您理想需要哪些功能。
无论如何,我基本上同意其他帖子的观点。 SSRS是免费且非常有能力的。其他系统可能会有额外的花哨功能,但这些是否重要,并且是否准备好承担成本呢?
我想,鉴于SSRS是免费且易于设置,我的建议是进行试用;通过一些实验,您可能能够自己做出决定-您没有任何损失!

其他选择是Crystal Reports或自定义的ASP .NET报告。我的所有报告都将通过查询字符串和用户提供的参数进行设置。我唯一担心的是安全性,因为我在我的ASP .NET应用程序中使用了自定义身份验证和授权,并将角色存储在会话中。 - cwius
SSRS的一个好处是它可以成为一个[受过培训的]终端用户工具。关键用户通常可以创建自己的定制报告。如果您的报告是固定和有限的,那么您可能会坚持使用ASP.NET。否则,SSRS可能会提供另一个优势。 - CJM

1

SSRS非常简单易用。我们的实习生在入职的第一天就使用SSRS编写报告,并且表现出色。

这种简单性对于那些只想快速完成报告以便回到实际编程工作的开发人员来说非常重要。


0

如果我错了,请纠正我,但是SSRS不使用表单身份验证。使用内置组件从Web应用程序查看报告将使用应用程序使用的任何身份验证。但是,对于订阅和使用需要访问报告管理器的Report Builder应用程序(单击一次),其Windows身份验证。

[编辑]来自Robert MacLean-MSSQL 2008支持表单身份验证,这是一件好事。


你是正确的,SSRS 2005不支持基于表单的身份验证。但你是错误的,因为对于查看,它支持应用程序所支持的内容。它仍然使用WindowsAuth或匿名(与报告管理器相同)。在SSRS 2008中,它可以在所有方面使用表单、WindowsAuth或自定义。 - Robert MacLean
谢谢您的纠正。不过我认为您关于Visual Studio中的ReportViewer组件可能是错误的。这些组件放置在Web表单上,本身不使用身份验证。 - Sean Rock

0
我遇到的主要问题是在一个阶段/生产网络环境中设置Reportserver。我必须将报告从Reportserver Webservice导出到Web应用程序中。现在环境看起来非常简单,但我记得当时调试很困难。
另一个问题是多语言报告。同样:现在很容易使用,但要准备好做一些搜索。
设计师很糟糕。谁知道=First(Fields!Sales.Value,"DataSet1")是什么意思?我还遇到了报告大小的问题(报告被设计为适合A4页面,但最终并没有)。
我仍然喜欢这个产品。经过一段时间,我解决了所有问题,我们的实习生可以设计和发布出色的报告。

0

我只会列出一些缺点,因为大多数人已经提到了好处。

SSRS 2008: 原始用户界面 很少灵活性去做花哨的东西,比如华丽的图表、地理地图(没有纬度和经度) 用户交互仅限于应用过滤器,其余部分相当静态

微软必须认真重新考虑竞争对手在商业智能和数据可视化领域所做的事情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接