让我们为 SharePoint 开发人员列出一些很好的面试问题。请为每个条目提供一个问题,如果可能,请提供答案。
此外,如果提供的答案有误,请随时提出更正建议。
我先去:
问:SharePoint 如何存储页面?
让我们为 SharePoint 开发人员列出一些很好的面试问题。请为每个条目提供一个问题,如果可能,请提供答案。
此外,如果提供的答案有误,请随时提出更正建议。
我先去:
问:SharePoint 如何存储页面?
问:使用 SPSecurity.RunWithElevatedPrivileges(Web 上下文)运行时,使用了哪些凭据?
A. 运行 SharePoint 的 Web 应用程序的应用程序池标识。
问:修改列表项时,使用 SPListItem.Update() 和 SPListItem.SystemUpdate() 的“主要”区别是什么?
A. 使用 SystemUpdate() 不会创建新版本,还会保留时间戳。
问:您应该何时处置 SPWeb 和 SPSite 对象?更重要的是,什么时候没有?
答:如果您自己创建它们,则应始终处置它们,否则不应。您永远不应处置 SPContext.Current.Web/Site,如果 IsRootWeb 为真,您通常不应处置 SPWeb。更棘手的构造是沿着 SPList.ParentWeb 线的东西。
如果候选人知道Roger Lambs 博客帖子,则可获得奖励积分。
问:System.Web.UI.WebControls.WebParts.WebPart
和 和有什么不一样Microsoft.SharePoint.WebPartPages.WebPart
?
答:Microsoft.SharePoint.WebPartPages.WebPart
在 MOSS 2007 中提供,以提供与 MOSS 2003 Webpart 的向后兼容性。在 MOSS 2007 中,建议改为使用System.Web.UI.WebControls.WebParts.WebPart
。
有时我喜欢问更多开放式的问题来让潜在客户说话。
如果我想了解技术深度
问:您在 SharePoint 中发现了哪些错误?然后问:你做了什么来解决它们?
问:如果您有一个 ItemUpdated 或 ItemUpdating 事件接收器并且它导致对项目的更新,您如何防止在更新期间触发另一个 ItemUpdated 和 ItemUpdating 事件?
A. 在执行更新之前,调用 DisableEventFiring()。更新后,调用 EnableEventFiring()。
Q. What is a site collection, why would you create a new site collection as opposed to a site?
A. Bit of a long answer, but they should know about site collection administration, quotas, seperation of assets, security model etc.
Dave Wollerman has a good article on some of the whys and wherefores.
问:对性能有什么影响RunWithElevatedPrivileges
?
A:RunWithElevatedPrivileges
使用 App Pool 的凭据创建一个新线程,阻塞当前线程直到它完成。
[通过雷克斯]
Q. MOSS 和 WSS 有什么区别
A. MOSS 使用 Shared Service Provider 进行搜索、配置文件导入等...(有关更完整的列表,请参阅Lars Fastrup 发布的答案)
问:(i) 描述内容类型的目的,以及;(ii) 举例说明它们可能在哪里使用。
答:(i) 内容类型将一组列表列组合在一起,以便它们可以以相同的方式跨站点重复使用。(ii) 它们可以用作一组元数据列,需要应用于网站集中的每个文档。
问:描述列表和库之间的区别。
答:列表是元数据或列的集合,可以附加文档。库是文档(Excel、InfoPath、Word 等)以及可选元数据的集合。
根据 ktrauberman 的反馈进行编辑。
问:解释 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 中的共享服务提供商可以提供以下共享服务:
问:您将如何以编程方式检索列表项?
答:SPQuery 和 SPSiteDataQuery。CrossListQueryCache、PortalSiteMapProvider 知识加分。使用 foreach 的负面影响。
问:事件接收器从哪些基类继承?
A:
另请参阅以下 SharePoint 问题集:http: //qmoss.blogspot.com/
问:为什么要使用自定义列?
A:它允许您在多个库中重复使用该列。如果您使用 Choice 类型将用户输入限制为一组预定义的答案,并且该答案列表可能会发生变化,则特别有用。
问:备份 SharePoint 安装的内置方法有哪些?
答:通过中央管理部门和 stsadm 命令
问:(更高级)您已经创建并部署了一个 Web 部件,当您部署到服务器时,您会看到一个页面说您的 Web 部件无法加载,请单击此处转到 Web 部件维护页面等禁用 Web 部件。您应该采取哪些步骤从 Web 部件而不是错误页面获取堆栈转储?
答:转到您网站的 web.config 文件并在 SafeControls 元素中找到 CallStack 属性并将值设置为 true。
描述您将自定义品牌应用于 SharePoint 2007 的经验。有哪些需要避免的陷阱?您如何将自定义品牌部署到农场?
何时/为什么应该/不应该直接更改或添加 12 配置单元中的文件?
问:您将如何创建主/详细页面?
A. 为 master 创建一个从 Folder Content Type 继承的 Content 类型,以及另一个从 Item 继承的 Content 类型并在 List 上使用它们
描述业务数据目录 (BDC),并为其提供至少一个有形应用程序。
我宁愿问一些开放式的问题,比如告诉我一些你认为微软在 SharePoint 中犯的错误?可能的答案是... 对于查找列,您需要提前知道查找字段 GUID,并且您不能轻松地将查找字段设置为功能。MOSS 没有站点级别的事件,例如用于创建列表的事件。SharePoint 设计器是个废话,添加不需要的东西会增加页面大小。
缺乏基于用户组的修剪控制,因为默认情况下只有基于权限的修剪可用(因为您可以创建执行此操作的自定义安全修剪器)
Q: What is a way of elevating SharePoint privileges without using RunWithElevatedPrivileges?
A: Pass the System Account User Token from the SPContext to the SPSite constructor.
A majority of times a developer can accomplish what they need using this method without needlessly elevating network credentials.