开发一个3百万的网站。用户:SharePoint还是纯ASP.NET?

时间:2009-12-04 17:28:14

标签: asp.net sharepoint

我们需要为投资银行开发相当强大的Web应用程序。银行IT希望我们在 SharePoint平台之上构建它,但我们更愿意做纯ASP.NET 编程。

网络应用应具有以下特征。

1)这将是银行客户的一个网站,允许他们查看他们的股票投资组合,通过图表和图表获取杂项报告等。

2)网络应用程序还允许客户向银行发送订单以购买股票并执行其他金融操作。

3)任何时候,用户数量大约 3 000 000 (总计) 20 000

我们从未进行过任何SharePoint编程,但据我所知,SharePoint主要用于创建Intranet网站,供同事互相沟通,提高工作效率,维护文档库等。

然而,银行IT告诉我们,SharePoint实际上有许多其他功能可以帮助我们提高项目效率 - 例如,似乎 SharePoint 有一些内置的可扩展性和高可用性技术。

我听说过SharePoint开发非常繁琐,平台无法轻松定制等。

问题是:在纯ASP.NET上创建我们的网络应用程序并自行处理可伸缩性和其他问题,或者基于SharePoint - 考虑到网络 - 是否更好?我们需要创建的应用程序是非标准和复杂的吗?

谢谢你, 米哈伊尔。

更新

在答案中,有人建议使用ASP.NET MVC。我的另一个问题是:我们是否应该为这样的项目使用“经典”ASP.NET或ASP.NET MVC(如果我们省略了SharePoint选项)?

12 个答案:

答案 0 :(得分:16)

您需要文件管理吗?你需要版本管理吗?你需要创建“网站”吗?你需要观众过滤吗?你需要ECM(CMS的花哨字),你需要在你的网站上合作吗?如果您的答案是否定的,则SharePoint不适合您。

您说“我们从未进行任何SharePoint编程”,仅此因此我认为您不应该使用SharePoint。您还说您的应用程序将“非标准”且复杂,这是不使用SharePoint的另一个原因。

听起来你知道ASP.NET所以我建议坚持使用ASP.NET或ASP.NET MVC。

希望这有帮助

答案 1 :(得分:13)

答案很简单,你应该选择你所知道的。如果您更喜欢在ASP.NET中执行此操作,那么您应该使用它。尝试在该项目的大小上学习新技术几乎可以确定在尝试开发项目时会遇到严重问题。可能,sharech可以扩展到该数量的用户,但您不知道如何做到这一点。这才是真正的关键。

它们是正确的SharePoint确实有很多开箱即用的功能,但这并不意味着它会提高您的效率,因为您不知道要访问的所有API等。

实际上,如果你想知道作弊的方式。如果他们强迫您使用它,您可以在SharePoint下运行ASP.NET应用程序(很好)。您可以告诉SharePoint基本上忽略站点中的路径,并将常规ASP.NET用作Web应用程序,就像任何其他站点一样。实际上,这不是使用SharePoint,但它可以让你摆脱绑定,在“需要使用SharePoint来让他们开心”。

Mayo建议联系MS。我觉得他们已经与银行建立了关系并提供了一些有关该项目的见解。我会联系:http://www.mindsharp.com/,看看他们是否可以帮助你。他们是一家培训公司,但我敢打赌,业主愿意帮助咨询,而且我没有找到任何比Todd Bleeker更了解SharePoint的人。

答案 2 :(得分:8)

我不会考虑sharepoint的优点,但是可以说我一直在使用sharepoint进行开发,因为它被称为“数字仪表板” - 它只是一个javascript包围的今日页面。关于它的.NET版本,我花了大约3年的时间才成为一些可能在SharePoint 2007 / MOSS上称为“专家”的人。

首先,让我给你一些关于这类工作政治的警告。作为承包商,我过去6年的所有工作 - 涵盖了2003年和2007年的shaerpoint - 没有失败,一直在现场与一位需要sharepoint的客户和一家拥有体面的ASP.NET开发人员的开发商在项目的最后5%中,他们已经失去了95%的预算,因为他们已经开始在没有完全理解产品的情况下为平台编写自定义扩展。

如果客户以及为其提供服务的商店花了更多时间来了解产品并对其进行研究,以了解他们如何改变/简化其业务流程。要求略微适合 sharepoint 而不是严格的规范(总是用平台的零实际经验编写)并决定完成自定义开发,然后将提供更多的sharepoint项目时间和预算。可悲的是,事实并非如此。

所以,排名第一:SharePoint 2007是一款出色的产品,但是,对于对jeebus的热爱,请在开始这个旅程之前找到一些真正了解产品的顶级枪支开发者。如果你不这样做,你们都会陷入茫然之中。

