SharePoint面试问题

让我们为SharePoint开发人员列出一些好的面试问题。 请为每个条目提供一个问题,如果可能,请提供答案。

另外,如果提供的答案是错误的,请随时提出更正build议。

我会先走:

问:SharePoint如何存储页面?

– 答: 如何定位 – 共享点 – 文件库 – 源服务器上的页面?

问:使用SPSecurity.RunWithElevatedPrivileges(Web上下文)运行时使用的凭据是什么?

A.运行SharePoint的Web应用程序的App Pool Identity。

问:修改列表项时,使用SPListItem.Update()和SPListItem.SystemUpdate()之间的“主要”区别是什么?

答:使用SystemUpdate()不会创build新版本,并且还会保留时间戳记。

问:什么时候应该处置SPWeb和SPSite对象? 更重要的是,什么时候不?

答:如果你自己创造了它们,你应该总是把它们处理掉,否则就不要。 您不应该处理SPContext.Current.Web / Site,如果IsRootWeb为true,通常不应该处理SPWeb。 更棘手的结构是沿着SPList.ParentWeb行的东西。

如果候选人知道Roger Lambs博客文章,奖金积分。

问: System.Web.UI.WebControls.WebParts.WebPartMicrosoft.SharePoint.WebPartPages.WebPart什么区别?

答:在MOSS 2007中提供了Microsoft.SharePoint.WebPartPages.WebPart ,以提供与MOSS 2003 webparts的向后兼容性。 在MOSS 2007中,build议使用System.Web.UI.WebControls.WebParts.WebPart

有时候我想问更多的开放式问题,让前景谈话。

如果我想找出技术深度

问:您在SharePoint中发现了哪些错误? 那么问:你做了什么来解决他们?

问:如果您有ItemUpdated或ItemUpdating事件接收器,并导致对该项目进行更新,那么如何防止在更新期间触发另一个ItemUpdated和ItemUpdating事件?

A.在执行更新之前,调用DisableEventFiring()。 更新后,调用EnableEventFiring()。

问:什么是网站集,为什么要创build一个新的网站集而不是网站?

A.答案不错,但要了解现场征收pipe理,配额,资产的分离,安全模型等。

戴夫·沃勒曼(Dave Wollerman)有一篇关于某些事情的好文章 。

问: RunWithElevatedPrivileges的性能影响是RunWithElevatedPrivileges

答: RunWithElevatedPrivileges会使用应用程序池的凭据创build一个新的线程,阻止当前的线程,直到完成。

[通过rexm ]

问:描述列表和库之间的区别。

答:列表是元数据或列的集合,可以附加文档。 库是文档(Excel,InfoPath,Word等)以及可选元数据的集合。

根据ktrauberman的反馈编辑。

问:(i)描述内容types的目的; (ii)举例说明可能的使用地点。

答:(i)内容types将一系列列表组合在一起,以便在站点间以相同的方式重用它们。 (ii)可以将它们用作一组元数据列,这些列需要应用于网站集中的每个文档。

问:解释SharePoint如何呈现其内容。 答:超出范围,但您可以在这里find一些很好的信息: http : //gmac.blogspot.com/2008/04/how-sharepoint-2007-renders-its-content.html

申请人至less应该绕过SharePoint的模板渲染机制,以及12 /模板/控制板/内容以及重点在DefaultTemplates.ascx上的内容。 如果您希望进行任何types的SharePoint自定义,这绝对是必不可less的知识。

问:在MOSS 2007中至less命名两个可用的共享服务

答:MOSS 2007中的共享服务提供商可以提供以下共享服务:

  • 用户configuration文件
  • 观众
  • 个人网站
  • search
  • Excel Services
  • 表单服务
  • 业务数据目录(需要企业版)

问:MOSS和WSS有什么区别?

答 :MOSS使用共享服务提供商进行search,configuration文件导入等(请参阅Lars Fastrup发布的答案,获取更完整的列表)

问:如何以编程方式检索列表项?

答:SPQuery和SPSiteDataQuery。 加分的知识的CrossListQueryCache,PortalSiteMapProvider。 使用foreach的负面观点。

问:为什么要使用自定义列?

答:它允许您重复使用多个库中的列。 如果您使用“select”types将用户input限制为预定义的答案集,并且答案列表可能会更改,那么这一点尤其有用。

问:事件接收器inheritance的基类是什么?

A:

  1. SPListEventReceiver,SPItemEventReciever和SPWebEventReceiver从抽象基类SPEventReceiverBaseinheritance。
  2. SPWorkflowLibraryEventReceiver从SPItemEventReceiverinheritance。
  3. SPEmailEventReceiver直接从System.Objectinheritance。

另请参阅http://qmoss.blogspot.com/上的SharePoint问题集;

问:构build备份SharePoint安装的方法是什么?

答:通过中央行政和stsadm命令

问:(更高级)您已经创build并部署了一个Web部件,当您部署到服务器时,您会看到一个页面,指出您的Web部件无法加载,请点击此处转到Web部件维护页面等禁用Web部分。 你应该采取什么步骤来从你的web部分获取堆栈转储而不是该错误页面?

答:转到您的网站的web.config文件,并在SafeControls元素中findCallStack属性,并将该值设置为true。

描述将自定义品牌应用于SharePoint 2007的经验。有哪些缺陷可以避免? 您如何将自定义品牌部署到农场?

何时/为什么您/不应该对12个configuration单元中的文件进行直接更改或添加?

问:你将如何创build一个主/细节页面?

A.创build从主文件夹内容typesinheritance的内容types,以及从项目inheritance的另一种内容types并在列表中使用它们

描述业务数据目录(BDC),并提供至less一个有形的应用程序。

问:在不使用RunWithElevatedPrivileges的情况下提升SharePoint权限的方法是什么?

答:将系统帐户用户令牌从SPContext传递给SPSite构造函数。

开发人员大多数时候可以使用这种方法完成他们所需的工作,而不必不必要地提升networking凭据。

我宁愿问一些开放式的问题,比如告诉我一些你认为是微软在SharePoint中犯的错误? 可能的答案是…对于查找列,您需要提前知道查找字段GUID,并且不能轻松地将查找字段设置为一个function。 MOSS没有站点级事件,例如创build列表的事件。 SharePointdevise器是一个废话,并添加不必要的东西,这增加了页面大小。
缺乏基于用户组的修剪控制,因为只有基于权限的修整可以通过deafult(因为您可以创build一个自定义的安全修剪器来做到这一点)

问:作为SharePoint中的“查阅”列支持的数据types是什么?

答:只有单行文本和计算列支持查找列。

此外,我已经巩固了一些更多的问题: http : //qmoss.blogspot.com/