由于Dynamics CRM 2011 R8(UR9) 中引入了跨浏览器的功能,在实现这项功能的过程中CRM开发团队引入了大量的代码修改,
对于之前的Javascript在CRM中运行的机制,为了向其他主流浏览器进行靠拢,也不得不进行了必要的修改。
比较常见的是,如之前大量使用的htc文件将不再存在(只有IE在使用htc),取而代之的是使用.js文件等;crmForm等在R8之后也不作为跨浏览器的支持范围。
为了方便的验证当前使用的solution是否存在兼容性问题,微软发布了Custom Code Validation Tool用来辅助客户进行代码检查,找出其中的隐患。
下面就是有关这个工具的一些介绍。
工具下载链接:
Microsoft Dynamics CRM 2011 Custom Code Validation Tool
我认为由几个问题作为切入点能更好的描述这个工具的用途以及怎样发挥作用。
我们可以考虑这样几个问题,如果微软对CRM中Javascript的使用方法进行了修改那么哪些地方可能出现问题?会出现什么问题?怎样使用这个工具发现问题?
从第一个问题着手:哪些地方可能出现问题
总结起来主要包含两个方面,按照其影响程度分成红色级别和蓝色级别。
红色级别:当前solution中的Javascript使用了在跨浏览器修改中删除的不被支持的方法。之前许多CRM的方法使用了只被IE支持的技术。
所有受SDK支持的公共方法都被保留了下来,但是,许多并未列入SDK的内部方法和属性已经不再可用并且从此被移除,所以即使IE中也无法再使用这些方法。
这种类型的被标为红色级别,因为以后所有的浏览器中,他们都不会正常工作。
蓝色级别:使用的Javascript只在IE中通过测试并被支持。这类内容有可能在IE之外的其他浏览器中无法正常工作。
如果想要利用CRM 2011的跨浏览器的功能,就必须舍弃crmForm(v4中的用法),转而使用CRM 2011中引入的Xrm.Page对象。
The Custom Code Validation Tool is a CRM managed solution.
-_-!! Yes, it's testing itself as well..since it has to be imported to the same org you want to test against.
验证范围
将这个solution导入要测试的org,它会检索出所有JavaScript和HTML web resources并将他们列在一个列表中,
选择列表中的项目,相应的内容将会出现在下方的文本框中,如果里面有所谓的红色级别或蓝色级别的内容,
都会相应的标示出来。
还有一点比较好的是,这个工具还会标示出当前方法或属性被使用的次数。影响范围一目了然。
具体的看例子吧。
实例(小邪恶了一把,拿微软自己的ActivityFeeds开刀吧,反正bug那么多就不怕再多找几个错误了,
小小意料之外的是倒也没找出什么标红的方法,只是有几个蓝色的,看了微软自己的solution还是规规矩矩的用SDK里面方法写的)
另外
这个工具也会报假failure哦。所有被注释掉的内容也被列入了统计范围。
小小猜测一下,不会是简单的用字符串来比对,还不处理注释吧,太敷衍有木有,鄙视一下。
引用资料:
2. Microsoft Dynamics CRM 2011 Custom Code Validation Tool ReadMe.docx
一阵松香,那是八大关的绿。 ^_^ enjoy it.