共享点编程有多好/坏?

Sup*_*ell 51 .net c# sharepoint

我今天获得了一份作为SharePoint开发人员职位的工作机会.我的一个朋友告诉我,sharepoint是一个大混乱,而不是我想要做的事情.

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

Kir*_*ohn 82

我打算在这里逆势而上.我将SharePoint视为一个开发平台 - 简单明了.它利用其他技术,如IIS,ASP.NET,SQL Server和Windows Workflow,因此我不必重新发明轮子.它让我专注于解决业务问题,而不是担心管道和系统级代码.

不要误会我的意思,SharePoint确实带来了包袱,但如果你想解决现实世界的商业问题而不仅仅是吊索代码,那么它可以提供很多东西.我对WSSv3平台的丰富程度感到惊讶 - 这是免费的.

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

关于我在这个帖子中读到的一些否定:

  • 我已经在SharePoint中编写了使用AJAX工具包的Web部件,因此我的同事也是如此.一位同事对Silverlight Web部件非常活跃.

  • 是的,您确实倾向于在Windows Server 2003/2008上进行开发.这并没有打扰我,我也没有花太多时间在安装和配置上.我有时会将虚拟机用于开发环境并同意有时候会很痛苦.

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

如果要进行SharePoint开发,则需要立即开始.我强烈建议使用Inside Microsoft Windows SharePoint Server 3.0来了解开发人员在SharePoint中可以/应该做的事情.

对于它的价值,我已经成为一名开发人员,在使用几种不同语言和技术的Unix和Windows上工作了20多年.我一直专注于SharePoint v3,因为它是beta版本,并且对我选择的方向感到满意.

  • 同意.这就像木工一样 - 如果你使用谷物,这是非常好的,工作,它是坏的.无论哪种方式都有一些要避免的结. (18认同)
  • 实际上,没有.SharePoint是一种产品,而不是一种开发平台.这是许多人犯的重大错误.虽然根据SharePoint API进行开发并非不可能,但最终会使用Google和博客,因为有一百万个小问题要么没有记录,要么没有记录.如果您想要开发平台,ASP.NET MVC就是一个很好的例子. (4认同)
  • 好吧柯克 - 我和你在一起. (3认同)
  • 好帖子!我只添加一件事.不要指望马上进入SP开发而不会头疼.如果你没有触及它,那么有一个重要的学习曲线.对于任何人来说,它都是一个太大的平台.一旦你超越了学习曲线,那就是你可以按照Kirk提到的方式使用SP,并真正开始看到平台的强大功能. (3认同)
  • 我完全同意.并且,加上我的2美分; 最初,仅仅以"SharePoint"方式将代码置于其上面是非常令人沮丧的.一旦你掌握了一切,你会惊讶于你的生产力.我是当前客户的单一开发人员(约200名员工;)安装并配置了3个服务器场,并在几个月内开发了多个工作流和业务应用程序. (3认同)

tsi*_*mon 57

我对所有积极的回应感到惊讶.我想问一下,你介意在代码中创建标记吗?如在HtmlWriter.BeginTag("br")中(或者其他什么,抱歉不知道HtmlWriter api).这被认为是创建可再发行的Web部件的最佳实践.

Ajax Toolkit怎么样?哎呀,禁区.由于标题中缺少doc-type而无法工作.

你的笔记本电脑正在运行Windows Server 2003,对吗?因为Sharepoint当然不会运行任何其他东西.

