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模式开发。
62 0
|
供应链 小程序 Java
erp系统 | crm系统 | mes系统 | wms系统小程序等定制开发部署
随着近年来国家要求的企业数字化信息化转型,越来越多的企业用上了erp系统。erp系统又分为成品的系统和定制化系统,部分企业不满足于成品系统的功能,而在某些领域深入挖掘。这类深入挖掘的软件系统就只能通过定制化来实现。
|
程序员 开发工具 数据库
企业自己如何快速开发一个简单实用的CRM客户管理系统?
CRM软件通常都有专门的软件厂商提供的商业版,但也有不少企业自行开发的版本。如果你对CRM足够了解,你就知道CRM软件在市场上有开源的版本,开源版的有基本架构,企业可以根据其架构自行搭建开发CRM软件,不过一般只有个别特大型企业和敏感性单位会自行开发。
企业自己如何快速开发一个简单实用的CRM客户管理系统?
|
3月前
|
搜索推荐 数据库 UED
CRM系统源码|客户管理系统源码开发
CRM系统通过提供个性化的用户体验、提高生产力、改善客户体验和增加销售额来助力企业成长。集成CRM能自动化数据输入,减少管理时间,提高销售代表的效率。此外,CRM还能增强客户互动,降低跳出率,增加透明度,确保整个公司的协调合作。
63 5
|
4月前
|
机器学习/深度学习 安全 搜索推荐
中国CRM市场深度解析:本土化定制开发的领军厂商与未来趋势
国内CRM软件企业正面临日益增长的本土定制需求,这不仅考验服务商的综合水平,也推动了市场的快速发展。本文将深入解析中国CRM市场的现状,探讨领军厂商的优势,并预测未来趋势,包括智能化、集成化、本土化与国际化并行及云服务模式的普及。
|
9月前
|
安全 数据挖掘 数据安全/隐私保护
CRM软件定制开发公司 CRM管理系统开发
随着企业对于客户关系管理(CRM)系统的需求日益增长,市场上涌现出了众多CRM系统。然而,由于每个企业的业务需求和流程都存在差异,因此定制化的CRM系统成为了企业更好的选择。那么,在众多的CRM定制开发公司中,哪家更好呢?以白码CRM为例,我们将探讨其优势和特点。
|
6月前
|
人工智能 搜索推荐 数据挖掘
中国CRM市场深度解析:本土化定制开发的领军厂商与未来趋势
在数字化转型的大潮中,客户关系管理系统(CRM)已成为企业增强竞争力和服务质量的关键工具。鉴于中国市场独特的文化背景和商业环境,高度定制化的CRM解决方案显得尤为重要。本文深入剖析了中国CRM市场的现状及其未来发展走向,同时重点介绍了销售易CRM、纷享销客等领军厂商如何通过深入理解本土需求、提供贴合国情的产品和服务来助力企业成长。这些解决方案不仅强化了客户互动的亲切感和有效性,还确保了数据的安全与合规,为企业提供了强大的竞争优势。随着人工智能、大数据等前沿技术的应用,未来的CRM系统将更加智能、高效,为企业创造更多价值。
|
数据挖掘
客户关系管理系统(CRM)开发的意义
随着社会快速发展,各大企业的业务越来越广,客户关系管理成为一项重要的工作。CRM客户管理系统能够帮助企业以最优的效率管理客户资源,了解公司业务情况,深受企业喜爱。 CRM系统开发对于企业的意义 1. 传递业务经验,规范业务流程 通过CRM软件,可以把企业优秀销售人员管理客户的流程整理出来,通过系统来优化到业务流程中,从而使得每个人员都能够掌握最好的销售流程。 2. 提升销售项目管理能力和成单率 通过CRM软件,可以给企业销售管理流程设定关键管理点,促使销售管理者能够及时提供相关支持,帮助销售人员更好的管理销售流程,提升客户满意度和成单率。 3. 减少培训工作 CRM系统规范了销售
|
移动开发 运维 监控
低代码开发云平台源码,支持多种企业应用场景,快速构建CRM、ERP、OA、BI、IoT、大数据应用程序
基于 moleculer 微服务架构开发,提供微服务的应用开发、配置管理、服务注册与发现、服务认证与授权、服务网关、服务监控、统一日志分析等,提供微服务应用的开发、部署、监控、运维等应用生命周期管理。
174 0
低代码开发云平台源码,支持多种企业应用场景,快速构建CRM、ERP、OA、BI、IoT、大数据应用程序
|
NoSQL 测试技术 PHP
CRM系统源码PHP开发
在竞争激烈的市场中,公司需要与客户保持积极的关系。一个好的CRM(客户关系管理)系统可以帮助公司满足客户,研究将探索建立有效的CRM以满足客户的不同方法和技术。目的是检查客户关系管理 (CRM) 在保留和满足客户方面的有效性。研究表明,客户关系管理对客户满意度有显着影响,且两个变量均呈正相关关系。公司使其 CRM 变得强大和可靠,客户将更加满意并留住公司。