什么是SharePoint开发者的资质?

6
我有一个专注于ASP.NET的开发团队,所以我们提供的解决方案都是基于Web的,在IIS上运行并使用MS SQL服务器。所有操作都在公司的内部网络中进行。团队拥有这方面的专业知识,并且他们对C#和.Net非常擅长。
公司正在部署SharePoint MOSS 2007。这个部署是我不参与的项目的一部分,我很少了解其中的情况。然而,我知道他们已经建立了“思考者”层(那些会说该做什么的人),集成层(会配置、部署和管理生产环境的人),并且他们需要建立所谓的开发层(那些将做一些其他两层无法完成的事情的人)。
我被要求评估通过添加SharePoint开发来增加我的团队的专业知识的可能性。这很容易,我只需要找到所需的培训并派遣我的人员去学习即可。
然而,现在的开发一词可能意味着许多事情,有时候我发现配置被用来代替开发。我没有任何反对通过开发新的专业知识来使团队进步,但我希望能确保对我的开发人员来说保持挑战性。其次,我不想说我们拥有SharePoint开发专业知识,而实际上我们只是修改CSS或XML文件。此外,我认为使用向导来生成解决方案并不是推动C#开发人员进步的最佳路径。
我首先要问自己的问题是:SharePoint开发人员的背景是什么?如果要求.NET开发人员成为SharePoint开发人员,他们会有何感受?
非常感谢您的任何想法。
7个回答

16

我在一年多前开始从事Sharepoint开发,当时我接手了公司的一个WSS 3.0解决方案。

个人认为,对我来说,了解一下Sharepoint开发是一个很好的步骤,因为有很多问题(如安全性、负载平衡、幽灵)需要看到WSS团队如何解决,这有助于我解决其他解决方案中的问题。但是我并不全职从事WSS解决方案开发,所以其他人需要回答每天使用WSS的情况。

WSS和Sharepoint都是ASP.NET平台的扩展,因此,任何在ASP.NET和.NET上的经验都应该是一个初学者创建Sharepoint解决方案的良好基础。在开始WSS项目之前,我阅读了Inside Microsoft Windows Sharepoint Services 3.0书籍,以了解基本概念和wss解决方案架构。

我很快发现,你必须拥有一个虚拟机环境进行Sharepoint开发,因为在客户端工作并附加到服务器上的远程进程以进入调试模式是很痛苦的。因此,我建议创建一个安装有Visual Studio并具有访问源代码控制系统的MOSS虚拟机。在该计算机上开发解决方案,完成后将其检入源代码控制。

我还建议查看开发工具,例如stsdevwspbuilder,以帮助您构建解决方案,这些工具会大大简化您的开发过程。还有很多可用于网站的工具,如codeplex等,可以帮助您解决问题。

有时候开发这些解决方案可能会很困难,更改可能需要重启IIS池或者进行强制性的IISReset,错误信息有时可能会比较难懂。但是你很快就会掌握技巧并知道该去哪里查找。Sharepoint也能够帮助你很多,我曾经从客户那里收到了无数问题,而这些问题都可以通过标准的 out-of-the box web parts 来解决,这样我就不必编写任何代码来让我的客户满意 :)
此外,Sharepoint还要求以特定方式编写解决方案,例如 12 hive 文件结构,因此它可以帮助你规范化你的解决方案。
文档非常缺乏,所以你必须经常依赖 Reflector 和其他工具来了解框架内部的情况。希望在2010年能够得到改善。
初学阶段的学习曲线很陡峭,需要学习很多新的概念和技术,例如Sharepoint中的工作流、特征、Ghosting和代码访问安全等。Sharepoint使用很多Xml配置,开发人员必须学会使用这些配置,包括站点定义、列表模板等。有时候我会陷入 Xml 编辑模式,一整天都无法弄清为什么事情不按照预期进行。
这些只是我个人的一些想法,我主要从事 WSS 开发,如果有人能够就Sharepoint中的Web Part配置发表评论,例如如何配置搜索,那将会非常棒。虽然我自己并没有做过这方面的工作。

非常有用的信息。现在,我假设如果有几个开发人员同时进行SharePoint应用程序(主要是Web部件)和“传统”的ASP.NET Web开发,对于SharePoint开发,每个开发人员都会在他们的工作站上拥有自己的虚拟服务器 - Windows 2003或2008(我们正在运行XP专业版,很快将升级到Windows 7)。然后加载MOSS和VS 2008(带有任何必要的扩展)。在虚拟服务器上开发和测试,然后部署到独立的生产SharePoint服务器? - Ken Ray
1
@Ken 每个开发者都有自己的虚拟机环境,每次进行任何更改时都会将其检入源代码控制。最终结果应该是一个带有安装文件的功能,其中包含stsadm命令。从那里开始,我们有一个单独的测试虚拟机,在那里执行命令并测试解决方案,最终交付给客户。 - armannvg
你基本上说出了我们这些老手对SP的“了解”,但懒得在一个地方发布的所有内容。干得好。给你点赞。 - Jacobs Data Solutions