我理解人们在捍卫他们的平台,但是作为一个不得不在Sharepoint中做一些工作的人,但是不再有......让我说为Sharepoint开发是我生命中最糟糕的开发经验.现在,我对自己迄今为止的选择一直非常谨慎,所以这不是最糟糕的经历,但它在那里.或者,换句话说,我更喜欢使用PHP而不是Sharepoint.

  • 带有sharepoint的两个最常用的短语......"功能强大,开箱即用"和"带有解决方法":p (25认同)
  • 如果使用正确的配置和开发实践,您是否意识到您提到的限制实际上没有任何限制?我在带有大量ajax的mac上进行sharepoint开发,而对于webparts则主要使用xsl. (9认同)
  • 这个人显然没有长时间使用该产品.它当然有它的痛点,并且是一个学习曲线,但是封装下的功率需要很长时间才能在纯ASP.NET中实现.SharePoint有其特定用途.它是一个商业协作平台,这是它的主要优势.当然,他们正在转向更多的业务自动化和CMS,但这方面还不完全成熟.我喜欢成为一名SharePoint开发人员,并且从我第一次使用它时就已经认识到了它的强大之处,并且尽量不去其他地方. (5认同)
  • SharePoint在Win2008上运行,但无关紧要,只需在虚拟机中运行即可.只要它存在,我就一直在SharePoint上进行开发.最重要的是,许多纯粹的ASP.NET风格的开发人员不喜欢它,因为你不能跳进去做任何你喜欢的事情.许多人开始考虑"它只是另一个OM",然后当他们努力构建有效的东西时会感到失望.你必须深入了解这个产品,所以你要用它来工作*而不是*对它*.这种体验并不像纯ASP.NET那样成熟,但您可以非常快速地构建出色的解决方案! (4认同)
  • 为Tom添加+1 - 我在运行客户端操作系统的笔记本电脑上运行了几个运行Ajax的SharePoint站点.如何通过代码输出HTML与编写服务器控件有什么不同?是的,这是一个陡峭的学习曲线,经验丰富的开发人员很容易因为必须立刻学到这么多而感到沮丧. (2认同)

Her*_*ill 33

几年前,我的小型网上商店简要地接受了SharePoint; 我们做过咨询,定制,培训等等.确实,你从包装盒中获得了很多,而且我知道它的改进很多; 但整体经验非常消极,我们从未回头.

  1. 我们在其上训练的用户绝对讨厌用户界面,并且如果不能修复那些错误的东西是非常令人沮丧的.
  2. 自定义Sharepoint的视觉呈现不适合胆小的人.在微软编写CSS的人无能为力.我还是做噩梦.
  3. 无论出于何种原因,他们不仅将其设计为花园式的Web应用程序,这使得开发环境成为一个巨大的痛苦.

一般来说,SharePoint在许多方面都达不到它的承诺,这些方式只是神秘化:看起来毫无疑问的事情需要各种自定义开发.

我们已经回归为客户推出自己的解决方案; 他们对这种安排感到高兴,我们也是如此.

  • 我知道这看起来很幼稚,但我赞成你的答案只是为了让你的名声从那个漂亮的"4,000"价值中贬低:P (2认同)

Nic*_*ick 31

好============================= [=] ===糟糕

  • 设置/管理/更新是一种痛苦
  • 开发/调试很痛苦
  • 文档是一个笑话


Sea*_*mos 29

Sharepoint是一个巨大的混乱.

  1. 生成的标记是我见过的最糟糕的标记.
  2. 它具有同样糟糕的CSS,可以长期使用该标记.
  3. 上帝怜悯必须重新设计或扩展sharepoint应用程序的客户端功能的灵魂.
  4. 整个平台在良好的建筑设计面前飞翔.
  5. 数据完整性是平台的一个巨大问题,因为没有交易.
  6. 该API令人惊讶地出现了错误,并且在使用API​​之后不会花费一个小时来遇到会让您在网上搜索并进一步加剧数据完整性问题的错误.
  7. 在平台上进行适当的单元测试非常困难.
  8. 平台很大,并且充满了"一切",但是Sharepoint所做的一切都很糟糕.您可以轻松找到其他框架或平台,这些框架或平台可以更好地完成工作,并且可以更加适合您或您客户的要求.
  9. 学习曲线很陡,如果平台(特别是API)的文档有任何好处,那就没问题了.
  10. 浏览器兼容性,Sharepoint仅限IE(归功于其可怕的标记,CSS和javascript).

不得不说,平台赚钱,但更多的是赚钱计划.Sharepoint的开发人员技能很少,拥有这些技能的人员薪水很高.客户通过他们的牙齿为Sharepoint定制开发和开发公司付出代价,因此尽最大努力说服客户,Sharepoint是最适合一切的.

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

编辑:我也忘了添加11.它是一种资源猪,就像你以前从未见过的一样.


