转:http://www.cnblogs.com/iamlilinfeng/p/3026332.html
一、前言
听说SharePoint也有一段时间了,可一直处在门外。最近被调到SharePoint实施项目小组,就随着工作一起学习了一下实施与开发。但苦于网上SharePoint入门的东西实在太少,导致自学入门很难,不知道SharePoint这东西到底能做什么。因此有了此篇文章。该文章只是基于本人对SharePoint的理解,希望能够帮助那些还在门外的同学。由于能力有限,有说的不明白的地方还请园子内的专家们批评指正。
这里提供两个官方学习的网址供大家参考:
SharePoint产品:http://technet.microsoft.com/zh-cn/library/ee428287.aspx
SharePoint开发:http://msdn.microsoft.com/zh-cn/sharepoint/default.aspx
二、目录
1.什么是SharePoint
2.SharePoint功能
1.什么是SharePoint
百度词条(http://baike.baidu.com/view/260261.htm)的定义:SharePoint Portal Server 2003 使得企业能够开发出智能的门户站点,这个站点能够无缝连接到用户、团队和知识。因此人们能够更好地利用业务流程中的相关信息,更有效地开展工作。
这个概念很抽像,下面我从英文翻译和使用的角度来下帮助自己和大家理解下什么是SharePoint。
(1) 站在英文翻译角度理解:Share:分享,Point:点
一个企业员工可分享信息、查询他人信息、审批提交的信息的共享性质的软件。举例说明下:员工A发布了信息表一,B可以通过搜索功能查询到A发布的信息,搜索条件可以是员工A也可以是表一,假设企业有上万员工的话,信息分享的功能就有很大用处了。
也许老外最初的想法是这样的,但随着软件产品的发展功能越来越强大,“共享”这个概念可能就相对就变弱了。
SharePoint核心定位:增强企业员工间的协作关系,一个企业级协作的平台。
(2) 站在软件的角度理解:SharePoint可以理解为内容管理系统
下面我们来做个比较:
I、 使用asp.net创建博客网站步骤如下(此处使用容易理解的DB驱动,步骤可以并行):
1,创建数据表多张,如:用户表、文章表、类别表、回复表等
2,根据数据库表创建应用程序代码,如:asp.net form、mvc等
3,制做应用程序页面,如:html静态页面
4,把静态页和.net程序结合
II、 使用sharePoint创建博客网站步骤如下:
1, 在“管理中心”点击“创建网站集”并选择类型为“博客类型”,点确定,如下图所示
博客创建成功,如下图所示:
SharePoint博客功能如下:创建和管理类别,创建和管理文章,添加和管理评论,满足了基本的博客要求。
在传统的开发模式下,我们要设计DB,书写程序代码、页面代码等,工作量是可想而知的,而在SharePoint中,我们只需要在SharePoint这个软件的操作功能上点击“创建”即可。这里就引出了微软的一个重要的企业战略目标“无代码开发”,即:“不写代码,也能完成简单的企业级应用”。
虽然微软的想法是好的,但SharePoint也有明显的不足:
(1)覆盖面广而不精
SharePoint 2013默认提供的网站类型模板有如下几种:
协作:工作组网站、博客、开发人员网站、项目网站、社区网站
企业:文档中心、电子数据展示中心、记录中心、商业智能搜索、企业搜索中心、我的网站宿主、社区门户、基本搜索中心、Visio流程存储库
发布:发布门户、企业Wiki、产品目录
自定义:自己定义的模板类型
我们还是以刚才创建的博客为例,使其与博客园进行对比。
SharePoint博客,如下图:
博客园首页,如下图:
有点”奔腾处理器与I7 “的感觉没?SharePoint只提供了简单的用户界面和功能。园子里很多功能,在SharePoint的博客类型的网站集是没有的。那么我们创建这样一个网站有什么用?需要的功能没有,因此就要在SharePoint的基础上进行二次开发才能满足我们对现代博客(SharePoint的其他类型模板也是一样的,基本都需要二次开发或修改)的需求。
(2)二次开发难度大
很多程序员都有过这样的体验吧?别人写好的代码由你来修改!什么感觉?
SharePoint也不例外,从页面上看,SharePoint的页面都是.net的页面,如:aspx或.master等(虽然2013下可以编辑html,但还是很别扭),切段页面代码看下:
1 <SharePoint:ImageLink runat="server"/> 2 <SharePoint:SPNoScript runat="server"/> 3 <SharePoint:SPClientIDGenerator runat="server" ServerControlID="DeltaPlaceHolderMain;DeltaPlaceHolderPageTitleInTitleArea;DeltaPlaceHolderUtilityContent" /> 4 <SharePoint:SharePointForm runat="server" onsubmit="if (typeof(_spFormOnSubmitWrapper) != 'undefined') {return _spFormOnSubmitWrapper();} else {return true;}"> 5 <script type="text/javascript"> var submitHook = function () { return false; }; theForm._spOldSubmit = theForm.submit; theForm.submit = function () { if (!submitHook()) { this._spOldSubmit(); } }; </script> 6 <SharePoint:AjaxDelta id="DeltaSPWebPartManager" runat="server"> 7 <WebPartPages:SPWebPartManager runat="Server" /> 8 </SharePoint:AjaxDelta> 9 <asp:ScriptManager id="ScriptManager" runat="server" EnablePageMethods="false" EnablePartialRendering="true" EnableScriptGlobalization="false" EnableScriptLocalization="true" /> 10 <SharePoint:AjaxDelta id="DeltaDelegateControls" runat="server"> 11 <SharePoint:DelegateControl runat="server" ControlId="GlobalNavigation" /> 12 <SharePoint:DelegateControl ControlId="GlobalSiteLink3" Scope="Farm" runat="server" Visible="false" /> 13 </SharePoint:AjaxDelta>
大部分内容都是SharePoint团队开发的服务端控件,我们要修改的情况下,首先要知道这些乱七八糟的代码是做什么的,是否可以删除?删除或修改后影响哪些功。比从头开发难度大很多。当前重多的SharePoint开发人员正在持续着这样的工作。
虽然某些事实是客观存在的,但大家同时也不要忽略另一个事实,那就是现在很多国内外的大型企业都在使用SharePoint做内容管理系统的底层架构,如:网站等业务简单的系统,直接修改修改搭建搭建就可以用了。
下面我们做下回顾一下概念:
什么是SharePoint:SharePoint是一个不需要代码也能创建系统,一款可以无代码开发的软件。
百度词条(http://baike.baidu.com/view/260261.htm)的定义:SharePoint Portal Server 2003 使得企业能够开发出智能的门户站点,这个站点能够无缝连接到用户、团队和知识。因此人们能够更好地利用业务流程中的相关信息,更有效地开展工作。
这回有理解多一点有木有?
2.SharePoint功能
这此处只罗列出了SharePoint 2010 的6大功能,2013又出了新功能。有关注的可以自己去了解下。本人学浅这里就不介绍了。
(1) 网站:“无代码”创建“共享的”企业网站。
(2) 社区:“无代码”创建“共享的”博客。
(3) 内容:“无代码”创建“共享的”企业内容管理。
(4) 搜索:“无代码”创建“共享的”搜索(包括网落爬虫)
(5) 智能:“无代码”创建“共享的”商业智能visio
(6) 集成:“无代码”创建“共享的”业务数据的连接,快速创建应用infopath。