0

我参与了一个以数据为中心的 SharePoint(WSS) 项目。该项目由 500 多个列表组成,它们之间的关系非常复杂。客户还要求提供 350 多份报告。不要告诉我你为什么从一开始就使用 SharePoint。这是一个管理决定,经过 14 个月的痛苦,我们已经交付了项目(这比截止日期晚了 6 个月)

当我们第一次开始这个项目时,我们对 SharePoint 开发一无所知(信不信由你)。管理层表示他们将承担风险。他们非常相信 SharePoint 是任何事情的最佳解决方案!!!(嗯,在项目结束时证明是错误的)。

无论如何,我们在开发时正在学习 SharePoint。我们的开发主要基于 SharePoint 设计器,为每个列表自定义所有 AllItems/NewForm/EditForm/DispForm,以提供客户要求的所需逻辑/验证(使用 JavaScript)。我们还实现了大约 15 个自定义字段(例如主从字段)。我们还制作了一个事件接收器来处理站点中所有列表的所有添加/更新/删除...事件。加上大约 40 个 ASP.Net 用户控件。

我们面临的主要问题(我们解决了它,但遗憾的是效率低下)

1- 客户要求在每个 AllItems.aspx 中搜索 Web 部件。搜索 Web 部件应该有多个键供客户端搜索。我们使用 SPD 的表单 Web 部件做到了这一点,没有问题。但真正的问题是如何搜索不在当前列表中的相关字段。(因此,在这种情况下,我们必须将这些字段值保存在列表中以便能够搜索(废话,我知道!!))。您可能会问,为什么不为此类任务实现 ASP.Net 用户控件?好吧,这将要求我们放弃默认的 AllItems Web 部件,并且已经定制了数百个 AllItems.aspx 页面,并进行了大量自定义,这将花费我们大量时间从一开始就重新实现它们。此外,即使我们使用了用户控件,CAML 从多个相关列表中检索数据的效率也非常低!

2-我想你可以猜到这一点,如果我们已经在搜索 Web 部件方面遇到了很大的困难,那么到底如何才能完成 350 份报告!!:D 但我们想出了一个解决方法(像往常一样:S) 我们制作了一个 Access DB 文件,其中包含指向所有 500 个 sharePoint 列表的链接,然后我们实现了一个具有报表查看器控件的用户控件。此用户控件使用普通的 T-SQL 查询来查询 Access DB,Access DB 从 SharePoint DB 中检索数据并将其传递回用户控件,该用户控件在报表查看器上查看 DataSet。

还有其他与管理相关的问题,但我想重点关注这里的开发。

所以,在我给你看照片之后(对不起,很长的帖子)。您认为我们在这样一个以数据为中心的项目中应该采用的最佳 SharePoint 开发技术是什么(如果有的话)?

我听说有些公司在此类项目中根本不使用列表,而是在其中构建自己的 SQL 数据库表而不是 SharePoint 数据库。但是我不能不让自己想知道,如果我正在制作自己的数据库,并因此从头开始实现我的 CRUD Web 部件(我们也将失去 SP 列表提供的安全模块优势),那么共享点?

我再次为这篇长文道歉。

4

4 回答 4

1

我不同意 Geoff 和 A​​bu 关于 SharePoint 是大型企业应用程序的错误选择的观点。

正如您所说的那样,阿布您的团队正在学习工作,因为您没有 SharePoint 开发经验,您面临的问题更多是管理错误而不是平台问题,管理层应该让 SharePoint 承包商与您的团队一起工作,以帮助构建什么听起来是一个相当复杂的系统。

作为一名使用 SharePoint 多年的开发人员,我曾参与过一些我自己在最初几年在此平台上开发时并不认为适合 SharePoint 的项目,但现在有了更多经验,我知道如何更好地利用平台的力量,并且我意识到使用 SharePoint 进行此类项目所获得的优势。这就是说我在平台的某些部分存在许多问题,但这与我从事过的任何其他平台(包括 ASP.Net 平台的部分)没有什么不同。

如果我被要求使用定制的基于 Java 的系统(或者可能是新的 MVC 平台)开发解决方案,我相信我会遇到许多与您遇到的类似的问题,我根本不知道正确的方法是什么。这绝不是平台的问题,但更多的是我的经验不足。

我很遗憾听到你们俩都在管理层强加给您的 SharePoint 平台范围内工作时经历了痛苦。虽然我很失望你这么快就将责任从你自己和你的管理层身上移开。

我不能说 SharePoint 是否是您项目的最佳平台,但这并不意味着它对于企业应用程序来说是一个糟糕的平台。

于 2009-08-27T15:17:56.173 回答
1

我想你确切地知道我做了什么。Sharepoint 只是不擅长处理大型企业类型的应用程序。我们最终创建了一个自定义数据库来存放我们的数据。我们将 Webparts 用于用户界面,但除此之外,整个应用程序都独立于 Sharepoint。

在我看来,微软正在超卖 Sharepoint。它实际上擅长团队协作站点和简单的 Excel 服务应用程序,但除此之外的任何事情它都无法处理。

于 2009-08-27T11:24:27.323 回答
0

如果您在 SharePoint 中寻找以数据为中心的解决方案,最好的解决方案是使用业务数据目录(BDC)。这使您的丰富数据关系和所有您想要的 SQL(或其他 DBMS)优点保持在应有的位置 - 在设计用于存储数据的最佳存储库中

有关 BDC 功能可以做什么的概述,请参阅SharePoint 团队博客上的这篇文章。有关更多详细信息,请阅读SharePoint 杂志上的系列文章。请注意,这些功能需要 SharePoint 2007 的企业许可证。

于 2009-08-27T14:00:54.440 回答
0

我不同意 Geoff 的观点,即 SharePoint 不适合大型企业类型的应用程序。您必须从一开始就记住 SharePoint 是一个开发平台。这意味着它为您提供了很多开箱即用的功能,而且非常可定制。

作为一个平台并不意味着每一点定制都需要基于 SharePoint 列表来完成。由于它是在 ASP.NET 上构建的,因此您可以在 SharePoint 中执行您在 ASP.NET 中也可以执行的任何操作。

我已经构建了大量托管在 SharePoint 中的 ASP.NET 应用程序,让 SharePoint 进行身份验证等。

不过,我不得不说,确定 SharePoint 应该在哪里停止成为您的基础并且您应该切换到常规 ASP.NET 有时很难..

于 2009-08-27T11:31:55.797 回答