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. Spark延长SparkContext初始化时间

    有些应用中可能希望先在driver上运行一段java单机程序,然后再初始化SparkContext用集群模式操作java程序返回值.从而避免过早建立SparkContext对象分配集群资源,使资源长时 ...

  2. archlinux安装图形界面

    安装xorg 检查显卡驱动 $ lspci | grep VGA install X server wiki Then use the $ startx to start the X server, ...

  3. tyvj 1067 dp 两次LIS(nlogn)

    P1067 合唱队形 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2004 提高组 第三道 描述     N位同学站成一排,音乐老师要请其中的(N ...

  4. 转:db2 iptables相关用法(2)

    Centos 6 iptables 配置 Ben 2011/12/24 [root@localhost ben.liu]# service iptables status Table: filter ...

  5. FZU 1343 WERTYU --- 水题

    FZU 1343 题目大意:手放在键盘上时,稍不注意就会往右错一位.这样Q就会输入成W,输入J就会变成K 给定一串大写敲错后输入,输出正确的输入(输入保证合法,如输入中不会出现Q,A,Z): 解题思路 ...

  6. 查看PHP的配置信息

    查看PHP的配置信息其实一个函数就搞定了. 首先在服务器的根目录建立phpinfo.php文件. 然后打开此文件输入以下内容 <?php phpinfo(); ?> 保存此文件之后在浏览器 ...

  7. 越狱Season 1-Episode 19: The Key

    Season 1, Episode 19: The Key -Kellerman: WeusedtohaveaGreatDane, Dane: 丹麦大狗 我们以前有一只大丹犬 bigandwild. ...

  8. [AHOI 2006][BZOJ 1269]文本编辑器editor

    好吧,我承认这是我用来刷随笔数的喵~ 这是一道 splay 裸题,但还是有想本傻 X 一样根本不会写 splay 的,于是乎又用 treap 水过了 splay 的常数我还是知道的,所以真是不知道那些 ...

  9. log tree(merge)

    http://www-users.cs.umn.edu/~he/diff/p256-severance.pdf http://www.eecs.harvard.edu/~margo/cs165/pap ...

  10. Articles Every Programmer Must Read

    http://javarevisited.blogspot.sg/2014/05/10-articles-every-programmer-must-read.html Being a Java pr ...