Rob*_* S. 26

我发现SharePoint最大的挫败感,即使是最新版本,也是缺乏对文档的关注.有很多记录不完整的API调用.发布这个答案,我能感觉到我的血压上升了.


Lar*_*rup 22

我喜欢Kirk自2003年测试版以来一直使用SharePoint,我仍然喜欢它.你当然总是希望能够更好地考虑一些事情 - 但我猜你几乎可以说任何企业产品.对我来说,积极性远远超过了在SharePoint平台上构建解决方案时的负面影响.

让我作为开发人员与您分享我的前五大好事和前五大关于SharePoint的坏事:

关于SharePoint的五大好事

  1. 这是一个综合平台.使开发和部署全功能,标准化,可扩展和高可用性的Web解决方案(如企业Intranet和Extranet)变得更快.
  2. 它有巨大的动力.微软不断改进它,每次发布都会变得更好,社区越来越好,网络资源越来越好,越来越多,越来越多的书籍出现,许多优秀的免费附加组件和良好的第三方产品全部涌现出来时间,还有很多很棒的会议要去.
  3. 非常模块化的平台,您可以将自己的东西打包成解决方案,功能,Web部件,模板,内容类型等.
  4. 它利用标准的Microsoft技术,如.NET,ASP.NET,IIS和SQL Server.所以你不会被一个特定的技能组合困扰.
  5. 在当前的就业市场中,使用.NET + SharePoint技能比使用.NET技能更好.这就像是说你有SAP经验或者是BI专家.

关于SharePoint的五大坏事

  1. 陡峭的学习曲线.成为优秀的SharePoint开发人员至少需要两年时间 - 即使您已经擅长C#和.NET.您需要第一年才能理解平台中的所有概念,然后再过一年才能真正熟悉它们.
  2. 开发工具不足.Visual Studio几乎不了解SharePoint - 但我听说这将改变VS 2010的大时间:-)
  3. 并不总是可以使用最新和最酷的.NET功能.SharePoint平台团队采用最新最好的东西需要几年的时间.想想Linq和AJAX.我很想知道SharePoint 2010是否/何时支持.NET 4.0.
  4. 通常需要找到解决方案来解决平台中的古怪问题/不一致问题.
  5. 更改API.好吧,至少这是从SPS 2003到MOSS 2007的痛苦.我希望过渡到SharePoint 2010将更顺畅.

  • 好吧,特别是你的五大坏事.我与SharePoint有着爱/恨的关系.这就像一个吸烟热的红头发女朋友. (2认同)
  • 2. MS 继续编写它并由用户进行 beta 测试。 (2认同)

Chr*_*bur 17

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

起初,我对这个平台没有任何编码可以做多少感到印象深刻.但让我的东西正常工作令人沮丧.我试图合并我之前编写的用户控件,该控件在常规Web应用程序中运行良好,但关键部分根本不适用于SharePoint,原因还在于我.我设法找到了解决方法,但在此过程中损失了两周.

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

总之,对于你想要做的事情来说,这似乎太令人困惑了.我同意这样的观点,即安装,配置和部署与实际开发相比花费了大量时间.也许2010版本会更好.它肯定不是我期待与之合作的产品.


小智 15

我将进入一个即将结束的SharePoint项目3个月.

我花了几天时间浏览错误日志,试图弄清楚为什么各种SharePoint组件不像MS那样应该运行.许多发展行业都将文档视为"......我见过的最糟糕的".祝你在MS相关网站上找到有用的东西.

许多"社交功能"依赖于UPS(用户配置服务),这是众所周知的错误和难以配置; 谷歌,你会看到.在我的项目中,需要多个开发人员周,并且在EE中获得博士学位才​​能让UPS工作.这一切都是为了一个网络服务!由于持续的稳定性问题,该公司最终聘请了一位宣称"我相信这个平台!"的SharePoint作者.是,对.我想知道他有多少报酬.无论如何,随着每次新的MS累积更新,UPS越来越接近可行,至少对于开发环境而言.从完全不起作用的初始版本开始,它已经走了很长一段路.

