这一篇的内容,是关于Solution的使用建议的,如果大家有什么实用的建议,欢迎留言讨论。

  一. 版本控制

  Solution是有版本号的,率性的人可能在新建一个solution的时候,直接赋值1.0,就不再管了。但是这里还是简单说下MS风格的版本号,一般是用.分隔的四个数字:主版本号.子版本号.编译版本号.修正版本号。后面两个版本号可选或者互换位置,前面两个必须。建议迭代周期,要做好Solution版本号的设计和管理。这方面的好处不多赘述了,毕竟不管是不是开发,都能想得明白。

  二. 分门别类

  分类其实是为了更好对Solution进行管理。我们知道CRM有不少类型的Components,而在Solution里,如果你把所有的Components都放到一个Solution里,你会发现越到后期,你的Solution就越难维护。那么是不是我把components从数量上简单地拆分开就可以了呢?比如我把很多的workflow,plugin,Entity拆分到多个Solution里。并非如此,这里说的分门别类,一般可以从这几个方面考虑:

  1. component本身的类型

  2. component涉及的业务:包括业务逻辑,业务部门

  3. component的依赖关系

  4. component的数量

  5. component与项目迭代的关联

  现在MS的产品,走的是模块化的设计理念,那么这个模块化,我们应用到Solution里,也是一样适用的。比如你要考虑,哪些Solution可以规划成一个“模块”,如果部署之后,将来客户不要了,可以在不影响当前业务的前提下直接删除(看现在的AppSource里的Solution产品,都是可以在不影响环境结构的前提下,实现Solution的导入和删除的);哪些Solution是属于xx部门的,即使以后Solution有更新,也可以在不会影响其他部门业务的前提下实现更新;哪些Solution对其它的Solution有依赖,而被依赖的Solution是不是设计的比较Common等等。

  三. 下载日志

  一般情况下,Solution导入成功或者失败,最后都会有download log选项。借用这个日志,我们可以准确高效地定位出错的Component以及可能的原因。

  1. 导入失败

  不要用记事本打开下载的log文件,那样你会看到密密麻麻的信息,很不直观。使用Excel打开log,你会发现所有的component信息,状态信息,comments信息都已经有条理的列好了,很方便地就可以找到失败的component,以及失败的描述信息,来帮助我们解决问题。有一点需要注意的是,因为CRM的导入操作就是往数据库里修改数据,那么就会碰到一个让人很无奈的情况:即使你的Solution问题再多,CRM也只会导入一次才暴露一个问题,而不是像有统计列表那样,一次把所有的问题都暴露出来。

  2. 导入成功  

  可能许多人看到CRM显示Solution导入成功,就直接关闭窗口,觉得log可有可无了。在这里,还是建议大家,即使导入成功了,也把log保存下来。有两方面的原因:一方面是即使导入成功了,还可能会有很多的warning信息,有些warning信息甚至会影响后续的操作。比如,你更新一个workflow的Solution,导入虽然成功了,但是你发现为什么workflow activate失败了呢?如果你查看导入log的warning信息,就可能找到一条提示信息“workflow涉及到user在当前环境没有......”。另一方面的原因,是如果以后有一个环境问题是因为当初的这个Solution,还可以当做一个处理问题的依据。

  3. 导入ing

  之所有说导入Solution一般都会下载log的选项,是因为还存在非一般的情况。如果硬件资源不足,或者Solution本身太复杂,可能会出现的情况,是进度条卡在最后的85%左右,然后就再没有反应了。这种情况,可以通过检查Solution的版本号,来确认Solution是否导入成功,当然,这个时候,就不会有下载log的操作了。

