发布日期: 一月 1, 2008
Microsoft Dynamics CRM 经特殊设计,能够避免可高度自定义的业务应用程序中的一些常见问题。常见问题之一是用户对系统进行一定程度的自定义后,系统无法升级,从而使用户陷入两难境地。对于这个问题,Microsoft Dynamics CRM 有两种解决方法:
通过元数据驱动的自定义工具提供大部分常用的自定义功能。
要求对附加的基于代码的自定义与核心应用程序进行一定程度的分隔。
|
|
元数据驱动的自定义 |
|
|
代码分隔 |
|
|
使用受支持的方法 |
如本系列中的第一篇文章第 1 部分:自定义的优点所述,可以在应用程序中配置的自定义将存储为元数据,而不会更改应用程序的核心部分。因为用于定义自定义的元数据的结构是已知的,所以您创建的自定义可以升级。
对于较复杂的基于代码的自定义和扩展,Microsoft Dynamics CRM 提供了客户端扩展功能(见第 9 部分:客户端扩展功能)和允许与其他系统集成或“插件或工作流程”中的自定义自动化的 Web 服务。
因为创建自定义的此结构与应用程序相分离,所以不支持直接修改应用程序。绕过此设计的任何操作都可能在实施时引入未知问题。如果通过不支持的方式更改应用程序,升级过程将无法顾及所有可能的因素来实现最佳升级效果。因此,某些自定义类型不受支持。不受支持的自定义的完整列表位于 Microsoft Dynamics CRM SDK 中。此列表汇总了一些不受支持的常见自定义方法:
不得修改 Web 应用程序中的页面,添加到 ISV 文件夹中的文件除外。
不得更改 Microsoft Dynamics CRM 网站的文件和网站设置。
不得直接更改数据库。
不得在表单脚本中引用未记录的 Microsoft Dynamics CRM 表单元素。
不得重复使用安装了 JavaScript 代码的任何现有 Microsoft Dynamics CRM。在升级过程中,此代码可能更改或被覆盖。
不得使用直接 SQL Server 连接直接更新数据库或向数据库添加记录。
请注意,所有陈述都应使用“不得”,而不是“不能”。不存在阻止您执行这些操作的机制。当有人自定义或监督 Microsoft Dynamics CRM 自定义时,最好强制使用支持的自定义方法。
通常都有一个支持的方法可以实现您的目标,而无须使用不支持的自定义。对于以前未使用过 Microsoft Dynamics CRM 的开发人员而言,这可能并不总是最直接的方法,但是,创建支持的解决方案最终将更为划算。
如果使用不受支持的自定义策略,您需要始终具有这样一个计划:可以移除任何不受支持的自定义或对数据的直接更改,恢复到升级之前的受支持状态,或者使用 Microsoft Dynamics CRM 技术支持解决问题。