您将花费大量时间配置Active Directory,IIS,ForeFront身份管理服务,SQLServer和Server2008设置.请记住,大多数这些设置都会相互冲突,因此请准备好花大量时间在SharePoint博客上寻找解决方法.实际上,大多数SharePoint博客都致力于解决方法和攻击,只是为了让SharePoint工作或至少使其具备基本网站的功能.我认为具有预构建功能的平台的重点是减少您的工作量,而不是增加它.如果你喜欢打码而不玩管理员或博客侦探,这不适合你的平台.

如前所述,开发要求是疯狂的.SharePoint Server(产品的完整版)可以/应该只在Windows服务器上运行.对我来说,这意味着虚拟机.8GB内存是你可以逃脱的最低限度.我最终购买了核心i5,16GB和SSD,只是为了构建相当快速的开发环境.这是Web开发,而不是视频编辑.

如果您和/或您的团队有幸在生产环境中使SharePoint温和稳定,最终用户将被视为5秒页面加载,几乎任何类型的请求的响应时间都很慢,并且最近可能是最不直观的UI计算历史.SharePoint的主要吸引力之一是您可以通过添加各种类型的Web部件或使用SharePoint Designer实际更改页面结构来动态编辑网页.这可以让经验丰富的开发人员陷入很多麻烦,所以非技术用户,我相信这个功能的目标,将会死亡.他们将遇到一系列关联ID错误,这些错误为他们提供了非常有用且信息丰富的GUID.

当涉及到这个混乱时,开发人员和最终用户都会松动.SharePoint唯一有用的是让我相信开源的必要性.

PS - 请不要攻击我的拼写或语法.我不是英语专业.


Mar*_*tta 12

SharePoint有时令人沮丧.根据微软的说法,这是一个"成熟的产品",所以当你做错了什么时,你会得到很好的错误,例如"发生错误"或"无法完成操作".CAML需要极大的耐心.它上面的文档不是很好,你可以浪费大量的时间来处理一个愚蠢的语法错误.

总而言之,它是一个不错的平台,但它可能会让你比同龄人更快地染发.


Imr*_*vel 12

我有很好的.net开发经验和3个月的SP,我的经验到目前为止:

好处:

我认为SP适用于具有简单数据模型的应用程序,最好是阅读量大.一个巨大的优点是用户/管理员只能通过配置实现.动态更改数据结构,修改外观和感觉等."我的书籍"的一个很棒的平台......

坏事:

但是很多东西都是SP绊倒和摔倒(在你身上).例如,当需要非平凡的逻辑时,它很难工作,特别是在外键关系上的聚合函数.当然缺乏交易.维护数据完整性可能会成为一个问题.当您考虑从事特定项目时,请注意这一点.

编译时支持很少,你的大多数任务都会包括通过名字作为字符串调用来查找资源.它可以被认为是"灵活的"和"简单的",但它只是错误修剪我的口味和减缓发展.当然,这不仅仅是SP的事情,而且MVC/webforms似乎更容易向强类型世界推送.

如果你喜欢托管世界那么处理绝大多数SP是非托管代码的事实,给你像"HResult 8000072F"这样的例外,旁边没有堆栈跟踪来暗示你可能失败的东西.

部署和错误再现性已经引起了许多令人沮丧的日子.WSS为自己运行整个机器,运行应用程序所需的文件分散在数据库,文件系统(通常是GAC)周围.要实现项目的基本分离,期望在许多不同的VM上工作.

工具支持很差(没试过VS 2010).更期望与命令行和脚本交朋友.预计调试体验会很慢.单元测试很难做到..

我的个人结论: SP有它的利基,但它不是一个.Net程序员可以享受的平台.用户体验可能偶尔会出现"WOW",但开发者体验却没有.这可能是"陡峭的学习曲线"说话,但也许就是它的方式.


Ree*_*sey 10

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

  • 虽然这个答案很简单,但在某些方面它实际上是准确的.这么多招聘公司似乎只是在寻找Sharepoint经验的简历. (2认同)

Eri*_*ric 8

SharePoint是v2产品...... v3将于2010年推出,它是MS历史上发展最快的产品(据称).v2缺乏成熟,它确实为我们这些开发者留下了一些东西,但是有很多工具可以让它更容易开发(stsdev,是一个).