Dynamics 365-关于Solution的那些事(三)的更多相关文章

  1. Dynamics 365-关于Solution的那些事(一)

    关于CRM Solution,我准备写两到三篇的博客来做下介绍:包括一些基本信息,超大solution,还有增量更新solution操作等. CRM中的component,都是放在一个名叫Soluti ...

  2. Dynamics 365-关于Solution的那些事(二)

    接着上一篇的说,现在有一个已知前提:Solution的增量特性.然后我们再思考这么一个场景,项目开发过程中,存在多次迭代的情况,每次迭代可能涉及到的solution是同一个,唯一区别的,就是solut ...

  3. 升级本地部署的CRM到Dynamics 365及部分新特性介绍。

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  4. Dynamics 365 Online用户密码三问及其解答

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复264或者20170903可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  5. 自定义适用于手机和平板电脑的 Dynamics 365(三):显示的实体

    您可以启用 适用于手机的 Dynamics 365 和 适用于平板电脑的 Dynamics 365 的有限实体集. 若要查看是否启用了实体,或者要启用实体,请单击“设置”>“自定义”>“自 ...

  6. Introduction to Microsoft Dynamics 365 licensing

    Microsoft Dynamics 365 will be released on November 1. In preparation for that, Scott Guthrie hosted ...

  7. 为Dynamics 365写一个简单程序实现解决方案一键迁移

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复258或者20170627可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  8. dynamics 365 AI 解决方案 —— 微软布局

    核心提示:微软在 Office365.Azure 云.Dynamics365 上进行人工智能技术的部署,野心不小. 微软在2016年9月宣布组建自己的 AI 研究小组.该小组汇集了超过 5000 名计 ...

  9. Dynamics 365中极特殊语言的文字搜索结果异常

    微软动态CRM专家罗勇 ,回复316或者20190314可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 有些比较少见的问题, ...

随机推荐

  1. asp.net core系列 54 IS4用客户端凭据保护API

    一. 概述 本篇开始进入IS4实战学习,从第一个示例开始,该示例是 “使用客户端凭据保护API”,这是使用IdentityServer保护api的最基本场景.该示例涉及到三个项目包括:Identity ...

  2. Python爬虫入门教程 58-100 python爬虫高级技术之验证码篇4-极验证识别技术之一

    目录 验证码类型 官网最新效果 找个用极验证的网站 拼接验证码图片 编写自动化代码 核心run方法 模拟拖动方法 图片处理方法 初步运行结果 拼接图 图片存储到本地 @ 验证码类型 今天要搞定的验证码 ...

  3. 百度病了,必应挂了,Yandex疯了。

    前天一篇<搜索引擎百度已死>的文章火遍了互联网圈.文中作者指出如今的百度搜索首页一大半都是百度自家的产品,比如你搜索特普朗,你会发现第一页的结果分别是:百度百科.贴吧.百家号.百家号.百家 ...

  4. [翻译 EF Core in Action 2.2] 创建应用程序的数据库上下文

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  5. Python:轻量级 ORM 框架 peewee 用法详解(二)——增删改查

    说明:peewee 中有很多方法是延时执行的,需要调用 execute() 方法使其执行.下文中不再特意说明这个问题,大家看代码. 本文中代码样例所使用的 Person 模型如下: class Per ...

  6. Java多线程与并发之面试常问题

    JAVA多线程与并发 进程与线程的区别 进程是资源分配的最小单位,线程是CPU调度的最小单位 所有与进程相关的资源,都被记录在PCB(进程控制块)中 进程是抢占处理机的调度单位:线程属于某个进程,共享 ...

  7. openlayers4 入门开发系列之地图工具栏篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  8. Kindle Windows版本 中文字体修改工具

    近来想要用Windows看Kindle电子书,无奈Windows 版本的Kindle不能修改中文字体,非常难看.把Kindle拉到IDA PRO看了一下,发现Kindle Windows版本的中文字体 ...

  9. 编译Xposed

    Xposed是Android平台上的有名的Hook工具,用它可以修改函数参数,函数返回值和类字段值等等,也可以用它来进行调试.Xposed有几个部分组成: 修改过的android_art,这个项目修改 ...

  10. 试试自行封装AJAX和jQuery中的ajax封装的基本使用

    封装的套路: 1.写一个相对比较完善的用例2.写一个空函数,没有形参,将刚刚的用例直接作为函数的函数体3.根据使用过程中的需求抽象函数 代码记录如下: <script> function ...