-Oisin

答案 3 :(得分:6)

对于op想要使用它的内容,没有削减共享点的CRAP负载。 ChaosPandion的评论特别是“不要让自己被自己包裹在SharePoint中”。也许他认为这很难并且放弃了......

当然,SharePoint开发需要一些时间来适应,但它能够最明确地满足操作需要。 SharePoint是使用ASP.NET构建的,因此您在ASP.NET中执行的任何操作都可以使用/移植到SharePoint。 它不是一个独立的产品,而是一个开发平台。它将扩展为多个用户提供服务,使用多个WFE(Web前端)和一个SQL Cluster作为后端。

这里的问题是:sharepoint是构建此站点最适合的平台吗?然后我将不得不回答,因为所需的功能几乎都是自定义开发。如果您计划进行Web内容管理,那么是的,SharePoint绝对值得研究。此外,SharePoint还会删除所有(或至少大多数:-D)授权和身份验证。它是Department of Defense certified。如果提供的开箱即用安全性不够,只需编写身份验证提供程序(看作SharePoint使用ASP.NET's provider model)。

回答您的问题:

  

银行IT告诉我们,SharePoint实际上有许多其他功能可以帮助我们提高项目效率 - 例如,SharePoint似乎有一些内置的可扩展性和高可用性技术。

SharePoint是基于群组的,您可以向其添加计算机,让每台计算机执行不同的任务,这意味着应用服务器,索引服务器,WFE,文档转换服务.WFE可以在负载均衡器后面分发请求。另外,我想再次提到网络内容管理。

  

我听说过SharePoint开发非常繁琐,平台无法轻松定制等。

就像我说的,SharePoint基于ASP.NET,因此它可以像ASP.NET一样自定义。您甚至可以创建一个ASP.NET网站,将所有UI放在控件中,然后使用这些是SharePoint,甚至可以让控件使用它自己的数据库。至于它是乏味的,不是真的。它只是差异,部署/测试不像正常的部署/测试。 SharePoint使用所谓的解决方案文件(.wsp文件)来打包功能并将其部署到服务器。该IMHO使得以非常模块化的方式部署功能成为可能。此外,还有很多很酷的开源项目可以使sharepoint开发变得更加容易,并且还可以为您的网站提供很好的扩展,使其更加有趣和易于使用。

努夫说......

答案 4 :(得分:3)

SharePoint开发可能很乏味但我很难说平台无法轻松定制。我最近开始全职开发,到目前为止,我对它的应用灵活性和适用性印象深刻,但我的需求与你所描述的完全不同。

我理解2007年比2003年有了很大改进,所以也许你的信息只是过时了。我听说2010年将再次取得重大进展。

提供客户所需的功能是您的职责。如果他们需要SharePoint解决方案,除非有一些特殊原因导致SharePoint真的是一个较弱的模型,这就是您应该能够提供的。如果SharePoint不适合,您需要能够解释银行满意度的原因。在这种情况下,我不相信“我们不了解SharePoint”是一个可接受的响应:此时银行的倾向应该是找到能够很好地了解这两种技术以在SharePoint中交付产品或更好地解释原因的人SharePoint实际上并不是他们想要的。

答案 5 :(得分:3)

更新:看了这个之后我会补充一点,我不相信SharePoint适合你。正如我在下面提到的,SharePoint用于协作。如果访问该站点的用户需要孤立的体验,那么SharePoint的开销将超出您的需求。

SharePoint构建于ASP.NET之上,因此除了SharePoint提供的功能之外,您还拥有要对ASP.NET执行的所有操作。任何说这很困难的人都试图这样做。您可以使用100%自己的代码部署独立的自定义页面,它可以在sharepoint下运行,或者您可以创建包含您要编写的任何代码的新应用程序页面,或者您只需添加可以添加的自己的Web部件使用100%自己的代码选择任何页面。

这只是一个例子。

Creating an Application Page in Windows SharePoint Services 3.0

SharePoint提供的内容是协作工具的完全不同的范例。如果您希望利用它(如果不是回报的成本有限),您可以构建非常复杂和集成的解决方案,这些解决方案围绕整个企业的数据聚合构建。

话虽如此,不要掉以轻心。如果部署错误或对SharePoint擅长的地方有一半了解,那么将导致灾难。除非你有时间了解SharePoint的核心概念,否则我会警告它,但你的客户是对的。如果您在SharePoint中构建它,则可以获得更大的灵活性。一个正确的方法是混合身份验证模式的能力。我设计了一个将自定义表单身份验证与带有Windows身份验证的LDAP后端混合的解决方案。任何人都可以访问相同的页面,但您的身份验证帐户可能来自两个不同的位置。

答案 6 :(得分:2)

这是您希望在应用程序中出现什么样的问题:

  • 构建它以查找和运行您的方式,使用sharepoint。
  • 构建它以具有用于身份验证,权限,http / Web安全性,可伸缩性,备份,数据库维护的基础架构,并使其以您的方式查看和运行(但现在更加在您的控制之下),使用更纯的.NET方法

我会选择我最擅长的那个,正如Kevin上面所说。

修改
关于Kevins发布的更多信息:你也可以在sharepoint下使用你的应用程序但是可以完全访问API,在我的项目中我们将它作为一个普通的ASP.NET应用程序,使用自己的masterpages和所有内容,但我们仍然使用身份验证,列表和用于上传的doc库,用于权限的角色分配等。它是一种非常可行的混合。

答案 7 :(得分:1)

你说,

  

我听说过SharePoint   发展是非常繁琐的,那个   平台不能很容易   定制等。

您被误导了SharePoint。所有SharePoint页面都是ASP.NET页面。您可以直接自定义其中任何一个,也可以使用免费的Microsoft Office SharePoint Designer自定义它们。

开始使用http://msdn.microsoft.com/en-us/sharepoint/default.aspx

答案 8 :(得分:1)

SharePoint是一项很多工作,我个人(并且是SharePoint开发人员)的用户数量不会太多。

我会诚实地沿着ASP.MVC路线前进,而不是因为它是新的和最新的嗡嗡声技术。我会用它,因为它的速度更快。例如,这个站点是用ASP.NET MVC编写的,它在我认为3台服务器上每天处理所有这些请求。 2个前端和1个数据库。如果我错了,请纠正我。

答案 9 :(得分:1)

询问Sharepoint是否易于定制的问题在于人们经历过各种各样的定制级别。出于某种原因,大多数人似乎也认为他们定制Sharepoint的任何级别都是其他人尝试自定义Sharepoint的程度。

很难用具体的术语来谈论定制程度。什么是“定制”对我来说是与核心DAL争论,与CAML中的错误争用到SQL查询优化器,覆盖SPListItem水合管道等等。对于其他人来说,“定制”可能意味着构建一些Web部件小部件并将它们部署在WSP。如果您发现逻辑模型与Sharepoint的工作模型之间存在一些阻抗不匹配,那么您将很难协调这两者。

答案 10 :(得分:1)

欢迎来到黑暗的政治领域。

值得确保您的团队正确评估并了解SharePoint所做的任何妥协。问这是一个好的开始。我要看的内容包括:

  • 整个解决方案将包括哪些内容?通常,站点的管理可以涉及与前端一样多或更多的开发工作。虽然3M +用户前端是迷人的部分,但它可能不是大部分工作。

  • 是否有针对20K +并发用户SharePoint网站的参考网站?说实话?这需要什么样的硬件?可以吗?

  • 在ASP.NET MVC和SharePoint上,让一小部分经验丰富的承包商在几周内正确估算工作。确保他们在大型网站上工作过。 (目前有很多承包商!)

另外,预计失败。有一个后备选项:

  • 如果MVC技术人员获胜,那么期待来自高级管理层的热量,甚至可能是臭鼬工作 - 无论如何都应该做正确的项目 - 重复你的努力。

  • 如果您最终使用SharePoint,请在整个开发过程中仔细聆听用户,并准备创建Web部件,MVC页面或解决问题点的内容。

我一直处于类似的情况,结果发现在非常高级别上有很大的供应商影响力。高级团队已经购买了SharePoint并要求它用于所有内部系统; OCTO(首席技术官办公室)已经授权开源技术。在中间看毛皮很有趣。

(我们最终选择使用基于REST的基于服务的体系结构,它可以有效地将当前版本的SharePoint从系统中引导出来。)

答案 11 :(得分:0)

我会在SharePoint上构建它。它非常适合大型网站,并且已经在其上构建了许多网站:topsharepoint.com

SharePoint(就像所有复杂的应用程序一样)确实需要足够的知识,而您现在似乎并不知道这在我脑海中是一个很大的风险。不要听那些不说话的人说。缺乏知识是开发人员处理SharePoint的常见问题,但并不意味着你无法做任何你想做的事。

无论如何,您还有其他选择吗?我认为构建完全自定义CMS的日子已经过去了,因为构建完全自定义的内部网不再具有成本效益。他们想要用SharePoint做什么竞争对手(Umbraco,Sitecore,Sitefinity等),其中大多数看起来比100%定制好。

所以答案可能既不是ASP.NET也不是Sharepoint ..