我需要为一个Sharepoint架构师/开发人员职位面试一些人。
虽然我精通.NET,但我很少使用Sharepoint,因此不确定如何测试候选人的Sharepoint技能。您有没有任何建议可以向候选人提出测试问题?
请提供我可以问候选人的问题,并请说明您的问题是否是Sharepoint开发人员的“必须知道”知识。请包括问题的答案。
我需要为一个Sharepoint架构师/开发人员职位面试一些人。
虽然我精通.NET,但我很少使用Sharepoint,因此不确定如何测试候选人的Sharepoint技能。您有没有任何建议可以向候选人提出测试问题?
请提供我可以问候选人的问题,并请说明您的问题是否是Sharepoint开发人员的“必须知道”知识。请包括问题的答案。
询问SharePoint的架构以及它在幕后是如何工作的,这比询问SharePoint提供哪些Web服务要好得多。任何人都可以从VS或可能甚至是JScript调用Web服务,只有少数人了解产品在幕后的工作方式 - 这对于架构师来说更加重要。
它如何与ASP.NET集成,列表如何在数据库中持久化,哪些数据库包含什么类型的信息。文件系统中存储了哪些工件。鬼影/非鬼影(我知道:自定义/未自定义)是如何工作的,会产生什么影响。
由于SharePoint相当复杂,您不应该期望人们完全理解每个领域 - WCM、ECM、安全性...但是,人们应该了解基本构建块 - SharePoint列表、安全范围、组、角色分配、权限、AD集成、身份验证提供程序 - 的工作原理。
这当然是客观的,可能与您的要求无关,但最近进行了Share Point集成并不得不重新编写外包代码:
我会问如何从您的Sharepoint网站中使用列表。
其次,我会请他们解释CAML,并根据测试列表编写一个小查询。
SharePoint架构相当复杂,需要一段时间才能适应。您应该寻找对架构有深入了解的人。
除了ToxicAvenger建议的内容外,我还会确保您的候选人对SharePoint特定概念有很好的理解:
更重要的是它们之间的交互方式。
例如,功能可以部署到站点、站点集、Web应用程序等(即功能范围)。了解这意味着什么,站点范围与站点集范围的功能之间的区别是什么。那么功能接收器呢?它们是什么,可以做什么。
内容类型:如何定义它们。如何将它们与列表一起使用。如何比较内容类型与站点列。
站点模板:在站点模板中定义了什么(列表模板、模块、Web部件等)。如何使用它们等。
我认为一旦理解了架构,学习其他内容(无论是工作流程、安全性、基于表单的身份验证、自定义列表/ Web 部件等)就会变得更容易。如果您知道要查找什么,Intellisense 将为您提供其余部分。无需针对 Web 服务或列表函数询问特定问题,它们已经在各处有文档记录。
像在任何面试场景中一样,您可能希望有不同的问题组。上面提到的一些主题对于筛选出没有或很少有SharePoint经验的人来说是可以的,但一些更高级的问题可以帮助您找到最优秀的人才。
问:当删除产品时,我想取消所有与该产品相关的订单并通知客户取消订单。
答:在我看来,您需要使用与产品列表相关联的事件接收器以及与订单列表相关联的单独事件接收器来处理订单取消通知。
我倾向于尽早采用自定义代码路线,因为它提供了更多的灵活性。
电子邮件通知的替代方法是使用SP设计工作流程,如果他们提到这个作为后续问题,请询问使用设计工作流程在SP 2007中的缺点。对我来说,最大的缺点是它无法部署,并且当您决定切换到自定义解决方案时,设计工作流程将毫无用处。
他们的回答深度将让您感受到他们有多少实际经验。
Q:跟进上一个问题,假设我们还想在产品库存为0的情况下,在10天内取消订单。
A:这个要求基本上会迫使你转向工作流程。
这些问题将确保他们理解工作流程和事件接收器之间的区别,以及何时使用其中之一。
Q:现在我们需要一个事件接收器,在订单的预计发货日期在10天内时,不允许用户更改订单数量,但如果发货日期超过10天,则允许更改。
A:这很棘手,因为事件接收器无法访问列表项的先前状态,你必须通过编程管理项目更新和项目已更新事件之间的状态持久性。
只有经验丰富的开发人员在复杂的SharePoint应用程序开发领域才可能知道这个。