我正在尝试为经验丰富的ASP.Net开发人员整理SharePoint 2007(以及最终,2010年)培训材料,并且已经完成了多年的SharePoint,我真的不记得开始时最糟糕的关键点在哪里 - 更不用说Googlable SharePoint内容的数量比两年前高出一个数量级。
那就是说,哪些SharePoint概念最难掌握,和/或SharePoint的哪些部分对于刚刚潜入的新手SharePoint开发人员来说不够明显?
答案 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)
我最难掌握的事情清单是:
放弃控制。
您无法控制哪些Web部件 在页面上以及它们如何连接。 你应该让它们成为可能 重用
您无法控制哪个列表 网站或其包含的字段
其他新的但似乎更容易理解的事情是:
答案 2 :(得分:7)
这是Per Jakobsen mentions的关键问题。继续......
无论您在何处,都无法进入并编辑.aspx和.master文件。有一些后果,例如unghosting,支持,并且它通常不会像预期的那样工作。很好地理解SharePoint如何组成页面至关重要。
没有(支持且可靠的)直接查询数据库的方法。对于习惯于设计/使用专用和精心设计的数据库的ASP.NET开发人员来说,这是非常令人沮丧的。 CAML查询无法替代优化良好的SQL查询的强大功能。
(更多的是2b):对列表之间的关系数据支持不足。对于企业应用程序来说很奇怪。
有点偏离主题,但HTML标记和CSS在2003年是一场噩梦,在2007年并没有好多少。使用起来很痛苦,也不是很漂亮。您必须不遗余力地制作完全符合Web标准和最佳实践的网站。
总而言之,通常需要“SharePoint方式”来完成。这通常不是直接的ASP.NET开发人员更喜欢的最有效或最优雅的方式。开发人员喜欢优雅,他们不喜欢放弃控制。
对于毫无防备的小绊网,潜伏着产品(Sean mentioned a key one)也存在问题。了解和理解它们的唯一方法是了解SharePoint - 它是大型产品。
在SharePointDevWiki上的Why don't ASP.NET developers use WSS?上查看有关此内容的更多讨论。
答案 3 :(得分:4)
SharePoint中已有的内容因此您无需重新发明轮子。我为此投票。
答案 4 :(得分:3)
Per已经覆盖了大部分关闭点,但是我会添加更多:
SPContext - conecptual代码执行的概念,例如事件接收器中的SPContext.Current或Properties对象。
从上下文开始,了解代码运行的对象以及可以完成的操作也很重要 - 提升(提升权限),模拟(令牌)和执行(Web服务/事件接收者)
错误处理 - 当唯一出现的错误是“发生错误”时,每个人都会尖叫,因此了解SP日志和错误代码至关重要。这对于减少浪费时间追逐激怒的XML错误非常重要。
Visual Studio工具 - WSPBuilder,适用于Sharepoint的VS工具等。通过缩短集成周期,减少部署和调试的痛苦。
答案 5 :(得分:0)
使用SQL Server的报告服务创建报告/仪表板以解决实际问题并在sharepoint站点中显示它。在线发现的示例/教程的数量没有这个问题仍然不足(我猜)。
答案 6 :(得分:0)
与现实世界架构和实现相关的一切。我是开发人员,但如果我想在我的虚拟环境中尽可能接近客户端环境而不等待官方IT支持,我必须弄清楚。尝试创建一个具有Intranet,Internet,Extranet,混合身份验证机制,备用访问映射,主机头配置等的小型服务器场。这是一项完整的专职工作,但如果您想开发一些中型到大型的实施,您将不得不深入研究。