http://www.cnblogs.com/StoneGarden/archive/2012/02/06/2340661.html

MS CRM 2011的自定义和开发(11)——插件(plugin)开发(三)

插件开发完成后,就需要注册、调试、部署了。

在注册之前,需要着重指出的是,必须对插件程序集进行签名,具体步骤是,在Visual Studio中,右键点击项目名称,快捷菜单中选择“属性”,在项目属性对话框中,点击“签名”页签, 勾选“为程序集签名”,在“选择强名称密钥文件”下拉框中,选择“新建”创建一个新的密钥文件或者“浏览”选择一个已有的密钥文件。如下图所示。

注册使用插件注册工具PluginRegistrationTool了,该工具位于SDK\Tools\PluginRegistration目录下,需要使用Visual Studio .Net 2010编译一下pluginregistrationtool项目。

使用插件注册工具进行插件注册的步骤非常简单,

1. 运行插件注册工具,如果是初次运行,在Connections控制板中没有任何内容,需要点击工具条的“Create New Connection”按钮,而后在“Connection Information”区域的Label文本框中输入代表连接的注记名称,在“Discovery Url”文本框中输入服务器的地址(包括端口号),在“User Name”文本框中输入包括域名在内的用户名称。如下图所示。

2. 点击“Connect”按钮,而后再在弹出的Windows登陆窗口中输入密码,注册工具会去获取目标部署中的所有组织。如下图所示。

3. 选择需要连接的组织,而后点击“Connect”按钮。注册工具获取目标组织的消息、用户、已经注册的插件、步骤、映像等等所有信息,而后,将在右侧的区域显示出目标组织中的所有已经注册插件程序集。如下图所示。

右侧的区域主要分为四个部分,最上方的工具条、左上方的已注册插件以及自定义工作流活动程序集列表,右上方的PropertyGrid显示了列表中当前选择项目的属性,下方的区域是列表中当前选择项的一些内容。

如果需要注册插件。点击工具条中的“Register”按钮,系统会弹出下拉菜单,如下图所示。

选择“Register New Assembly”,就开始了注册插件程序集。点击该菜单项之后,系统弹出“Register New Plugin”窗口,点击“Step #1:Specify the location of the Assembly  to Analyze”文本框旁的按钮“…”,系统将弹出对话框,以便找到程序集。如下图所示。

选定程序集后,点击“打开”按钮,返回“Register New Plugin”窗口。会在“Step #2”的列表框中列出程序集中所有的插件类。如下图所示。

在“Step #3”中,可以选择隔离模式Isolation Mode,有两种模式:None以及沙盒Sandbox,如果是将插件放置在沙盒中,那么插件类将无法访问服务器上的文件系统、应用程序日志以及注册表等信息,而注册为None模式则没有这个限制。

在“Step #4”中,设定程序集存放位置:数据库Database、文件系统Disk以及全局缓存GAC中,如果正式生产环境部署,那么推荐部署在数据库中,如果是开发环境,推荐部署在Disk上,以方便调试。

点击“Register Selected”按钮,完成插件程序集的注册工作。返回主界面,对比之前的程序集列表,可以看出,新增的插件的相关内容已赫然在目。如下图红色方框区域所示。

下面开始完成对事件的订阅工作。

选择需要订阅事件的插件类 –〉 点击“Register” –〉 “Register New Step”,系统弹出“Register New Step”窗口。由于是以前一篇文章中的AccountNumberPlugin举例,所以,需要订阅的消息是客户Accont实体的Create消息的前置事件,所以,在“Register New Step”窗口,做出如下的设置:

消息Message文本框内容:Create;

主要实体Primary Entity文本框内容:account;

阶段Eventing pipeline Stage of Execution: Pre-Operation(CRM 2011 Only)

模式Execution Mode:Synchronous

部署Deployment:Server

最终效果如下图所示:

点击“Register New”按钮,完成步骤注册,返回注册工具主界面。可以看出在插件列表中又多出一行新内容,对应了刚刚注册的Step,效果如下图的红色方框区域所示。

如果某个插件类中使用了映像Image,那么需要针对相应步骤设定Image信息,点击“Register” –〉 “Register New Image”,系统弹出“Register New Image”窗口,在“Step列表”中选择需要添加Image的步骤,而后设定前期映像、后期映像的信息。效果如下图所示。

经过以上的几个步骤,即完成了插件程序集的注册、步骤的注册以及映像Image的注册。下面即开始进行测试,看看是否能够满足业务要求,如果出现了错误需要进行调试等等内容,在后续章节中再进行介绍。

