这些天我听到很多关于SharePoint的讨论,但是在所有企业和营销术语中,我难以抓住它到底是什么。亲自试用似乎也太麻烦了(需要下载几个重量级软件包,而且不能免费下载)。
有人能给出一个好的开发者对开发者的描述吗?我特别想知道Sharepoint开发人员通常做些什么。
这些天我听到很多关于SharePoint的讨论,但是在所有企业和营销术语中,我难以抓住它到底是什么。亲自试用似乎也太麻烦了(需要下载几个重量级软件包,而且不能免费下载)。
有人能给出一个好的开发者对开发者的描述吗?我特别想知道Sharepoint开发人员通常做些什么。
== 2017编辑 ==
这篇文章比较旧了,SharePoint在过去几年中发生了很多变化。原文的大部分内容仍然有效,但只有在您进行本地安装时才适用于某些情况,其中SharePoint的未来似乎倾向于SharePoint Online。话虽如此,大多数功能仍然存在,并且有一些改进。
== 原始帖子 ==
SharePoint是一个非常复杂的CMS(内容管理系统),具有许多出色的BSS(业务支持系统)功能。它有很多优点,难以限制要提到的内容。然而,一些明显的东西是您可以在同一个服务器上混合许多“环境”,这些环境被分为站点。
我所说的环境是什么意思呢?
假设您经营物流公司,并且厌烦了为了使业务运行而使用许多不同的系统。许多系统也具有不同的提供商,因此公司周围的生态系统也同样复杂,这时SharePoint就派上用场了,因为它是一个实际上可以托管所有所需环境的系统。例如:
每个环境都可以受益于SharePoint内置的工作流程和自定义内容类型等功能。
我认为选择SharePoint的主要原因是其多样性,可以存储不同类型的数据。如果您计划每秒执行一百万次事务,则不应选择该系统,即使性能可以通过在农场中使用多个服务器来大大提高。
作为开发人员,我认为SharePoint基本上是关于列表、库和元数据存储的,因为这是大部分数据保存的地方。这是您需要学习和了解如何结构化数据以及如何实现信息模型的东西。
在我的工作中,最常见的任务是将SharePoint与外部CMS(如EPIServer或Joomla)集成,以建立一个集成系统,使访问者能够直接从Web发送信息到SharePoint。这些任务会延伸到创建一个工作流程,确定客户支持/销售人员或其他人员在收到消息后将执行的操作,一直到完成任务。完成后,我可能会使用mschart构建自定义Web部件中的图表来显示销售数据或支持请求的统计数据。目前,我在使用SharePoint作为Web商店设计数据结构。这就是多才多艺的地方!以下是一段简短的视频,以终端用户/业务角度描述SharePoint。 http://www.youtube.com/watch?v=s12Jb5Z2xaE
从开发者的角度来看,SharePoint是一个基于ASP.NET的平台,提供了视频中所描述的服务(以及更多)。开发者的工作是在“开箱即用”的功能无法解决业务问题时扩展平台。
虽然SharePoint基于ASP.NET,但从开发角度来看,它与ASP.NET开发有很多不同之处。SharePoint使用列表作为其主要存储机制,具有自己的组件模型(特性)、打包和部署模型(解决方案)等。即使对于已经精通ASP.NET开发的人来说,成为一名SharePoint开发者也需要一些时间。
SharePoint提供了许多可扩展的部分,您可以在其基础上构建。您不必编写自己的身份验证、工作流、负载均衡、站点主题、文档版本控制等。
这使您能够快速构建高级解决方案。
实际上,作为开发人员,您应该首先问的问题是是否可以在不编码的情况下解决问题。业务用户和管理员可以在浏览器中或使用SharePoint Designer组合解决方案。开发人员应该尝试熟悉这些角色的工作和他们使用的工具。通常,您将成为自己开发服务器的管理员,这将使您接触到AD、PowerShell以及安装和配置任务。
如果需要使用Visual Studio,则开发的代码必须符合SharePoint的框架,并使用Server或Client Side Object Model、各种Xml模式等,除了html、JavaScript和C#。例如,与ASP.NET开发人员创建简单页面不同,SharePoint解决方案可能要求您将html/js包装在WebPart中,然后由业务用户在不同页面上重复使用和配置。
SharePoint的托管版本(特别是2013)为SharePoint开发增加了另一个维度:除了html/js之外,您可能还想使用Azure。