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.WebPart
和Microsoft.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:
- SPListEventReceiver,SPItemEventReciever和SPWebEventReceiver从抽象基类SPEventReceiverBaseinheritance。
- SPWorkflowLibraryEventReceiver从SPItemEventReceiverinheritance。
- SPEmailEventReceiver直接从System.Objectinheritance。
问:构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/