从开发者的角度来看,什么是Sharepoint开发?

45

这些天我听到很多关于SharePoint的讨论,但是在所有企业和营销术语中,我难以抓住它到底是什么。亲自试用似乎也太麻烦了(需要下载几个重量级软件包,而且不能免费下载)。

有人能给出一个好的开发者对开发者的描述吗?我特别想知道Sharepoint开发人员通常做些什么。


你所说的不免费下载是指SharePoint吗?如果是的话,那么这是不正确的,因为你可以免费运行基础版! - Eric Herlitz
@Trikks 真的吗?我只是假设你需要一个 MSDN 订阅或其他东西才能访问其中任何内容。那个版本和“真正”的版本之间有什么大的区别吗? - Svish
1
不,它是免费的。http://technet.microsoft.com/en-us/sharepoint/ee263910.aspx#tab=1 基础版本拥有您需要启动和运行的所有内容。大多数小型组织将只使用SP Foundation即可。这里有一个非常好的功能比较http://tinyurl.com/328wk8n。 - Eric Herlitz
免费,但安装起来很麻烦。我认为更容易申请一个(免费的)MS开发者账户。 - iDevlop
只有在不遵循说明时才会成为烦人的任务。先为您的设置服务帐户设置服务器和 SQL 权限,这样就大功告成了。 - Jack
3个回答

33

== 2017编辑 ==

这篇文章比较旧了,SharePoint在过去几年中发生了很多变化。原文的大部分内容仍然有效,但只有在您进行本地安装时才适用于某些情况,其中SharePoint的未来似乎倾向于SharePoint Online。话虽如此,大多数功能仍然存在,并且有一些改进。

== 原始帖子 ==

SharePoint是一个非常复杂的CMS(内容管理系统),具有许多出色的BSS(业务支持系统)功能。它有很多优点,难以限制要提到的内容。然而,一些明显的东西是您可以在同一个服务器上混合许多“环境”,这些环境被分为站点。

我所说的环境是什么意思呢?

假设您经营物流公司,并且厌烦了为了使业务运行而使用许多不同的系统。许多系统也具有不同的提供商,因此公司周围的生态系统也同样复杂,这时SharePoint就派上用场了,因为它是一个实际上可以托管所有所需环境的系统。例如:

  • 外部网页,由SharePoint或集成的网页托管
  • 订单管理
  • 客户支持和票务
  • 货物处理项目
  • 文档管理的内部网站

每个环境都可以受益于SharePoint内置的工作流程和自定义内容类型等功能。

我认为选择SharePoint的主要原因是其多样性,可以存储不同类型的数据。如果您计划每秒执行一百万次事务,则不应选择该系统,即使性能可以通过在农场中使用多个服务器来大大提高。

作为开发人员,我认为SharePoint基本上是关于列表、库和元数据存储的,因为这是大部分数据保存的地方。这是您需要学习和了解如何结构化数据以及如何实现信息模型的东西。

在我的工作中,最常见的任务是将SharePoint与外部CMS(如EPIServer或Joomla)集成,以建立一个集成系统,使访问者能够直接从Web发送信息到SharePoint。这些任务会延伸到创建一个工作流程,确定客户支持/销售人员或其他人员在收到消息后将执行的操作,一直到完成任务。完成后,我可能会使用mschart构建自定义Web部件中的图表来显示销售数据或支持请求的统计数据。目前,我在使用SharePoint作为Web商店设计数据结构。这就是多才多艺的地方!
如果你对集成技术感兴趣,SharePoint也有非常强大的API可供使用。我自己参与了一个ADO.NET连接器的开发,它可以将SharePoint转换为SQL服务器,使开发人员无需使用CAML。此外还有很多其他很酷的工具。
别忘了使用SharePoint的第二个最大优势:你可以专注于前端开发,因为后端已经准备好了。

1
你似乎对Sharepoint非常兴奋。但说真的,现在我们有了纯Web系统,它不是已经过时了吗? - Pacerier
2
@Pacerier 我们一直都有纯Web系统吗?我不知道你的SP知识,但你忘了它的基本功能远非Web服务器。与Office连接的文档管理是基础,其余功能被视为附加功能。就我所知,很少有其他Web系统具有如此完整的自动化、事件处理、工作流和可搜索性功能。它不是万能的最佳系统,但在许多方面表现良好! - Eric Herlitz
3
好的,声明时间。你是微软的人吗? - Pacerier
@Pacerier 不对,我是来自北欧的普通IT/开发顾问。 - Eric Herlitz
1
@ChrisEmerson 不能说我不同意。 - Eric Herlitz
显示剩余6条评论

11

以下是一段简短的视频,以终端用户/业务角度描述SharePoint。 http://www.youtube.com/watch?v=s12Jb5Z2xaE

从开发者的角度来看,SharePoint是一个基于ASP.NET的平台,提供了视频中所描述的服务(以及更多)。开发者的工作是在“开箱即用”的功能无法解决业务问题时扩展平台。

虽然SharePoint基于ASP.NET,但从开发角度来看,它与ASP.NET开发有很多不同之处。SharePoint使用列表作为其主要存储机制,具有自己的组件模型(特性)、打包和部署模型(解决方案)等。即使对于已经精通ASP.NET开发的人来说,成为一名SharePoint开发者也需要一些时间。


好的,首先可能需要进行大量配置(自己的用户界面?XML?),然后可能需要一些自定义扩展(ASP.NET?C#?HTML?JavaScript?),对吗? - Svish
1
初始配置是管理员的职责。通常可以通过中央管理站点或PowerShell完成。 - Rob Windsor
1
SharePoint开发工具通常支持C#和VB。SharePoint使用WebForms模型。在为SharePoint构建页面时,您将使用服务器控件、标记和JavaScript。 - Rob Windsor

1

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。


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