SharePoint开发中的最佳实践(再续)

SharePoint开发中的最佳实践

20.SPViewScope介绍

Default :仅显示指定文件夹下的文件和子文件夹

FilesOnly:仅显示指定文件夹下的文件

Recursive:显示所有文件夹下的文件

RecursiveAll:显示所有文件夹下的所有文件和子文件夹

以上这个属性使用在CAML中,用于控制在哪些范围内进行查找,我们可以根据实际的查找需求,对这个ViewAttribute属性进行设置,来完成我们的操作。

21.SPGridView介绍

SPGridView在GridView的基础上,进行了一些扩展,也就是说他拥有GridView的所有功能,并且在其基础上有所改进。改进的主要是分组、分页、下拉菜单和filter功能。但是SPGridView不支持自动生成列,所以在使用的时候一定要将AutoGenerateColums属性设置成false。

22.JavaScript的replace方法介绍

使用JaveScript的Replace方法,这个方法支持使用正则表达式,如果不使用正则表达式的话,默认只是会替换第一个匹配的字符。所以我们采用strM.replace(/&/g,"//")来将字符串中的所有目标字符。所以将这个方法和相应的正则表达式进行配合使用,功能将是非常强大的。

23.使用SPFolder folder = web.GetFolder(url);

这样是通过url直接得到folder对象,没有经过list那个级别,对List的数据还可能没有进行初始化,所以使用folder.ParentListId可能是空,从而取不到List对象。也就是说不能取这个Folder对象的对应的Parent List的对象的属性。

24.当我们对Web下的某些对象进行更新的时候,我们虽然调用了Web.Update()方法,但是SharePoint中的API不会将Web对象重新加载,也就是不会将一些新的MetaData从数据库中重新加载到Web对象中,这样就有可能造成对象不一致的现象。我们解决这个问题的方法是在我们使用Web的时候,要重新获取一下Web对象就可以了。

25.使用Checkout和Checkin方法的时候,首先要判断进行操作的文件的状态,如果没有被Checkout,那就不能够被Checkin,如果是Checkout状态,就不能够再被Checkout了。同时对文件的CheckOut也就是相当于将文件添加了一个锁,标识一下这个文件的状态。如果这个文件被Checkout出去之后,其他人就不能够对其进行Checkout了,除非将其强制的Discard Checkout。

26.使用AllowUnSafeUpdate属性的一些需要注意的地方,这个属性是为了阻止不安全更新的属性,如果我们要对Web中的一些对象进行更新的时候,如果没有将这个属性设置成true将会出现一个验证异常。如果HttpContext.Current这个对象是Null的话,那么这个属性将永远是true。在使用这个属性的时候,一定要确定设置的是我们要进行更新的Web对象,如果不是,在更新的时候将会出现异常,因为以前我们对Web进行了一些操作,这样这个Web对象就发生了变化,不再是我们现在这个Web对象了,也就是导致了对象不一致,所以我们需要重新取得这个Web对象,然后再设置这个属性即可。

27. 一般在SharePoint部署的时候,我们使用WSP对一些文件进行部署,同时更新web.config,但是有些时候需要对web.config添加一些自定义的节点,并且可能修改原来的节点,所以使用WSP不能够完全满足我们的需求,应该使用WebConfigurationModification类对web.config文件进行修改。如下所示:

using (SPSite siteCollection = new SPSite("http://chris:11111/sites/testconfig"))

{

using (SPWeb site = siteCollection.OpenWeb())

{

site.AllowUnsafeUpdates = true;

SPWebApplication app = siteCollection.WebApplication;

SPWebConfigModification modification1 = new SPWebConfigModification();

modification1.Path = "configuration";

modification1.Name = "connectionStrings";

modification1.Value = " <connectionStrings></connectionStrings> ";

modification1.Owner = Assembly.GetExecutingAssembly().FullName;

modification1.Sequence = 100;

modification1.Type

=SPWebConfigModification.SPWebConfigModificationType.EnsureSection;

app.WebConfigModifications.Add(modification1);

SPWebService service = SPFarm.Local.Services.GetValue < SPWebService >

();

service.ApplyWebConfigModifications();

}

}

时间: 2024-10-20 15:16:14

SharePoint开发中的最佳实践(再续)的相关文章

彼之蜜糖,吾之砒霜——聊聊软件开发中的最佳实践

