哪些SharePoint开发概念对ASP.Net开发人员来说最难理解?

时间:2009-09-15 01:12:40

标签: asp.net sharepoint sharepoint-2007 sharepoint-2010

我正在尝试为经验丰富的ASP.Net开发人员整理SharePoint 2007(以及最终,2010年)培训材料,并且已经完成了多年的SharePoint,我真的不记得开始时最糟糕的关键点在哪里 - 更不用说Googlable SharePoint内容的数量比两年前高出一个数量级。

那就是说,哪些SharePoint概念最难掌握,和/或SharePoint的哪些部分对于刚刚潜入的新手SharePoint开发人员来说不够明显?

7 个答案:

答案 0 :(得分:8)

格雷格,

根据我的经验,发布与正确的对象处理相关的内容( SPWeb SPSite 对象,而这些对象反过来引用非强制COM的 SPRequest 包装器对象)是常见问题,是许多可伸缩性,性能和其他编码问题的根源。一旦Microsoft意识到问题的规模和开发人员在这方面的混淆程度,他们就写了一篇大型指导文章(http://msdn.microsoft.com/en-us/library/aa973248.aspx)并开发了SPDisposeCheck工具(http://code.msdn.microsoft.com/SPDisposeCheck)。

这是我投票支持“对于刚刚潜入的新手SharePoint开发人员不明显”: - )

为了它的价值!

答案 1 :(得分:8)

我最难掌握的事情清单是:

  • 代码访问安全性和所有 其他安全功能
  • 网站/应用程序之间的差异 页面和自定义/未自定义 页
  • 查询中的CAML和所有 定义
  • 您已经在SharePoint中使用了什么 不要重新发明轮子
  • 放弃控制。

    您无法控制哪些Web部件 在页面上以及它们如何连接。 你应该让它们成为可能 重用

    您无法控制哪个列表 网站或其包含的字段

  • 缺乏对多重支持 语言
  • 如果您要处理SPWeb和SPSite 从SPContext.Current
  • 获取它们
  • 委托控制

其他新的但似乎更容易理解的事情是:

  • 解决方案/特征
  • 主页中的所有占位符

答案 2 :(得分:7)

*缺乏控制*

这是Per Jakobsen mentions的关键问题。继续......

  1. 无论您在何处,都无法进入并编辑.aspx和.master文件。有一些后果,例如unghosting,支持,并且它通常不会像预期的那样工作。很好地理解SharePoint如何组成页面至关重要。

  2. 没有(支持且可靠的)直接查询数据库的方法。对于习惯于设计/使用专用和精心设计的数据库的ASP.NET开发人员来说,这是非常令人沮丧的。 CAML查询无法替代优化良好的SQL查询的强大功能。

  3. (更多的是2b):对列表之间的关系数据支持不足。对于企业应用程序来说很奇怪。

  4. 有点偏离主题,但HTML标记和CSS在2003年是一场噩梦,在2007年并没有好多少。使用起来很痛苦,也不是很漂亮。您必须不遗余力地制作完全符合Web标准和最佳实践的网站。

  5. 总而言之,通常需要“SharePoint方式”来完成。这通常不是直接的ASP.NET开发人员更喜欢的最有效或最优雅的方式。开发人员喜欢优雅,他们不喜欢放弃控制。

    对于毫无防备的小绊网,潜伏着产品(Sean mentioned a key one)也存在问题。了解和理解它们的唯一方法是了解SharePoint - 它是大型产品。

    在SharePointDevWiki上的Why don't ASP.NET developers use WSS?上查看有关此内容的更多讨论。

答案 3 :(得分:4)

SharePoint中已有的内容因此您无需重新发明轮子。我为此投票。

答案 4 :(得分:3)

Per已经覆盖了大部分关闭点,但是我会添加更多:

  1. SPContext - conecptual代码执行的概念,例如事件接收器中的SPContext.Current或Properties对象。

  2. 从上下文开始,了解代码运行的对象以及可以完成的操作也很重要 - 提升(提升权限),模拟(令牌)和执行(Web服务/事件接收者)

  3. 错误处理 - 当唯一出现的错误是“发生错误”时,每个人都会尖叫,因此了解SP日志和错误代码至关重要。这对于减少浪费时间追逐激怒的XML错误非常重要。

  4. Visual Studio工具 - WSPBuilder,适用于Sharepoint的VS工具等。通过缩短集成周期,减少部署和调试的痛苦。

答案 5 :(得分:0)

使用SQL Server的报告服务创建报告/仪表板以解决实际问题并在sharepoint站点中显示它。在线发现的示例/教程的数量没有这个问题仍然不足(我猜)。

答案 6 :(得分:0)

与现实世界架构和实现相关的一切。我是开发人员,但如果我想在我的虚拟环境中尽可能接近客户端环境而不等待官方IT支持,我必须弄清楚。尝试创建一个具有Intranet,Internet,Extranet,混合身份验证机制,备用访问映射,主机头配置等的小型服务器场。这是一项完整的专职工作,但如果您想开发一些中型到大型的实施,您将不得不深入研究。