代码之家  ›  专栏  ›  技术社区  ›  RoboDev

sharepoint编程有多好/有多差?[闭门]

  •  49
  • RoboDev  · 技术社区  · 16 年前

    我今天得到一份SharePoint开发人员的工作。我的一个朋友告诉我,sharepoint是一个大烂摊子,不是我想做的事情。

    您在使用SharePoint方面有哪些经验/想法?

    19 回复  |  直到 16 年前
        1
  •  84
  •   Kirk Liemohn    16 年前

    我要稍微改变一下这一趋势。我将SharePoint视为一个简单明了的开发平台。它利用了其他技术,如IIS、ASP.NET、SQL Server和Windows工作流,因此我不必重新发明轮子。它让我专注于解决业务问题,而不是担心管道和系统级代码。

    如果您希望与Microsoft技术保持一致,那么您需要意识到SharePoint将继续存在,并将继续变得更好、更普遍。当前版本(v3-WSSv3/MOSS 2007)缺少AJAX、社交网络和其他功能/技术。v4版本即将推出,在这些方面必将有所改进。

    关于我在这篇文章中读到的一些负面信息:

    • 我已经在SharePoint中编写了使用AJAX工具包的web部件,我的同事也有。一位同事非常积极地使用Silverlight web部件。

    • 是的,您确实倾向于在Windows Server 2003/2008上开发。这并不困扰我,我也没有花太多时间在安装和配置上。我确实有时在开发环境中使用虚拟机,我也同意这有时是一件痛苦的事情。

    然而,我能做的是配置一些东西,而不是开发。授权,完成;供应,完成;行级安全,完成;基本UI积垢,完成;部署到多个前端,完成;搜索,完成。现在我有时间专注于解决业务问题。

    如果您打算进行SharePoint开发,您需要从正确的方向开始。我极力推荐 Inside Microsoft Windows SharePoint Server 3.0 了解开发人员在SharePoint中可以/应该做什么。

    值得一提的是,我已经做了20多年的开发人员,用几种不同的语言和技术在Unix和Windows上工作。从测试版开始,我就一直关注SharePoint v3,我对自己选择的方向感到满意。

        2
  •  58
  •   tsimon    16 年前

    我对所有的积极回应感到惊讶。让我问一下,您介意用代码创建标记吗?就像在HtmlWriter.BeginTag(“br”)(或者其他什么,很抱歉不知道htmlwriterapi)。这被认为是创建可再发行web部件的最佳实践。

    Ajax工具包怎么样?哎呀,禁止入内。由于标头中缺少文档类型,因此无法工作。

        3
  •  33
  •   Herb Caudill    16 年前

    几年前,我的小网店曾短暂地接受过SharePoint;我们提供咨询、定制、培训等服务。的确,你从盒子里得到了很多东西,我知道它改进了很多;但总体而言,我们的经历非常消极,我们从未回头。

    1. 我们培训的用户非常讨厌用户界面,不能修复它的错误是非常令人沮丧的。
    2. 不管出于什么原因,他们并没有把它设计成一个花园式的web应用程序,这使得建立一个开发环境成为一个巨大的难题。

    总的来说,SharePoint在许多方面都没有实现其承诺,这让人感到困惑:那些看起来不需要动脑筋的事情需要各种定制开发。

        4
  •  33
  •   Nick    16 年前

    好的===============================================[=]==坏的

    • 安装/管理/更新是一个难题
    • 开发/调试是一件痛苦的事情
    • 文档是一个笑话
        5
  •  30
  •   Sean Amos    14 年前

    Sharepoint是一个巨大的烂摊子。

    1. 它有同样糟糕的CSS去长期与该标记。
    2. 数据完整性是平台的一个巨大问题,因为没有事务。
    3. API出人意料地到处都是bug,在使用API后不到一个小时就会遇到bug,这些bug会让您搜索web并进一步加剧数据完整性问题。
    4. 在平台上进行适当的单元测试非常困难。
    5. 然而,Sharepoint平台“一切都很糟糕”。您可以很容易地找到其他框架或平台,这些框架或平台做得更好,并且更符合您或您客户的要求。
    6. 浏览器兼容性,Sharepoint仅限于IE(归因于其可怕的标记、CSS和javascript)。

    不得不说,平台赚钱,但更多的是作为一个赚钱的计划。Sharepoint中的开发人员技能很少见,拥有这些技能的人薪水很高。客户为Sharepoint定制开发和开发公司付出了巨大的代价,因此,他们会尽最大努力说服客户Sharepoint是最适合一切的产品。

    我认为,Sharepoint不是一个开发平台,而是一个赚钱的平台。

    编辑:我也忘了加11。这是一只资源猪,你以前从未见过。

        6
  •  27
  •   Robert S.    16 年前

    我发现SharePoint(甚至是最新版本)最大的挫折是对文档的关注不够。有太多记录不清的API调用。我能感觉到我的血压从张贴这个答案上升。

        7
  •  22
  •   hichris123 Andreas Sewe    7 年前

    我喜欢柯克自2003年测试版开始就与SharePoint合作,我仍然喜欢它。当然,你总是希望有更好的想法,但我想你几乎可以对任何企业产品这样说。对我来说,在SharePoint平台上构建解决方案的好处远远大于坏处。

    让我作为一名开发人员与您分享我对SharePoint的五大优点和五大缺点:

    SharePoint的五大优点

    1. 这是一个综合平台。使开发和部署全功能、标准化、可扩展和高可用性的Web解决方案(如公司内部网和外部网)的速度大大加快。
    2. 它有巨大的动力。微软不断改进它,每一次发布都会让它变得更好,社区变得越来越强大,在线资源也越来越丰富,越来越多的书籍面世,很多优秀的免费附加组件和优秀的第三方产品不断涌现,还有很多很棒的会议要参加。
    3. 非常模块化的平台,您可以将自己的内容打包到解决方案、功能、Web部件、模板、内容类型等中。
    4. 它利用了标准的Microsoft技术,如.NET、ASP.NET、IIS和SQL Server。所以你不会被一套特定的技能所束缚。
    5. 在当前的就业市场中,你拥有.NET+SharePoint技能比仅仅拥有.NET技能要好得多。这有点像说你有SAP经验或是BI专家。

    1. 陡峭的学习曲线。成为一名优秀的SharePoint开发人员至少需要两年的时间——即使你已经精通C#和.NET。您需要在第一年了解平台中的所有概念,然后再过一年才能真正熟悉它们。
    2. 并非总是可以使用最新最酷的.NET功能。SharePoint总是需要几年时间才能从.NET平台团队中采纳最新和最优秀的内容。想想Linq和AJAX吧。我很想知道SharePoint 2010是否/何时支持.NET 4.0。
        8
  •  17
  •   Chris Tybur    16 年前

    3个月前我对SharePoint一无所知。从那以后,我不得不为我公司的新支持网站创建几个自定义web部件,我必须同意你朋友的意见,这是一个大混乱。

    一开始,我对这个平台在没有任何编码的情况下可以做的事情印象深刻。但是让我的东西正常工作让我很沮丧。我尝试合并我之前编写的一个用户控件,该控件在常规web应用程序中非常有效,但关键部分根本无法在SharePoint中工作,原因我仍然无法理解。我设法找到了一个解决办法,但在这个过程中损失了两个星期。

    同样令人沮丧的是,开发环境必须是一台实际运行SharePoint的机器,而SharePoint必须在Windows 2003/2008下运行。我必须在我现有的系统上建立一个虚拟机,这不是什么大问题,但这是你必须克服的另一个障碍。

        9
  •  15
  •   tajin19    13 年前

    我每天都在查看错误日志,试图找出原因 各种SharePoint组件的功能与MS所说的不一样。 文档被开发行业的许多人视为“最糟糕的”

    许多“社交功能”依赖于众所周知的UPS(用户档案服务) 有缺陷且难以配置;谷歌一下,你就会明白了。关于我的项目 开发人员花了数周的时间和EE博士学位才让UPS开始工作。 所有这些都是为了一个网络服务!由于持续的稳定性问题,该公司最终表示 雇佣了一位SharePoint作者,他宣称“我相信这个平台!”。是的。我 不知道他这么说能挣多少钱。然而,请鼓起勇气,迎接每一个新的挑战 MS累积更新,UPS越来越接近可行,至少在未来一段时间内是如此 完全不起作用。

    您将花费大量时间配置Active Directory、IIS、ForeFront Identity Management Services、SQLServer和Server2008设置。请记住,这些设置中的大多数会相互冲突,因此请准备好花大量时间在SharePoint博客上寻找解决方法。事实上,大多数SharePoint博客都致力于解决方法和黑客攻击,只是为了让SharePoint正常工作,或者至少使其达到基本网站的功能。我认为具有预构建功能的平台的全部目的是减少工作负载,而不是增加工作负载。如果你喜欢编写代码,而不是扮演管理员或博客侦探,这不是适合你的平台。

    正如其他地方提到的,开发需求是疯狂的。SharePoint Server(产品的完整版本)只能/应该在Windows Server上运行。对我来说,这意味着虚拟机。8GB的内存确实是您可以忽略的最小值。我最终购买了CoreI5、16GB和SSD,只是为了构建速度相当快的开发环境。这是网络开发,不是视频编辑。

    如果您和/或您的团队足够幸运,能够在生产环境中保持SharePoint的适度稳定,最终用户将面临5秒的页面加载、几乎任何类型请求的响应时间都很慢,并且可能是最近计算历史上最不直观的UI。SharePoint的主要吸引人之处之一是,您可以通过添加各种类型的web部件或使用SharePoint Designer实际更改页面结构来动态编辑网页。这会让经验丰富的开发人员陷入很多麻烦,所以我认为此功能针对的非技术用户将会死亡。他们将遇到大量的相关Id错误,这些错误为他们提供了非常有用和信息丰富的GUID。

    开发人员和最终用户在遇到这种混乱时都会松懈。 SharePoint唯一的好处就是让我相信必要性 开放源代码。

    请不要攻击我的拼写或语法。我不是英语专业的学生。

        10
  •  12
  •   Mark Sherretta    16 年前

    SharePoint有时会令人沮丧。根据微软的说法,这是一个“成熟的产品”,所以当你做错事的时候,你会得到一些不错的错误,比如“发生了错误”或者“无法完成操作”。CAML需要极大的耐心。关于它的文档不是很好,你可能会在一个愚蠢的语法错误上浪费大量的时间。

    总而言之,这是一个不错的平台,但它可能会让你比同龄人更早地变白头发。

        11
  •  12
  •   Imre Pühvel    15 年前

    我有相当好的.net开发经验,在SP上工作了3个月,目前的经验如下:

    我认为SP适用于数据模型简单的应用,最好是读取量大的应用。一个巨大的优点是用户/管理员仅通过配置即可实现。动态更改数据结构、修改外观等。这是“我的书”这类东西的绝佳平台。。

    坏消息:

    但是有很多事情SP会绊倒(落在你身上)。例如,当需要非平凡逻辑时,尤其是外键关系上的聚合函数时,很难工作。当然还有交易的缺乏。维护数据完整性可能会成为一个问题。当你考虑在一个特定的项目上工作时要小心这一点。

    编译时支持很少,您的大多数任务将包括通过以字符串的形式按名称调用查找的资源。它可以被认为是“灵活的”和“简单的”,但它对我的口味来说太过错误,并且减慢了开发速度。当然,这不仅仅是SP的事情,而且MVC/webforms似乎更容易被推向强类型世界。

    如果您喜欢托管世界,那么请处理绝大多数SP都是非托管代码这一事实,并提供类似“HResult 800072F”这样的异常,几乎没有stacktrace来提示您可能出现的故障。

    部署和bug重现性已经造成了很多令人沮丧的日子。WSS自行处理整个机器,运行应用程序所需的文件分散在数据库、文件系统(通常是GAC)中。要实现项目的基本分离,需要在许多不同的虚拟机上工作。

    工具支持非常差(与2010年相比未尝试)。最好是与命令行和脚本交朋友。调试体验可能会很慢。单元测试很难做。。

    我个人的结论是: SP有自己的定位,但它不是一个.Net程序员可以享受的平台。用户体验可能偶尔会有一些“惊喜”,但开发者体验没有。这可能是一条“陡峭的学习曲线”,但可能就是这样。

        12
  •  10
  •   Reed Copsey    16 年前

    这是一种(好的?)支付账单的方式。。。。

        13
  •  8
  •   Eric    16 年前

    如果你呆在Windows领域,你会越来越多地看到它。这是一个强大的平台,它的未来看起来非常有希望。

    从开发人员的角度来看,他们认为开发基于Windows的应用程序是事后诸葛亮,这有点令人沮丧。最终用户在优先级上获胜,这是肯定的。

    SharePoint工作具有挑战性和回报性,即使没有它的开发方面。您正在影响整个组织,并实际帮助企业更好地运行。发展方面有时会让你感到沮丧,但一切都趋于平衡。

        14
  •  8
  •   Tom Clarkson    16 年前

    您还倾向于获得许多未正确设置的环境—甚至像源代码控制和可复制部署这样的基本内容也常常被忽略。基础架构人员通常不了解SharePoint,因此您会遇到诸如无法将开发环境连接到网络等问题。

    然而,如果有人知道他们在做什么,这些问题中的大多数都很容易解决。一旦您解决了任何项目和环境问题,它就是一个很好的平台。

    官方文档不是特别有用,但是自从我开始使用这个平台以来,可用的非官方文档和工具已经有了很大的改进。

        15
  •  7
  •   Harv    16 年前

    赠品是:

    1. 是的,您必须在服务器产品Windows 2003或Windows 2008上开发
    2. 该产品试图成为每个人的一切,但现实是,该产品太大,需要专业领域

    对于开发人员来说,这无疑是一项尚在成熟的技术。在过去的两年里,开发者社区和微软提供的信息量有了巨大的增长。从模式中可以得到很多指导&SharePoint实践团队,可在以下位置找到: http://www.codeplex.com/spg

    “SharePoint开发”涵盖的范围非常广泛。它可以是通过web浏览器和SharePoint Designer等工具驱动的纯web内容开发。或者写自定义ASP.NET web部件、Windows工作流、自定义ASP.NET web服务和SharePoint中托管的页面等等。

    SharePoint附带了许多现成的web服务,允许与其他系统集成,有些人可能会调用针对该API的编程“SharePoint开发”。

        16
  •  6
  •   Adam McKee    16 年前

    这同时也是你将拥有的最令人沮丧和最有价值的经历。虽然回报(至少部分)是丰厚的薪水(与直接的web开发人员相比),但在stackoverflow和google的帮助下,挫折是无法克服的。

    我从2003年开始从事SharePoint开发,而“我讨厌SharePoint!”的低谷总是被“哥们,这太棒了!”

        17
  •  5
  •   Scott Ferguson    16 年前

    如果您有web开发方面的背景,我想您可能会对Sharepoint为开发人员提供的灵活性不足感到沮丧。如果您以前有过编写更接近HTML的灵活性,那么只局限于从“web部件”的角度进行思考并不是一件很有趣的事情。

    此外,我发现与常规web开发相比,在配置/实现问题上花费了大量时间。

    不过,您确实可以获得“开箱即用”的合理数量的功能。

        18
  •  3
  •   Tudor Olariu    16 年前

    我很高兴地报告,我在SharePoint编程方面有着积极的经验。

    我发现构建自定义母版页(例如,在页眉中使用适当的文档类型来删除糟糕的BackCompat并启用CSS1Compat)或者让我的aspx页面具有代码隐藏或其他功能非常简单和直接。底线是—无论您在纯asp.net 2.0的网站中可以做什么,您都可以在SharePoint上做同样的事情,并从其可扩展性、部署技术、API、权限模型、审核、文档存储系统、InfoPath集成、工作流等方面受益。

        19
  •  3
  •   Jeremy Thake MSFT    15 年前

    我最初是一名ASP.NET开发人员,负责构建Web内容管理系统和文档管理系统。SharePoint是这个领域的一个自然进步,它利用了我在平台上已经掌握的技能。

    去年我做了一个关于这方面的介绍,可能会引起人们的兴趣。

    有关更多信息,请访问: http://sharepointdevwiki.com/x/HYBfAQ