这一篇的内容,是关于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. Kubernetes的DaemonSet(下篇)

    用Daemon Pod来进行通信 使用Pod来再DaemonSet中通信的手段有: 推的方式:在DaemonSet中的Pod会被配置成发送更新到如状态数据库这样的服务.这些都没有客户端. IP+端口方 ...

  2. 整合X-Admin前端框架改造ABP

    “站在巨人的肩膀上”,这样一来,不要万事亲恭,在值得的方向上节约时间,毕竟人生就这么一次.在接触ABP以来,一直想花点时间整合LayUI前端框架到ABP中,进而能够逐渐打磨出一套适合自己的框架,开发习 ...

  3. 非常贴心的轮子 FreeSql

    FreeSql 项目从2018年11月28日开发至今,版本已发布至 v0.3.12,版本规则:年数-月-日-当日版本号.目前主要包括 FreeSql.FreeSql.Repository 两个项目的维 ...

  4. 无敌简单快速的文件服务器sgfs

    前言 想要构建一个Linux文件服务器?看看下面几个要求是不是你想要的? 1.只需要单节点部署就够了 2.部署启动简单,下载之后,一键启动,一键关闭 3.不需要任何其他的依赖安装,而且运行时占用内存资 ...

  5. 程序员如何巧用Excel提高工作效率 第二篇

    之前写了一篇博客程序员如何巧用Excel提高工作效率,讲解了程序员在日常工作中如何利用Excel来提高工作效率,没想到收到很好的反馈,点赞量,评论量以及阅读量一度飙升为我的博客中Top 1,看来大家平 ...

  6. python3 Flask -day1

    window 10  python 3 安装flask 首先打开cmd命令执行窗口切换到Python安装目录的Script,输入pip出现以下页面 这里我们使用virtualenv虚拟开发环境 为什么 ...

  7. Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮

    前言 之前写过屏蔽系统导航栏功能的文章,具体可看Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar 在某些特殊定制的版本中要求 ...

  8. Android 初次进入默认不弹出软键盘

    [遇到问题] 初次进入某个界面时,当页面中有EditText ,会自动聚焦并弹出软键盘. [解决方法] getWindow().setSoftInputMode(WindowManager.Layou ...

  9. gitbook 入门教程之快速体验

    本文主要介绍三种使用 gitbook 的方式,分别是 gitbook 命令行工具,Gitbook Editor 官方编辑器和 gitbook.com 官网. 总体来说,三种途径适合各自不同的人群,找到 ...

  10. this指针的初运用

    this一般运用场景: 1.位于函数中,谁调用指向谁 var make = "Mclaren"; var model = "720s" function ful ...