MS CRM 2011的自定义和开发(11)——插件(plugin)开发(三)的更多相关文章

  1. MS CRM 2011的自定义和开发(11)——插件(plugin)开发(四)

    http://www.cnblogs.com/StoneGarden/archive/2012/02/08/2343294.html MS CRM 2011的自定义和开发(11)——插件(plugin ...

  2. MS CRM 2011的自定义和开发(11)——插件(plugin)开发(一)

    http://www.cnblogs.com/StoneGarden/archive/2012/02/02/2336147.html MS CRM 2011的自定义和开发(11)——插件(plugin ...

  3. MS CRM 2011的自定义和开发(11)——插件(plugin)开发(二)

    http://www.cnblogs.com/StoneGarden/archive/2012/02/06/2339490.html MS CRM 2011的自定义和开发(11)——插件(plugin ...

  4. 【Mybtais】Mybatis 插件 Plugin开发(一)动态代理步步解析

    需求: 对原有系统中的方法进行'拦截',在方法执行的前后添加新的处理逻辑. 分析: 不是办法的办法就是,对原有的每个方法进行修改,添加上新的逻辑:如果需要拦截的方法比较少,选择此方法到是会节省成本.但 ...

  5. Android组件化和插件化开发

    http://www.cnblogs.com/android-blogs/p/5703355.html 什么是组件化和插件化? 组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Modul ...

  6. YYDS: Webpack Plugin开发

    目录 导读 一.cdn常规使用 二.开发一个webpack plugin 三.cdn优化插件实现 1.创建一个具名 JavaScript 函数(使用ES6的class实现) 2.在它的原型上定义 ap ...

  7. CRM 2011 开发中遇到的问题小结

    1.将Retrive 方法改成 RetrieveMultiple时 如果指定的ColumnSet 没有指定主键(entiryname+id),要显示增加实体的主键.否则在调用 Retrieve方法时返 ...

  8. Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法(转)

    本篇文章,介绍Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法. RetreiveMultiple方法,用于获取实体的多个实例,该方法的签名如下 ...

  9. Microsoft Dynamics CRM 2011 安装完全教程

    作者:卞功鑫,转载请保留.http://www.cnblogs.com/BinBinGo/p/4302612.html 环境介绍 WINDOWS 2008 R2 Datacenter Microsof ...

随机推荐

  1. AIO、NIO、BIO

    AIO:异步非阻塞 NIO:同步非阻塞 BIO:同步阻塞 (1)同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 (2)异步 指用户进程触发IO操作以后便开始做自己的事情,而当I ...

  2. 安装GD库解决ThinkPHP 验证码Call to undefined function Think\imagecreate()出错

    在php中imagecreate函数是一个图形处理函数,主要用于新建一个基于调色板的图像了,然后在这个基础上我们可以创建一些图形数字字符之类的,但这个函数需要GD库支持,如果没有开启GD库使用时会提示 ...

  3. ZMMR106-批量更新PO交货日期

    ************************************************************************ Title : ZMMR106 ** Applicat ...

  4. 精美的HTML5 Loadding页面

    以前我们大部分的Loading动画都是利用gif图片实现的,这种图片实现Loading动画的方法虽然也很不错,但是作为HTML5开发者来说,如果能利用HTML5和CSS3实现这些超酷的Loading动 ...

  5. leetcode 136. Single Number ----- java

    Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...

  6. JavaWeb学习记录(二十四)——获取插入数据后,自动生成的id值

    public Integer insertObjects(final Goods entity) { // 定义sql语句        final String sql1 = "inser ...

  7. poj3660 最短路/拓扑序

    题意:有n头牛,为了给牛排顺序,给出了牛之间的胜负关系,具有传递性,问给出的胜负关系是否可以给这些牛排出唯一的顺序. 其实是个拓扑排序问题,牛的胜负关系就是有向边,然后判断是否有唯一的拓扑序就行.当然 ...

  8. 第九章 C语言在嵌入式中的应用

    上章回顾 编码的规范和程序版式 版权管理和申明 头文件结构和作用 程序命名 程序注释和代码布局规范 assert断言函数的应用 与0或NULL值的比较 内存的分配和释放细节,避免内存泄露 常量特性 g ...

  9. 《苹果开发之Cocoa编程》键-值编码和键-值观察

    一.KVC 键-值编码(Key - Value Coding, KVC)是通过变量名的读取和设置变量值的一种方法,将字符串的变量名作为key来引用.NSObject定义了两个方法(KVC方法)用于变量 ...

  10. 15款Chrome浏览器插件让设计师告别拖延症

    秋高气爽,分享一大波有效帮助设计师提高工作效率的Chrome浏览器扩展程序! 高效是另一种王道 无论是在工作中,还是在生活中,有些词我们说来就满满正能量,而另外一些话提起就很沮丧,后者如拖延症,前者如 ...