"描述一个事物,唯有一个名词定义它的概念,唯有一个动词揭露它的行为,唯有一个形容词表现它的特征.要做的,就是用心去寻找那个名词.那个动词.那个形容词--" -- 福楼拜 (Gustave Flaubert) 我想讲个故事. 很久很久以前(一般讲故事都是这样开头吧), 两个老工程师在一起聊天,谈各自生涯中最自豪的工程.其中一个先讲述了他的杰作: " 我们建造的桥,横跨一个峡谷,峡谷很宽很深.我们花了两年时间研究地质,选择材料.聘请了最好的工程师团队来设计方案,而这又花了五年时间

MVP模式在Android开发中的最佳实践

这篇文章拖了好久了,一直存在草稿箱里没有继续写,趁今天有空,撸撸完. 回想一下,你刚刚学习Android的时候,总会看到一些书上写着,Android使用的是MVC模式,Activity就是一个Controller,或许那个时候,你没有什么深刻的体会.随着经验的积累.你发现,Activity既是Controller,掌管着许许多多的业务逻辑,同时它也作为View的一部分,控制着视图层的显示.久而久之,这个Controller便显得过于重,职责不再那么单一. 于是,再后来,为了使Activity的职

混合云场景下容器技术在新能源功率预测产品中的最佳实践

能源互联网是物联网和"互联网+"在能源行业深度融合的产物,是中国制造2025的重要组成部分,我们现在还处于能源互联网的早期阶段.绝大部分能源行业的应用都部署在私有局域网内,并且网络结构异常复杂,这是阻碍互联网技术在能源行业落地的最大挑战. 6月28日,金风科技数据平台架构师张利出席了Rancher Labs举办的Container Day 2018容器技术大会,并做了题为<混合云场景下容器技术在新能源功率预测产品中的最佳实践>的演讲. 金风科技是中国成立最早.自主研发能力最

Redis 在 SNS 类应用中的最佳实践有哪些?

1. 消息队列(通知类.延迟更新类)2. 热点数据的实时缓存(比如feed,数据库.缓存同时写)3. 热点列表数据缓存(首页.热门话题等)4. counter(计数器,大多是用缓存实现的)5. 记日志最好不要用redis,用mongodb比较适合.Redis 在 SNS 类应用中的最佳实践有哪些?,码迷,mamicode.com

SharePoint开发中如何使用Visual Studio给你的Web Part添加图标

SharePoint开发中如何使用Visual Studio给你的Web Part添加图标 直接进入正题.以Hello World为例. 1. 以管理员身份打开VS,新建空白SharePoint项目.点击确定.部署为场解决方案. 2. 右击项目添加新项--Web部件,命名HelloWorldWebPart. 3. 编辑代码: 在部署之前,这里我要给Web部件增加一个图标.每个Web部件都有两个图标:一个在Web部件库标识Web部件,一个在页面上标识Web部件.使用一个图标是简单的戏法,可以增强你

Typescript 开发环境的最佳实践

Typescript 开发环境的最佳实践 0?? git init(略) 1???? 初始化:$ yarn add -D ts-node typescript 2?? 生成 tsconfig.json:$ yarn tsc -init 3?? 配置 TSLint:$ yarn add tslint -D 4?? 生成 tslint.json:$ yarn tslint --init 5?? 创建 src/index.ts:$ mkdir src && echo "console.

Spring Batch在大型企业中的最佳实践

在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后进行一系列的后续处理.这样的过程就是"批处理". 批处理应用通常有以下特点: 数据量大,从数万到数百万甚至上亿不等: 整个过程全部自动化,并预留一定接口进行自定义配置: 这样的应用通常是周期性运行,比如按日.周.月运行: 对数据处理的准确性要求高,并且需要容错机制.回滚机制.完善的日志监控等. 什么是Spring batch Sprin

Express 开发与部署最佳实践

本篇文章翻译自expressjs官方网站,源地址如下:express最佳实践 ,分别从dev角度和ops角度讨论了如何提升express应用的运行性能以及部署的最佳方式. 针对开发者需要注意的问题 对于一个express应用我们,一般有以下的几种方法来提升应用的运行效率以及响应率. 使用gzip压缩 代码中不要使用同步函数 使用中间件处理静态文件 合理的日志处理方法 正确的处理异常 以下我们将分别对于每个子项目进行展开分析. 1.使用gzip压缩 使用gzip压缩可以显著的减小响应包的大小,这样

Spring Batch 在大型企业中的最佳实践

在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后进行一系列的后续处理.这样的过程就是"批处理".批处理应用通常有以下特点: 数据量大,从数万到数百万甚至上亿不等:整个过程全部自动化,并预留一定接口进行自定义配置:这样的应用通常是周期性运行,比如按日.周.月运行:对数据处理的准确性要求高,并且需要容错机制.回滚机制.完善的日志监控等.什么是Spring batch Spring bat