SharePoint开发中哪些概念最难让ASP.Net开发者理解?

7

我正在为有经验的ASP.Net开发人员准备SharePoint 2007(以及最终的2010)培训材料,而作为多年的SharePoint从业者,我实在不记得一开始最困难的点在哪里了 - 更不用说现在可谷歌到的SharePoint内容比两年前增加了一个数量级。

话虽如此,哪些SharePoint概念最难理解,或者哪些部分足够深奥,以至于新手SharePoint开发人员刚入门时并不明显?

7个回答

8

我认为最难理解的事情有:

  • 代码访问安全性和所有其他安全功能
  • 站点/应用程序页面与自定义/未自定义页面之间的区别
  • 在查询和所有定义中使用CAML
  • 了解SharePoint中已有的内容,以免重复造轮子
  • 放弃控制。

    您无法控制页面上哪些Web部件以及它们如何连接。您只需使它们可以重复使用

    您无法控制网站上的哪些列表或它们所包含的字段

  • 不支持多种语言
  • 如果从SPContext.Current获取,则不要处理SPWeb和SPSite
  • 委托控件

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

  • 解决方案/功能
  • 主控页中的所有占位符

1
在查询和定义中使用CAML,了解SharePoint中已有的内容,并放弃控制,这些都是专业编程中的加分项。 - Alex Angas
1
+1的定制/非定制页面和特性以及解决方案(开发人员必须了解适当的代码部署)。 - Sean P. McDonough
对于已经在SharePoint中的内容,给予大力支持,这样你就不必重新发明轮子。平台非常庞大(尤其是在2010版中),很难知道所有隐藏的小宝石(或者没有隐藏)。 - Francois Verbeeck

7

格雷格,

根据我的经验,在处理正确的对象处理(SPWebSPSite对象,这些对象又引用非托管COM对象的SPRequest包装器)时会遇到常见的问题,这也是许多可伸缩性、性能和其他编码问题的根源。一旦微软意识到这个问题的规模以及开发人员在这个领域的困惑程度,他们就撰写了一篇大型指南文章(http://msdn.microsoft.com/en-us/library/aa973248.aspx)并开发了SPDisposeCheck工具(http://code.msdn.microsoft.com/SPDisposeCheck)。

这是我对于“新手SharePoint开发人员刚开始接触时不明显”的建议:)

仅供参考!


还有一些关于在哪种情况下使用哪些模式仍然存在困惑的细节。https://dev59.com/SXM_5IYBdhLWcg3ww2Kb - Alex Angas

7

缺乏控制

正如Per Jakobsen所提到的,这是一个关键问题。接下来...

  1. 不能随意编辑.aspx和.master文件,否则会导致未定义行为、支持问题,而且通常也不会按预期工作。对于如何组合页面有很好的理解至关重要。

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

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

  4. 略微偏题,但2003年的HTML标记和CSS是一场噩梦,2007年也没好多少。它很难处理,而且也不美观。您必须付出很大的努力才能产生完全符合Web标准和最佳实践的网站。

总之,通常需要按照“SharePoint方式”来完成任务。这通常不是直接ASP.NET开发人员所喜欢的最高效或最优雅的方式。开发人员喜欢优雅,他们不想放弃控制。

此外,整个产品中还有许多陷阱(Sean提到了一个关键问题),对于毫无戒心的开发人员来说就像小绊脚石一样。了解和理解它们的唯一方法是了解SharePoint - 它是一个庞大的产品。

请参见SharePointDevWiki上的“为什么ASP.NET开发人员不使用WSS?”以获取更多讨论。


4
+1,特别是对于“你的意思是我不能触碰数据库?!?!”这一点。SharePoint与如此复杂的相互依赖关系交织在一起,以至于它可能拥有自己的每日肥皂剧电视节目 :-) Translated: +1,especially for the "what do you mean I can't touch the database?!?!" point. SharePoint is so intricately woven with a web of dependencies that it could probably have its own daily soap opera on national television :-) - Sean P. McDonough

4

了解SharePoint中已有的内容,不要重复造轮子。我支持这个想法。


3

Per已经为我涵盖了大部分的要点,但我还想再补充一些:

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

  2. 在理解上下文的基础上,还重要了解代码运行的身份,因此可以完成哪些操作-提升(提升特权),模拟(令牌)和执行(Web服务/事件接收器)。

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

  4. Visual Studio工具 - WSPBuilder,VS Tools for Sharepoint等。通过缩短集成周期来减轻部署和调试的痛苦。


1
+1 对于3(最初找错误可能会很困难)和4(好的工具可以节省很多麻烦)给予肯定。 - Alex Angas

0

与现实世界架构和实现相关的一切。我是一名开发人员,但如果我想在虚拟环境中尽可能接近客户环境而不必等待官方IT支持,我就必须亲自动手。尝试创建一个带有内部网络、互联网、外部网络、混合认证机制、备用访问映射、主机头配置等的小型农场。这是一项专门的工作,但如果您想开发一些中大型实现,那么您将不得不深入其中。


0
使用SQL Server的报告服务为实际问题创建报告/仪表板,并在SharePoint网站上显示。在线找到的示例/教程数量仍然不足(我猜)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接