今天看了勇哥的博文“http://luoyong0201.blog.163.com/blog/static/1129305201510153391392/”,又认识到了一种新的连接组织服务的方式,而该篇博文里面讲的东西是SDK中的“Simplified connection to Microsoft Dynamics CRM”章节,像我们这种只把SDK当工具手册偶尔搜索下的人当然不会注意这篇。
该篇介绍的方式是类似于之前我们ADO.NET中经常用的数据库连接字符串形式,通过webconfig或者appconfig来进行配置参数,一行代码搞定相当简洁。
OrganizationService org = new OrganizationService(new CrmConnection("crm"));
配置参数如下 ,其中还有很多的参数像超时时间什么的可以参考SDK中的该章节。
<connectionStrings>
<add name="crm" connectionString="Url=http://CRM:5555/Origin/XRMServices/2011/Organization.svc;Domain=skysoft; Username=administrator; Password="/>
</connectionStrings>
而我日常使用的代码是下面3行
ClientCredentials clientCredentials = new ClientCredentials();
clientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential("administrator", "", "");
IOrganizationService organizationServiceProxy = new OrganizationServiceProxy(new Uri("http://CRM:5555/Origin/XRMServices/2011/Organization.svc"), null, clientCredentials, null);
从代码简洁度上来说我喜欢前者,虽然像这种代码我们平时也是通过ctrl+c、ctrl+v的方式来搞定。
在我验证这段代码是否可行的时候,意外的发现它的执行速度很快,这里的快是相比我以前的老代码而言,如果你和我使用同样的老代码那你应该有所感受。
那么我就做了个简单的执行时间测试,结果却是快的不是一点半点,具体的对比如下图,有兴趣的你自己也可以做下测试。
该链接方式用到了两个命名空间
using Microsoft.Xrm.Client.Services;
using System.Configuration;
前者需要用到SDK中Bin目录下的Microsoft.Xrm.Client.dll,后者就不用说了都知道的。