【原创】SharePoint 开发列表定义以实现一次开发可多次部署

在SharePoint开发中,列表是一个很方便也头疼的功能,方便在于通过浏览器就可以很容易定制列表的栏位,包括栏位类型和试图等等,头疼的地方在于在开发完了部署到生产环境时不太好弄,第一次部署的时候倒是可以使用数据库还原的方式,但是要追加修改的话,就很麻烦,只能在开发环境先配一遍,然后在生产环境再重新配一遍,如果不小心配错了,还很麻烦,可能要调试半天才能发现问题。另外,如果多个人共同开发一个项目,要合并各自对列表的修改也很麻烦。

总之,要是直接在生产上使用,倒是很方便,但是对于开发人员来说,就比较痛苦。

想了许久,也查了很多资料,终于找到了一个对于开发人员来说比较好的解决方法,就是通过Visual Studio开发List模板,部署到系统中后,手工或者通过脚本创建列表实例,后续若修改列表都通过修改VS项目中的列表模板,而不是通过OOB的方式来做,系统中的列表实例会自动根据模板更新。

这样,多人开发时,可使用TFS统一对列表模板进行维护,在各自开发环境开发只要部署最新的代码,都是最新的列表,从开发多次部署到生产环境时,也只要部署解决方案,创建新的列表实例就可以了,不需要一遍遍通过浏览器配置了。

这种方法稍微麻烦点的地方是,VS里配置List没有浏览器或者SPD方便,尤其对于Lookup型字段,都需要修改schema.xls来指定Lookup字段的List和ShowField字段,其中List要指定GUID值,设置view也只能靠改schema来完成。

看看能不能通过SPD先创建再导出一份schema?

总体来说,对于开发人员是利大大于弊,列表只需要配置一次,后续部署生产同步都很容易了。

详细操作步骤如下:

  1. 在VS项目中添加一个新项目,选择列表

输入列表名称,选择列表模板类型

  1. 创建完列表,设置列表的栏及栏类型,栏名先输入英文,再改成中文,以便于后续开发在代码中引用,若直接中文,后续在引用列表栏时需使用中文的UNICODE,非常麻烦而且不直观。
  1. 在VS解决方案浏览器里可看到列表包括如下图的几个文件

List1Instance->Elements.xml

Elements.xml

Schema.xml

在这可以多说几句,在Sharepoint里列表有列表模板和列表实例两个概念,列表模板定义了列表的结构,比如在浏览器里新建一个列表时可以看到很多列表模板,比如自定义列表、任务等,而列表实例就是网站里实际的一个列表,每个网站实例都是基于列表模板创建的,当模板发生了变化,实例也会跟着修改,有点类似类和类的对象。

在这,为了确保重复部署解决方案时不会导致网站已有的列表实例被破坏,也就是不会导致已有列表的数据被删掉,可以直接删掉ListInstance文件,这样在部署时只会更新列表模板,而列表实例会自动按照新的模板刷新。

重点是Schema.xml,MSDN上有详细的List Schema介绍

对于Lookup型的字段,我们需要在Schema.xml文件中找到对应的字段,设置List和ShowField字段,如:

其中List的GUID可以通过VS连接到Sharepoint站点查看列表的ID属性:工具->连接到Sharepoint

时间: 2024-10-14 11:49:07

【原创】SharePoint 开发列表定义以实现一次开发可多次部署的相关文章

手机App定制开发的定义

移动互联网快速发展,传统行业与互联网融合的平台和模式都发生了改变.互联网的发展已经走进了一个新时代,越来越多的企业开始认识到互联网蕴含的巨大商机,尤其是对于一些企业而言,传统的营销模式已不能跟随这个时代的步伐了.在我们的生活当中不难发现,手机APP已经成为了生活当中不可缺少的物品,手机APP定制开发也变得热门起来.那么,怎样才算是APP开发定制?在此,郑州APP定制开发公司小编就和大家来谈谈. 1.手机APP定制开发的定义 APP定制开发指的是企业根据自身所处行业的发展现状以及企业战略规划来进行

SharePoint开发 - Excel数据导入到SharePoint自定义列表(数据视图方式)

