让我们列出一些针对SharePoint开发人员的好面试问题.请在每个条目中提供一个问题,如果可能,请提供答案.
此外,如果提供的答案有误,请随时建议更正.
我会先走:
问:SharePoint如何存储页面?
答:如何定位sharepoint-document-library-source-page-on-the-server?
问:使用SPSecurity.RunWithElevatedPrivileges(Web上下文)运行时正在使用哪些凭据?
A.运行SharePoint的Web应用程序的应用程序池标识.
问:修改列表项时,使用SPListItem.Update()和SPListItem.SystemUpdate()之间的"主要"区别是什么?
答:使用SystemUpdate()不会创建新版本,也会保留时间戳.
问:什么时候应该处理SPWeb和SPSite对象?更重要的是,何时不是?
答:如果你自己创造它们,你应该总是处置它们,但不是.您永远不应该处置SPContext.Current.Web/Site,如果IsRootWeb为true,通常不应该部署SPWeb.更复杂的构造是SPList.ParentWeb行中的事情.
如果候选人知道Roger Lambs博客文章,可获得奖励积分.
问:System.Web.UI.WebControls.WebParts.WebPart
和之间有什么区别Microsoft.SharePoint.WebPartPages.WebPart
?
答:Microsoft.SharePoint.WebPartPages.WebPart
在MOSS 2007中提供,以提供与MOSS 2003 webparts的向后兼容性.在MOSS 2007中,建议使用System.Web.UI.WebControls.WebParts.WebPart
.
有时我想问更多开放式问题,以便让潜在客户说话.
如果我想找出技术深度
问:您在SharePoint中发现了哪些错误?那么问:你做了什么来解决它们?
问:如果您有ItemUpdated或ItemUpdating事件接收器并且它会导致项目更新,那么如何防止在更新期间触发另一个ItemUpdated和ItemUpdating事件?
A.在执行更新之前,请调用DisableEventFiring().更新后,调用EnableEventFiring().
问:什么是网站集,为什么要创建新网站集而不是网站?
A.答案很长,但他们应该了解网站收集管理,配额,资产分离,安全模型等.
戴夫沃勒曼(Dave Wollerman)有一篇关于其中一些原因和内容的好文章.
问:性能影响是RunWithElevatedPrivileges
什么?
答:RunWithElevatedPrivileges
使用App Pool的凭据创建一个新线程,阻止当前线程直到完成.
[via rexm ]
问:描述列表和库之间的区别.
答:列表是元数据或列的集合,可以包含附加文档.库是文档集(Excel,InfoPath,Word等)以及可选元数据.
根据ktrauberman的反馈编辑.
问:(i)描述内容类型的目的; (ii)举例说明它们的用途.
答:(i)内容类型将一组列表列组合在一起,以便它们可以跨站点以相同的方式重用.(ii)它们可以用作需要应用于网站集中每个文档的一组元数据列.
问:解释SharePoint如何呈现其内容.答:超出范围,但你可以在这里找到一些好的信息:http://gmac.blogspot.com/2008/04/how-sharepoint-2007-renders-its-content.html
申请人应该至少绕过SharePoint的模板渲染机制,以及12/TEMPLATE/CONTROLTEMPLATES /中的内容以及它的用途,重点是DefaultTemplates.ascx.如果您希望进行任何类型的SharePoint自定义,这绝对是必不可少的知识.
问:在MOSS 2007中至少列出两个可用的共享服务
答:MOSS 2007中的共享服务提供商可以提供以下共享服务:
用户个人资料
观众
个人网站
搜索
Excel服务
表格服务
业务数据目录(需要企业版)
问:MOSS和WSS有什么区别
A. MOSS使用共享服务提供商进行搜索,配置文件导入等...(有关更完整的列表,请参阅Lars Fastrup发布的答案)
问:您将如何以编程方式检索列表项?
答:SPQuery和SPSiteDataQuery.了解CrossListQueryCache,PortalSiteMapProvider的知识点.使用foreach的负点.
好的.这里有一些非常有用的. http://megasolutions.net/qs/Sharepoint_Portal_Interview_Questions.aspx
问:为什么要使用自定义列?
答:它允许您在多个库中重用该列.如果您使用Choice类型将用户输入限制为预定义的答案集,并且该答案列表可能会更改,则特别有用.
问:事件接收器从哪些基类继承?
A:
SPListEventReceiver,SPItemEventReciever和SPWebEventReceiver继承自抽象基类SPEventReceiverBase.
SPWorkflowLibraryEventReceiver继承自SPItemEventReceiver.
SPEmailEventReceiver直接从System.Object继承.
另请参阅以下网站上的SharePoint问题集:http://qmoss.blogspot.com/