Dynamics crm Microsoft Dynamics CRM作为软件开发平台?

Dynamics crm Microsoft Dynamics CRM作为软件开发平台?,dynamics-crm,Dynamics Crm,我的组织正处于收购CRM 4.0作为通用软件开发平台的最后阶段。将其出售给我们的公司已说服高层管理人员,CRM将解决我们所有的生产力问题,并使软件开发像点击一样简单。(他们不读布鲁克斯的书。) 我已经接受了无法阻止CRM被强加给美国开发者的事实,我一直在研究如何管理大规模CRM开发的复杂性 到目前为止,我已经确定了需要解决的以下复杂问题: CRM似乎与基本配置管理实践完全不兼容 保持黑盒CRM数据库与外部LOB系统的双向同步是项目成功的关键 在构建大规模CRM应用程序时,我还必须考虑哪些其他复杂

我的组织正处于收购CRM 4.0作为通用软件开发平台的最后阶段。将其出售给我们的公司已说服高层管理人员,CRM将解决我们所有的生产力问题,并使软件开发像点击一样简单。(他们不读布鲁克斯的书。)

我已经接受了无法阻止CRM被强加给美国开发者的事实,我一直在研究如何管理大规模CRM开发的复杂性

到目前为止,我已经确定了需要解决的以下复杂问题:

  • CRM似乎与基本配置管理实践完全不兼容
  • 保持黑盒CRM数据库与外部LOB系统的双向同步是项目成功的关键
  • 在构建大规模CRM应用程序时,我还必须考虑哪些其他复杂性

    CRM作为开发平台有哪些限制


    编辑:这提供了额外的洞察力。

    事务支持

    如果您的应用程序需要底层平台的事务支持,则Dynamics CRM不是正确的选择。原因是当前Dynamics CRM SDK web服务不支持事务

    参考线程如下所示:

    由于您希望使用Dynamics CRM作为平台,这意味着所有业务逻辑都应该使用Dynamics CRM SDK Web服务作为数据访问层。但是想象一下,如果没有事务支持,您作为一个工作单元调用一系列web服务调用,其中一个web服务调用失败。这意味着您可能会遇到数据完整性问题

    配置


    通常我会创建一个名为Configuration的定制实体,它将存储当前CRM应用程序所需的所有相关配置。创建后,您可以使用Dynamics CRM SDK Web Service从配置自定义实体读取所有必要的配置

    我已经使用MS CRM 3.0,现在是4.0。以下是我的看法:

  • 尽可能关注标准最佳实践。不要被CRM正在做什么或想让你做什么弄糊涂

  • 不要害怕打破MS.的“支持”,并在两个主要因素上提出一些警告-贵公司是否会让您跳出框框思考问题,并进行未得到官方支持的定制/集成您是否对.Net、SQL、javascript等足够熟悉,可以通过它们的代码来实现您需要的功能

    我有时会在试图以“受支持”的方式做某件事的时候撞到我的头100次,因为这里对js文件的一个小调整或那里的一个小db修改给了我所需要的东西

  • >P>如果与其他LoB应用程序的常数数据集成是关键的,则应该考虑像Script(第三)这样的工具。这并不便宜,但在与其他LOB应用程序集成时,基本上可以让您获得90%的收益

  • 一般来说,MS CRM在联系人管理方面非常出色,比如跟踪约会、邮件合并等。您是否可以将其用作您的核心人力资源系统。金融系统-可能有点困难。您离it执行联系人管理的核心能力越远,您需要做的定制工作就越多。如果你需要做更多的定制工作,那么如果MS CRM是解决这个问题的正确方法,你应该考虑更多。


  • 我知道您很可能正在部署Dynamics CRM,但这里有几个简单提示:

    • 我会避免做出不受支持的更改,因为最终很难跟踪更改。由于Dynamics CRM允许开发人员制作C#插件并访问web服务,因此通常不需要对任何非琐碎的内容进行不受支持的更改。另外,如果你必须打电话给微软的支持部门,你就不得不对他们隐藏更改。我知道很多人会包括外部javascript文件(jquery等)和其他一些温和的更改,但是当一个不受支持的编辑涉及任何非视觉的内容时,试着在心里阻止自己

    • 看看短语MicrosoftDynamicsXRM,有几本关于这个主题的书非常好,特别好,因为它附带了一些很好的自定义代码,可用于您的CRM

    • 源代码控制您的定制xml,不要让人们接触数据库,还有Google Halan CRM工具,并使用它编写CRM定制和javascript文件的脚本。比编写自定义powershell脚本来完成相同的工作更容易


    请不要再叫它“CRM”。这是一个通用软件类,而不是产品名称。Microsoft在其自己的文献中将其产品称为“Microsoft Dynamics CRM”,而不是Dynamics AX、GP、NAV或SL,后者是其他产品。因此,产品名称是“Microsoft Dynamics CRM”,而不是“CRM”。还有很多其他的CRM,我们不需要其他被MSM劫持的通用词。我们正试图将一个单一的、单一的“一切系统”(人力资源、财务、物流等)分解成多个、松散连接的、分散的系统,并在一个明确定义的服务层上进行讨论。1.在MSCRM上构建人力资源、物流或财务系统是否明智?2.是否可以让两个或多个MSCRM堆栈在SOA中彼此和外部系统共享信息?或者MSCRM是否希望所有连接的实体都位于同一服务器/数据库中?根据您查看的记录/用户数量,可能最容易将其保存在一个MSCRM堆栈中,并使用安全角色和业务单元来分解对不同堆栈的访问。通过这种方式,他们可以轻松地在mscrm世界中共享,因为他们位于同一个db/instance.Re:#2,我要强调的是,人们要真正、真正、真正地尽可能多地保持支持