6

据我听说,从客户的角度来看,SharePoint 是一项流行的技术,但在开发人员中却备受厌恶。


我参加过SharePoint开发课程,但是这个平台的开发可谓是相当晦涩难懂。但你说得没错,这确实是一个非常优秀的开箱即用工具。 - Robert Harvey

5
很高兴看到您注意到了“不正确地”使用开发人员和管理员。虽然为SharePoint进行开发可能仅仅是开发,例如创建Web部件等,但我强烈建议您和您的团队掌握SharePoint的部署、安装和配置。我完全通过了SharePoint认证(WSS Config/Dev 和 MOSS Config/Dev),同时具备两端知识对我非常有价值。
了解哪里配置了什么将有助于调试和故障排除。我建议您的团队至少进行一次MCTS WSS 3.0配置培训和/或MOSS配置培训。其余团队成员将在实践中掌握基本要点,而那两位获得认证的同事则可以成为有关配置和管理方面的问题解答者。
在我看来,作为SharePoint顾问意味着要知道如何作为开发人员创建一个功能,并能够作为管理员(或至少是知情的最终用户/高级用户)部署、配置和维护该功能。

1
部署绝对是SharePoint最具挑战性的部分。 - Shiraz Bhaiji

2
我的同事正在学习SharePoint。我总是取笑他。他经常会说:“这是什么鬼?!”然后我感到有点难过,因为我知道——我也有可能不得不学习那些东西(我猜现在获取项目并不容易)。
我认为这更像是配置和定制而不是软件开发(比如连续三天寻找复选框)。你通过那些疯狂的SharePoint设计师拿起一些泥巴,然后无休止地进行定制。
对于我已经了解的所有内容,都有一个新的名称(例如-spGridView),并且意想不到的行为在其下面。
渲染的HTML很奇怪(表格和大量序列化视图状态)。
但是那些配置XML... o_0
现在这是我无法克服的障碍。即使是最困难的SQL问题开始看起来也像是儿童游戏。
也许我错了,但据我所知,Microsoft主要是因为SharePoint才开发了“空间列”(让您将表的列数扩展到数千个)。这让我感到恐惧。
当然,我的观点非常主观,并且有点冒犯。但我希望这有助于更好地揭示我对SharePoint的看法和感受。
希望您正在与之合作的开发人员有不同的看法。
简而言之,我不想成为SharePoint开发人员。
编辑:
我可以处理那种初始复杂性。但我不想成为SharePoint开发人员的主要原因是我认为这不是正确的发展方向。我的意思是——最近人们讨论WebForms提供了太多的抽象。那么对于SharePoint来说又该怎么说呢?

听起来你描述的是SharePoint中"配置"和"开发"之间相同(或者说缺乏)差异的情况。在设计师的情况下,他们经常不是最适合的工具,就像自己编写代码解决方案一样;真正的问题是微软很难辨别平台上做很多事情的最佳方式,并且大多数事情可以从两个方面实现。2010版本旨在针对开发人员解决这些问题,但还有待观察采用情况如何。 - Preston Guillot
我只是在使用Asp.Net Mvc内部测量Sharepoint。我更喜欢自己编写分页计算,而不是“定制某些东西”直到符合我的需求。这感觉就像一个大混乱。 太多的复选框和XML。从来不喜欢它们。 - Arnis Lapsa

2

1
作为一名成功的SharePoint开发人员,你必须有很高的痛苦耐受能力和佛陀般的耐心。

0

感谢大家的回答,它们都非常有帮助。

从我在这里看到的内容来看,我认为有两个要考虑的因素。

首先是利用环境的背景,我认为这是一个重要的因素。在某些地方,SharePoint “开发”可以走得很远,并且可能涉及开发非常令人兴奋的东西,以满足新客户的需求。它可能涉及编写代码等活动。在其他一些地方,可能只涉及管理和配置,以维护已建立的解决方案。

其次是个人动机。这真的取决于个人。一些具有良好经验的.NET开发人员将选择不去走“SharePoint之路”的方向,而是喜欢用C#或其他语言编写代码。但是会有其他人选择这条路,并将乐于拥有这样的职业生涯。他们会受到激励,从而提出非常好的解决方案。

例如,从我的个人观点来看,如果我留在开发和编程领域,我不会选择使用高级向导和菜单作为职业生涯的进展道路进行SharePoint开发。即使我现在没有做这个,我仍然喜欢编码、编译、调试等,但这只是我的个人兴趣。


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