MS CRM 2011 插件(plugin)的快速开发 -- 创建模板

简介:

如果你开发过很多MS CRM的插件的话,相信你一定会发现,如果每一次开发插件都从头做起的话,你会做很多重复性的工作。如果你发现你每天做着重复性的工作,你就要考虑怎样才能将重复降到最低,理想的情况就是只做一次。

开发CRM的插件(当然要使用Visual Studio)你需要做很多”准备性的工作”,比如添加引用,给插件签名。这些”准备性的工作”也就是重复性的工作,非常浪费时间。一个好的解决办法,就是创建一个你自己的插件模板。在这篇文章中,我为大家介绍两个方面的经验:一是如何建立一个CRM的插件,二是如何在Visual Studio中建立项目模板。

我使用的是Visual Studio 2010。首先创建一个新的Class Library项目,我们命名它为 mycompany.entity.plugin.template

接下来我们将我们常用到的两个assembly添加到解决方案中,Microsoft.Crm.Sdk.Proxy.dll与Microsoft.Xrm.Sdk.dll。这两个文件,你可以在sdk\bin文件夹中找到。

image

然后我们将这两个assembly添加到引用中。并且还有另外两个引用System.Runtime.Serialization和System.ServiceModel。

image

接下来,我们需要给插件签名。通常你的公司应该使用统一的签名文件,你可以去问一下你的项目经理。如果他不知道的话,那很遗憾,你们的公司不太正规。你只能自己生成一个签名文件了。

image

然后我们删除Class1.cs这个文件,创建你自己的类文件,我这里命名它为Plugin.cs,当然你可以命名它为其他你喜欢的文件名。

image

Plugin.cs的内容如下。不要忘记修改你的命名空间和类名。

复制代码
using System.Linq; 
using System.Text; 
using Microsoft.Xrm.Sdk; 
using System.ServiceModel;

namespace mycompany.entity.plugin.template 
{ 
    public class Plugin : IPlugin 
    { 
        #region IPlugin Members

        public void Execute(IServiceProvider serviceProvider) 
        { 
            // Obtain the execution context from the service provider. 
            IPluginExecutionContext context = 
                (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            // Get a reference to the organization service. 
            IOrganizationServiceFactory factory = 
                (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); 
            IOrganizationService service = factory.CreateOrganizationService(context.UserId);

            // Get a reference to the tracing service. 
            ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));

            try 
            { 
                if (context.MessageName == "Create") 
                { 
                    Entity entity = (Entity)context.InputParameters["Target"]; 
                    
                    //********************* 
                    //add your code here 
                    //********************* 
                } 
            } 
            catch (FaultException<OrganizationServiceFault> ex) 
            { 
                throw new InvalidPluginExecutionException("An error occurred in the plug-in.", ex); 
            } 
            catch (Exception ex) 
            { 
                tracingService.Trace("Error: {0}", ex.ToString()); 
                throw; 
            } 
        }

        #endregion 
    } 
}
复制代码

到这里我们的模板基本上建好了,接下来最关键的一步就是将它导出为模板。File –> Export Template

image

image

image

到这里模板就已经完全建好了。我们检验一下,重新打开Visual Studio,新建项目,你看到了我们的模板项目已经在列表里了。你只需要给出一个新的项目名,其他一切重复性的工作就不用再做了,是不是效率提高了很多?

分类:  Dynamics CRM, CRM C#









本文转自JF Zhu博客园博客,原文链接:  http://www.cnblogs.com/jfzhu/archive/2012/09/25/2701900.html  ,如需转载请自行联系原作者



相关文章
|
Java 关系型数据库 MySQL
JSP 客户管理系统(CRM)myeclipse开发mysql数据库BS模式java编程网页结构
JSP 客户管理系统(CRM)是一套完善的eb设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发系统主要采用B/S模式开发。
177 0
|
程序员 开发工具 数据库
企业自己如何快速开发一个简单实用的CRM客户管理系统?
CRM软件通常都有专门的软件厂商提供的商业版,但也有不少企业自行开发的版本。如果你对CRM足够了解,你就知道CRM软件在市场上有开源的版本,开源版的有基本架构,企业可以根据其架构自行搭建开发CRM软件,不过一般只有个别特大型企业和敏感性单位会自行开发。
企业自己如何快速开发一个简单实用的CRM客户管理系统?
|
供应链 小程序 Java
erp系统 | crm系统 | mes系统 | wms系统小程序等定制开发部署
随着近年来国家要求的企业数字化信息化转型,越来越多的企业用上了erp系统。erp系统又分为成品的系统和定制化系统,部分企业不满足于成品系统的功能,而在某些领域深入挖掘。这类深入挖掘的软件系统就只能通过定制化来实现。
|
8月前
|
前端开发 NoSQL 关系型数据库
如何开发CRM系统中的产品管理板块(附架构图+流程图+代码参考)
本文深入解析了CRM系统中产品管理模块的设计与实现,涵盖系统架构、业务流程、核心代码及落地建议,助力企业构建高效的产品管理体系。
|
8月前
|
数据可视化 数据挖掘 BI
如何开发CRM系统中的薪酬管理板块(附架构图+流程图+代码参考)
本文介绍如何在CRM系统中高效搭建薪酬管理模块,涵盖销售目标制定、绩效系数设置、薪酬计算及开发技巧,助力企业实现薪酬管理的数字化与自动化。
|
8月前
|
数据库 数据安全/隐私保护 UED
如何开发CRM系统中的订单管理板块(附架构图+流程图+代码参考)
CRM系统中的订单管理板块是企业数字化转型的关键工具,能够高效管理客户订单、提升销售效率和客户满意度。本文详解订单管理的功能设计、业务流程、开发技巧及代码实现,助力企业优化订单流程、提高业绩。
|
8月前
|
数据库
如何开发CRM系统中的财务管理板块(附架构图+流程图+代码参考)
客户关系管理(CRM)系统中的财务管理模块对企业运营至关重要。它不仅提升工作效率,还能优化销售流程、确保财务数据准确记录。本文详解如何在CRM中搭建财务管理板块,涵盖开票申请、回款单处理、业务流程设计、开发技巧及注意事项,助力企业打造高效财务管理解决方案。
|
8月前
|
存储 缓存 数据可视化
如何开发CRM系统中的客户管理板块(附架构图+流程图+代码参考)
本文深入解析CRM系统中客户管理模块的开发,涵盖功能设计、业务流程、技术实现及代码参考,助力开发者构建高效客户管理系统。
|
8月前
|
机器学习/深度学习 算法 API
如何开发CRM系统中的商机管理板块(附架构图+流程图+代码参考)
CRM系统中的商机管理板块是用于记录、跟踪和管理潜在销售机会的关键模块。它帮助企业捕捉客户需求,评估商机价值,并通过科学的流程推动商机转化,从而提高销售效率与业绩。本文将深入解析商机管理的核心功能、业务流程及开发实现,助力企业构建高效的CRM系统。
|
搜索推荐 数据库 UED
CRM系统源码|客户管理系统源码开发
CRM系统通过提供个性化的用户体验、提高生产力、改善客户体验和增加销售额来助力企业成长。集成CRM能自动化数据输入,减少管理时间,提高销售代表的效率。此外,CRM还能增强客户互动,降低跳出率,增加透明度,确保整个公司的协调合作。
361 5