如果你留在Windows领域,你将会看到越来越多的东西.它是一个强大的平台,它的未来看起来很有前途.

从开发人员的角度来看,有点令人沮丧的是,他们已经考虑过将其作为一种事后的想法进行开发,就像大多数基于Windows的应用程序一样.最终用户优先获胜,这是肯定的.

即使没有开发方面的内容,SharePoint工作也具有挑战性和回报.您正在影响整个组织,实际上帮助企业更好地运营.开发方面会不时地让你感到沮丧,但这一切都会趋于平稳.

  • 它已经是v3产品了; 2001年,2003年,2007年. (2认同)

Tom*_*son 8

它根据项目的运行方式而有很大差异 - 如果您在SharePoint的设计中工作,您可以轻松地完成很多工作.如果您的要求与此相反,并且客户不愿意妥协,那么可能会非常令人沮丧.

您还倾向于获得许多未正确设置的环境 - 即使是源代码控制和可重复部署等基本操作也常常被忽略.基础架构人员通常不了解SharePoint,因此您会遇到无法将开发环境连接到网络的问题.

但是,如果有人知道他们在做什么,大多数问题都很容易解决.一旦您通过任何项目和环境问题,它就是一个非常好的平台.

官方文档并不是特别有用,但自从我开始使用该平台以来,可用的非官方文档和工具已经大量增加.


Har*_*arv 7

从其他答案中可以清楚地看出,SharePoint开发人员对此感到非常沮丧.

给予的是:

  1. 是的,您必须在服务器产品Windows 2003或Windows 2008上进行开发
  2. 许多开发信息来自不同质量的博客
  3. 该产品试图成为每个人的一切,但现实是产品是如此之大,需要专业领域

对于开发人员来说,这绝对是一项技术.在过去的两年中,开发人员社区和Microsoft提供的信息量大幅增长.SharePoint的模式和实践团队提供了大量指导,可在此处找到:http://www.codeplex.com/spg

至于其他一些评论 - 它是以销售许可证衡量的增长最快的微软产品,不一定是在安装上!是的,WSS 3.0免费提供的功能非常棒.

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

SharePoint附带的许多开箱即用的Web服务允许与其他系统集成,有些人可能会针对该API"SharePoint开发"调用编程.

我认为SharePoint的经验法则是,从表面上看,它似乎是一个包罗万象的产品,试图成为任何人的一切.有时您不必在很远的地方划清界限,以便意识到平台无法在没有重大定制的情况下解决您的特定业务需求.有时,最后10%的所需功能会花费您90%的努力!


Ada*_*Kee 6

这同时也是您所拥有的最令人沮丧和最有价值的体验.虽然奖励(至少部分地)以高薪(与直接网络开发相比)的形式出现,但令人沮丧的是堆栈溢出和谷歌在你身边无法克服.

自2003年以来,我一直在进行SharePoint开发,以及"我正在疯狂地肆虐!"的山谷.总是被"DUDE,那真是太棒了!"的时刻所抵消!

如果您获得了SharePoint的入门级职位,我会接受它的心跳.您将获得有关最热门技术之一的在职培训.

  • 当你遇到Sharepoint时,你曾经遇到过"那令人敬畏的怪癖"时刻吗?我已经在MOSS 2007中深深地肘了两年了,我越是使用它,我就越讨厌它. (12认同)
  • 在使用Sharepoint进行开发时,我不认为我曾经有过"那令人敬畏的好时刻". (7认同)
  • -5(如果可能)Sharepoint"最热门的技术之一"?你曾经使用它,或者你是那些在你的简历中写下你读到的东西而却不知道它们是什么的人之一? (2认同)

Sco*_*son 5

如果您有Web开发的背景,我认为您可能会对Sharepoint为开发人员提供的缺乏灵活性感到沮丧.如果您之前已经具有更接近HTML的灵活性,那么仅限于思考"Web部件"并不是很有趣.

此外,我发现相对于常规Web开发,大量时间花在配置/实现问题上.

但是,您确实可以获得"开箱即用"的合理数量的功能.

  • @都铎王朝-然而这并不容易 (2认同)