Plugins 早起的好处是什么?
我正在研究CRM中早期绑定和后期绑定的优缺点。关于这个问题,我有一个好主意,但有些地方我不清楚Plugins 早起的好处是什么?,plugins,dynamics-crm-2011,Plugins,Dynamics Crm 2011,我正在研究CRM中早期绑定和后期绑定的优缺点。关于这个问题,我有一个好主意,但有些地方我不清楚 有人说早投标最快,而晚投标最快。有什么显著差异吗 如何处理自定义实体的早期绑定 如何处理带有自定义字段的默认实体的早期绑定 有很多链接,但我得到的最有用的鼠标是那些。还有其他的指示吗 可能不会。如果您想确定,我建议您运行一些测试并分析结果 然而,这些MSDN文章建议延迟绑定它更快 使用早期绑定类型 当代码必须处理实体和时,请使用Entity类 编写代码时未知的属性In 此外,如果自定义代码与数
编辑。 我通过在CRM中创建帐户(一组200和5000个帐户)对此进行了一些快速分析。它证实了微软提供的信息,在这两次运行中,后期绑定大约快了8.5秒。在很短的时间内,后期绑定速度显著加快—90%。但是,早期绑定速度很快加快,到创建5000条记录时,后期绑定速度仅提高2%
“早期绑定生成器”
)。每次对CRM实体进行更改时,都需要更新实体类型定义(仅当您要使用新属性或实体,或者您已删除当前使用的属性或实体时。您可以使用过期的早期绑定实体类,只要您不设置任何实际不存在的属性的值,这与后期绑定的要求完全相同)IOOrganizationService
中启用早期绑定代理类型。这对于OrganizationServiceProxy
来说很容易,但对于插件,尤其是自定义工作流活动,可能需要执行更多步骤
编辑1-我的测试
下面是我的代码,针对一个相当不活跃的本地开发环境进行测试。请自行测试
使用(var service=TestBase.GetOrganizationServiceProxy())
{
var earlyWatch=新秒表();
var lateWatch=新秒表();
对于(int i=0;i<100;i++)
{
earlyWatch.Start();
var e=new Contact(){FirstName=“Early”,LastName=“BoundTest”
e、 Id=service.Create(e);
早看。停();
lateWatch.Start();
var l=新实体();
l、 LogicalName=“联系人”;
l[“firstname”]=“Late”;
l[“lastname”]=“BoundTest”;
l、 Id=service.Create(l);
迟到的人停下来;
删除(e);
服务。删除(l);
}
var earlyTime=earlyWatch.ElapsedMilliseconds;
var lateTime=lateWatch.ElapsedMilliseconds;
var百分比=earlyWatch.ElapsedTicks/(双)lateWatch.ElapsedTicks;
}
我的两个测试结果(请注意,运行两个测试在统计上并不显著,无法得出任何统计结论,但我认为它们赋予了它权重,因为它实际上并没有那么大
Number Creates | Early (MS) | Late (MS) | % diff (from ticks)
10 | 1242 | 1106 | 12.3%
100 | 8035 | 7960 | .1%