本篇讲解一个有些新颖的SharePoint实例应用,给甲方做过项目的都有过体会,数据太多了,客户有Excel,要求实现批量导入. 效果图大致如下所示 此实例是借用列表的数据视图实现导入,数据视图类似Excel,所以可以直接在上面编辑,甚至从Excel中直接粘贴进去,然后点击保存将数据插入到列表中. 首先,我们需要有一个列表,这个列表的字段跟Excel是对应的,在我的实例中选择创建列表定义及列表实例(怎么创建项目不多废话了) 创建方法戳这里 写完列表实例之后,添加一个作用于列表的事件接收器,用来处

Sharepoint 2013列表视图和字段权限扩展插件!

记得2014年春节期间,有博客园的网友通过QQ向我咨询Sharepoint 2013列表视图和字段权限扩展,因为之前他看到我博客介绍Sharepoint 2010列表视图和字段的权限控制扩展使用,问有没有这方面的列表权限扩展插件?我告诉他Sharepoint 2010的列表权限扩展插件并不能在Sharepoint 2013中使用,不能向上兼容的,且Sharepoint 2013的功能也有所升级了,系统底层架构已发生了一些变化.由于他需要在Sharepoint 2013项目中使用到此功能,有大量的

SharePoint 创建列表并使用Windows Presentation Foundation应用程序管理列表

SharePoint创建列表并使用程序管理列表 列表是SharePoint开发人员输入数据的方式之一.使用Web界面创建一个列表并添加一些数据,步骤如下: 1. 打开站点. 2. 点击所有网站内容. 3. 点击创建. 4. 选择自定义列表,命名Customers,并输入描述.选中在快速启动导航显示,点击创建. 这将创建一个自定义列表.接下来我们添加三个栏:Region/Size/Sales. 1. 点击功能区创建栏按钮,命名Region,选择"选项"类型.增加四个选项:East/Wes

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 使用Visual Studio 2012开发SharePoint

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 使用Visual Studio 2012开发SharePoint应用程序 VS2012带有标准系列的工程级和项目级模板,使得SP开发更加简单更加强大.使用SP2010你可以应用VS2010做大量开发,使用VS2012,现在你可以有很多新的功能和选择. 微软带了标准系列的工程级模板,开箱即用,附带额外系列的工程项目模板来帮助你进行开发.例如,你可以创建SP2013

SharePoint 修改列表阀值

今天在浏览网页的时候,页面上出现“The attempted operation is prohibited because it exceeds the list view threshold enforced by administrator.”错误,经查明原因为SharePoint默认列表视图只能查询5000条数据,需要对列表阀值进行修改. 修改步骤如下: 1.进入CA,选择“Manage web applications” 2.选中网站所在的Web Application 3.点击“Ge

原创:漫谈戴明管理哲学与软件开发(三)

(续前) 3.停止依靠大批量的检验来达到质量标准 检验其实是等于准备有次品,检验出来已经是太迟,且成本高而效益低.正确的做法,是改良生产过程. 很多人分不开QA和QC的区别,甚至在教科书中也往往把测试叫做QA,但事实上两者是有很大区别的. QA全称是Quality Assurance,直译即质量保障 -- 避免生产质量不达标的产品.而QC的全称是Quality Control,直译即质量控制 -- 避免让质量不达标的产品出厂.两者看似没区别,但实际上却是截然不同的两种管理思想.质量保障的目标是把

Learn Prolog Now 翻译 - 第四章 - 列表 - 第一节,列表定义和使用

内容提要 列表定义: 合一在列表中的使用: 匿名变量: 列表定义 正如名字暗示的,列表就是多个元素组成的集合.更精确地说,是元素的有限序列.在Prolog中的列表,有如下的一些具体例子: [mia, vincent, jules, yolanda] [mia, robber(honey_bunny), X, 2, mia] [ ] [mia, [vincent, jules], [butch, girlfriend(butch)]] [[ ], dead(z), [2, [b, c]], [ ]

TTLSA出品原创系列教程列表(zabbix,nginx,mongodb,hinkphp,MySQL

两年的时间内共出品6个系列,其中zabbix与nginx已经制作电子书,其他系列教程陆续转成pdf提供给广大技术宅们下载,感谢大家对运维生存时间的一贯支持,如有不足的地方,欢迎拍砖.系列教程如下 1. zabbix教程从入门到精通 作者:凉白开 电子书:http://ebook.ttlsa.com/monitor/ 文章列表:http://www.ttlsa.com/zabbix/follow-ttlsa-to-study-zabbix/ 栏目地址:http://www.ttlsa.com/mo