转:http://bbs.tianya.cn/post-144-566491-1.shtml
微软Sharepoint的一些缺点(一)
微软Sharepoint的一些缺点(二)
微软Sharepoint的一些缺点
关于二次开发:
1. 最近有一个项目是针对基于Windows Sharepoint Server, 并利用Microsoft Office Sharepoint Server2007和Design的开发和部署(其实我对这个项目是颇有微辞的, 首先对于这类技术的集成还没有掌握, 项目书上说是配置占70%以上, 其实不然以这样的要求显然开发占了70%以上). 并且我对这种Microsoft极度推崇的技术也是心存一些不满的. 首先它的内容更广一些,不仅设计了Windows WorkFlow Fundation, Web Part, ASP.NET 2.0, CAML, Infopath以及Windows Sharepoint Server等大量内容还有许多企业应用的概念. 并与Office系列产品有高度集成. 这对于一个开发人员来说需要掌握更多的技术特性. 其实光是精通其中两样已经是很不容易的一回事了. 基于它的二次开发难度较大, 并且许多默认提供用户的操作方式都不是传统的Web用户操作习惯. 说穿了只是Microsoft想要捆绑它的一整套产品销售, 卖给那些政府或者大型企业而已. 哎! 感叹做为开发人员, 不是每个项目都能选择让你使用你擅长的喜爱的技术.
2. 问题在于微软产品的高度集成和依赖性,不仅给用户的应用成本带来了约束,而且还限制了微软协同系统在非微软主流用户范围内的推广;完全基于微软体系架构,具有完整的技术体系和可靠的应用保障,但同时也存在兼容性不够,过分依赖微软运行环境的缺点。另外,由于操作系统可靠性及源代码不开放等问题,对于复杂的大型应用和要求很高的环境,应用会受到影响。
关于权限:
1. 在MOSS/Sharepoint 控制视图页面访问权限开发的问题,这些功能通过sharepoint已有功能是很难解决的
2. 在二次开发上,SharePoint webpart定制还是比较难,定制一个自己满意的webpart真的很困难,其中webpart的权限机制真的让人厌烦,这一点我深有体会。还有SharePoint的外观定制也非常困难,如果经验不太丰富的开发者很难定制出比较漂亮的界面,我想这和sharepoint定位有关,因为它主要是用来定制内部门户网站。还有sharepoint的用户是与NT域相结合,因此如果想用sharepoint来进行外部网站开发,只有采用匿名访问机制了。SharePoint Portal Server 2003的权限只能控制到区域,而不能控制到具体的文件和文件夹,在区域下面进行项目管理时,只有采取为具体项目建立子站点的方式,这样就让最终用户使用时感到很茫然。
一些具体的技术缺陷:
1. 如果使用SharePoint 2007作为文档管理平台,它很让人诟病的一点就是,SharePoint 2007将文件本身直接存储在SQL Server数据库之中。虽然Windows SharePoint Services 3.0 SP1增加了一个External BLOB Storage(EBS)接口,但是微软并没有提供实现,而是需要开发人员自己来实现它。
2. sharepoint的部分应用缺点:
(1) List分页
List的分页只支持“上一页”,“下一页”,并不支持分页的调整。这个不太适合国内的做法。
(2) List的导出功能
SharePoint的List支持导出功能,里面导出的Excel,多2个默认的字段,这个也还ok,但是仔细对导出功能进行研究,发现导出的当前视图的所有数据信息,即使你分页了,或者是做过筛选,导出的都是当前视图的所有数据信息。
(3) List视图信息的筛选
List视图非常灵活,也非常好用,但是给用户自己定义,这个用户就不太乐意了。视图的筛选信息支持很多,但是不支持用户和组类型包含当前用户。所以做定向通知的时候,遇到发给一个组,就需要开发实现了。
如果不在AllItems页面下的list WebPart 看不到视图的选项,只能使用当前的视图。
(4) List 之间的1:N的关系
如一个List存储学生的常用信息,一个List存储学生对应的成绩信息。这个时候实现可以通过查阅项进行,通过查阅项只能实现一个1:1的关系,而且还要选,没有太多实际的用处。我以前参考一些资料,实现了类似的功能,但是操作起来有点繁琐,需要分2步进行。第一步,填写个人信息。第二步,填写成绩信息。
(5) 文档库
文档库可以支持文件的上传,但是上传上去之后,才能对文档的属性信息进行修改。对于中国人的习惯应该是上传文档的同时,再填写文档的属性信息。
文档库不支持附件的上传,如果希望对一个文件进行附件的图片的描述,这个时候就没有什么好办法啦,只能通过查阅项来处理。
(6) 富文本字段
这是一个存在很大争议的字段,我在这里不也不多说。只说一些常见的问题:
a) 图片的上传
一般的富文本字段
通过填写图片的路径和描述,来实现图片的添加功能。如果要添加图片,必须先找一个地方进行的图片的上传。
(7) 发布类型的富文本字段
发布类型的富文本字段,比一般的富文本改进了很多,可以选择相应的图片,但是如果要上传一个图片,这个时候,就在弹出新的页面进行上传,上传完毕之后,需要关闭当前页面。
(8) 搜索
搜索功能是SharePoint中5大特点之一,但是SharePoint的搜索功能是通过爬网爬出来的,所以针对List的某些特定字段(大于1个)的搜索,基本上无能为力。这个功能可以通过现有一个SmartQuery控件进行解决。
(9) 导航
SharePoint的顶部导航能很灵活的进行添加和删除,但是我们在当前站点添加一个页面,并把这个页面添加在导航的时候,就会发现,点击页面的导航,激活状态还是首页。这个问题好像只能通过对样式的修改进行解决。
(10) 样式
List显示信息的样式不太符合中国人
整个SharePoint的样式,不太适合中国人的风格,基本上每个项目都会修改SharePoint站点的样式
(11) 应用模板
微软提供一些应用程序模板,基本在实际的项目中,基本上不能使用
(12) 权限
SharePoint中的list默认会继承整个网站集的权限,ListItem 默认会继承List 的权限。当SharePoint中的用户是以单个AD用户加入的,并赋予权限,这个时候,List 和ListItem的权限记录会对对应用户和网站赋予权限的组,导致数据量很大。如果List 和 ListItem 都很大(30-50个list),这个时候想删除用户基本上不太可能了。
如果不给用户和组赋予网站集的权限,当在一个List或ListItem 赋予了用户和组的权限,在网站上就会出现一条相应的记录。
(13) 数据的删除
如果一个List的数据信息到了10w,你删除这个站点,就删不了了。
用户权限在List中出现次数过多,也会导致用户无法删除。
如果想对整个基于sharepoint平台的网站实现多语言版,不敢说是奢望,至少我至今还没有找到比较好的解决办法。
总的说来,sharepoint只比较适合做知识门户的开发,前提是你不嫌它太贵,因为硬件和软件投资都比较大。
关于二次开发:
1. 最近有一个项目是针对基于Windows Sharepoint Server, 并利用Microsoft Office Sharepoint Server2007和Design的开发和部署(其实我对这个项目是颇有微辞的, 首先对于这类技术的集成还没有掌握, 项目书上说是配置占70%以上, 其实不然以这样的要求显然开发占了70%以上). 并且我对这种Microsoft极度推崇的技术也是心存一些不满的. 首先它的内容更广一些,不仅设计了Windows WorkFlow Fundation, Web Part, ASP.NET 2.0, CAML, Infopath以及Windows Sharepoint Server等大量内容还有许多企业应用的概念. 并与Office系列产品有高度集成. 这对于一个开发人员来说需要掌握更多的技术特性. 其实光是精通其中两样已经是很不容易的一回事了. 基于它的二次开发难度较大, 并且许多默认提供用户的操作方式都不是传统的Web用户操作习惯. 说穿了只是Microsoft想要捆绑它的一整套产品销售, 卖给那些政府或者大型企业而已. 哎! 感叹做为开发人员, 不是每个项目都能选择让你使用你擅长的喜爱的技术.
2. 问题在于微软产品的高度集成和依赖性,不仅给用户的应用成本带来了约束,而且还限制了微软协同系统在非微软主流用户范围内的推广;完全基于微软体系架构,具有完整的技术体系和可靠的应用保障,但同时也存在兼容性不够,过分依赖微软运行环境的缺点。另外,由于操作系统可靠性及源代码不开放等问题,对于复杂的大型应用和要求很高的环境,应用会受到影响。
关于权限:
1. 在MOSS/Sharepoint 控制视图页面访问权限开发的问题,这些功能通过sharepoint已有功能是很难解决的
2. 在二次开发上,SharePoint webpart定制还是比较难,定制一个自己满意的webpart真的很困难,其中webpart的权限机制真的让人厌烦,这一点我深有体会。还有SharePoint的外观定制也非常困难,如果经验不太丰富的开发者很难定制出比较漂亮的界面,我想这和sharepoint定位有关,因为它主要是用来定制内部门户网站。还有sharepoint的用户是与NT域相结合,因此如果想用sharepoint来进行外部网站开发,只有采用匿名访问机制了。SharePoint Portal Server 2003的权限只能控制到区域,而不能控制到具体的文件和文件夹,在区域下面进行项目管理时,只有采取为具体项目建立子站点的方式,这样就让最终用户使用时感到很茫然。
一些具体的技术缺陷:
1. 如果使用SharePoint 2007作为文档管理平台,它很让人诟病的一点就是,SharePoint 2007将文件本身直接存储在SQL Server数据库之中。虽然Windows SharePoint Services 3.0 SP1增加了一个External BLOB Storage(EBS)接口,但是微软并没有提供实现,而是需要开发人员自己来实现它。
2. sharepoint的部分应用缺点:
(1) List分页
List的分页只支持“上一页”,“下一页”,并不支持分页的调整。这个不太适合国内的做法。
(2) List的导出功能
SharePoint的List支持导出功能,里面导出的Excel,多2个默认的字段,这个也还ok,但是仔细对导出功能进行研究,发现导出的当前视图的所有数据信息,即使你分页了,或者是做过筛选,导出的都是当前视图的所有数据信息。
(3) List视图信息的筛选
List视图非常灵活,也非常好用,但是给用户自己定义,这个用户就不太乐意了。视图的筛选信息支持很多,但是不支持用户和组类型包含当前用户。所以做定向通知的时候,遇到发给一个组,就需要开发实现了。
如果不在AllItems页面下的list WebPart 看不到视图的选项,只能使用当前的视图。
(4) List 之间的1:N的关系
如一个List存储学生的常用信息,一个List存储学生对应的成绩信息。这个时候实现可以通过查阅项进行,通过查阅项只能实现一个1:1的关系,而且还要选,没有太多实际的用处。我以前参考一些资料,实现了类似的功能,但是操作起来有点繁琐,需要分2步进行。第一步,填写个人信息。第二步,填写成绩信息。
(5) 文档库
文档库可以支持文件的上传,但是上传上去之后,才能对文档的属性信息进行修改。对于中国人的习惯应该是上传文档的同时,再填写文档的属性信息。
文档库不支持附件的上传,如果希望对一个文件进行附件的图片的描述,这个时候就没有什么好办法啦,只能通过查阅项来处理。
(6) 富文本字段
这是一个存在很大争议的字段,我在这里不也不多说。只说一些常见的问题:
a) 图片的上传
一般的富文本字段
通过填写图片的路径和描述,来实现图片的添加功能。如果要添加图片,必须先找一个地方进行的图片的上传。
(7) 发布类型的富文本字段
发布类型的富文本字段,比一般的富文本改进了很多,可以选择相应的图片,但是如果要上传一个图片,这个时候,就在弹出新的页面进行上传,上传完毕之后,需要关闭当前页面。
(8) 搜索
搜索功能是SharePoint中5大特点之一,但是SharePoint的搜索功能是通过爬网爬出来的,所以针对List的某些特定字段(大于1个)的搜索,基本上无能为力。这个功能可以通过现有一个SmartQuery控件进行解决。
(9) 导航
SharePoint的顶部导航能很灵活的进行添加和删除,但是我们在当前站点添加一个页面,并把这个页面添加在导航的时候,就会发现,点击页面的导航,激活状态还是首页。这个问题好像只能通过对样式的修改进行解决。
(10) 样式
List显示信息的样式不太符合中国人
整个SharePoint的样式,不太适合中国人的风格,基本上每个项目都会修改SharePoint站点的样式
(11) 应用模板
微软提供一些应用程序模板,基本在实际的项目中,基本上不能使用
(12) 权限
SharePoint中的list默认会继承整个网站集的权限,ListItem 默认会继承List 的权限。当SharePoint中的用户是以单个AD用户加入的,并赋予权限,这个时候,List 和ListItem的权限记录会对对应用户和网站赋予权限的组,导致数据量很大。如果List 和 ListItem 都很大(30-50个list),这个时候想删除用户基本上不太可能了。
如果不给用户和组赋予网站集的权限,当在一个List或ListItem 赋予了用户和组的权限,在网站上就会出现一条相应的记录。
(13) 数据的删除
如果一个List的数据信息到了10w,你删除这个站点,就删不了了。
用户权限在List中出现次数过多,也会导致用户无法删除。
如果想对整个基于sharepoint平台的网站实现多语言版,不敢说是奢望,至少我至今还没有找到比较好的解决办法。
总的说来,sharepoint只比较适合做知识门户的开发,前提是你不嫌它太贵,因为硬件和软件投资都比较大。