代码之家  ›  专栏  ›  技术社区  ›  Ryan Michela

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

  •  4
  • Ryan Michela  · 技术社区  · 16 年前

    我的组织正处于获取CRM 4.0作为通用软件开发平台的最后阶段。向我们销售它的公司已经说服了高层管理层,CRM将解决我们所有的生产力问题,使软件开发像点击和点击一样简单。(他们不看布鲁克斯。)

    我已经屈从于我无法阻止CRM被美国开发人员欺负的事实,我一直在研究如何管理大规模CRM开发的复杂性。

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

    1. CRM似乎与基本的配置管理实践完全不兼容。
    2. 保持黑盒CRM数据库与外部LOB系统的双向同步对于项目的成功是非常困难和关键的。

    在构建大型CRM应用程序时,还必须考虑哪些复杂性?

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

    编辑: 这个 topic 提供了更多的洞察力。

    3 回复  |  直到 16 年前
        1
  •  5
  •   brendan    16 年前

    我曾与MS CRM 3.0合作过,现在是4.0,以下是我的看法:

    1. 尽可能关注标准最佳实践。不要对CRM在做什么或希望你做什么感到过度困惑。

    2. 不要害怕打破女士的“支持”,在两个主要因素上提出一些警告——你的公司会让你跳出框框来解决问题,并且进行未得到官方支持的定制/集成吗?-您是否对.NET、SQL、javascript等足够熟悉,能够编织它们的代码并实现您需要的东西?

      有时我为了以一种“支持”的方式做一些事情而绞尽脑汁100次,当这里对一个JS文件进行一个小的调整或者在那里对数据库进行一个小的修改时,我得到了我需要的东西。

    3. 如果与其他LOB应用程序的持续数据集成至关重要,则应考虑使用第三方工具,如scribe。( http://www.scribesoft.com/ )它并不便宜,但在与其他业务线应用程序集成时,基本上可以为您提供90%的支持。

    4. 一般来说,MS CRM擅长联系人管理,比如跟踪约会、邮件合并等。您是否可以将其用作核心人力资源系统?金融系统——可能会更难。你离它的核心能力越远,你就需要做更多的定制工作。如果MS CRM是解决该问题的正确解决方案,那么您需要做的自定义工作越多,就应该考虑的越多。

        2
  •  4
  •   npeterson    15 年前

    我知道您很可能正在部署Dynamics CRM,但只是一些简单的提示:

    • 我会避免进行不受支持的更改,因为最终跟踪更改变得太难了。由于Dynamics CRM允许开发人员制作C插件和访问Web服务,因此通常不需要对任何不重要的内容进行不受支持的更改。另外,如果你不得不打电话给微软的支持,你还得运行轮盘赌来隐藏对微软的改变。我知道很多人会包括外部的javascript文件(jquery等)和其他一些温和的更改,但是当不受支持的编辑涉及到任何非可视的内容时,试着在头脑中停止自己。

    • 看看短语microsoft dynamics xrm,有几本关于这个主题的书非常好, http://www.thecrmbook.com/ 特别好,因为它附带了一些很好的自定义代码,可以与CRM一起使用。

    • 源代码控制你的定制XML,不要让人们接触数据库,也不要让谷歌的Halan CRM工具,并用它来编写CRM定制和javascript文件。比编写自定义PowerShell脚本来完成相同的工作更容易。

        3
  •  2
  •   Community CDub    8 年前

    事务支持

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

    参考线在这里: Does MSCRM web-service support database transactions?

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

    配置

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