Dynamics 365-关于Solution的那些事(三)
这一篇的内容,是关于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的那些事(三)的更多相关文章
- Dynamics 365-关于Solution的那些事(一)
关于CRM Solution,我准备写两到三篇的博客来做下介绍:包括一些基本信息,超大solution,还有增量更新solution操作等. CRM中的component,都是放在一个名叫Soluti ...
- Dynamics 365-关于Solution的那些事(二)
接着上一篇的说,现在有一个已知前提:Solution的增量特性.然后我们再思考这么一个场景,项目开发过程中,存在多次迭代的情况,每次迭代可能涉及到的solution是同一个,唯一区别的,就是solut ...
- 升级本地部署的CRM到Dynamics 365及部分新特性介绍。
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics 365 Online用户密码三问及其解答
本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复264或者20170903可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...
- 自定义适用于手机和平板电脑的 Dynamics 365(三):显示的实体
您可以启用 适用于手机的 Dynamics 365 和 适用于平板电脑的 Dynamics 365 的有限实体集. 若要查看是否启用了实体,或者要启用实体,请单击“设置”>“自定义”>“自 ...
- Introduction to Microsoft Dynamics 365 licensing
Microsoft Dynamics 365 will be released on November 1. In preparation for that, Scott Guthrie hosted ...
- 为Dynamics 365写一个简单程序实现解决方案一键迁移
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复258或者20170627可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- dynamics 365 AI 解决方案 —— 微软布局
核心提示:微软在 Office365.Azure 云.Dynamics365 上进行人工智能技术的部署,野心不小. 微软在2016年9月宣布组建自己的 AI 研究小组.该小组汇集了超过 5000 名计 ...
- Dynamics 365中极特殊语言的文字搜索结果异常
微软动态CRM专家罗勇 ,回复316或者20190314可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 有些比较少见的问题, ...
随机推荐
- Kubernetes的DaemonSet(下篇)
用Daemon Pod来进行通信 使用Pod来再DaemonSet中通信的手段有: 推的方式:在DaemonSet中的Pod会被配置成发送更新到如状态数据库这样的服务.这些都没有客户端. IP+端口方 ...
- 整合X-Admin前端框架改造ABP
“站在巨人的肩膀上”,这样一来,不要万事亲恭,在值得的方向上节约时间,毕竟人生就这么一次.在接触ABP以来,一直想花点时间整合LayUI前端框架到ABP中,进而能够逐渐打磨出一套适合自己的框架,开发习 ...
- 非常贴心的轮子 FreeSql
FreeSql 项目从2018年11月28日开发至今,版本已发布至 v0.3.12,版本规则:年数-月-日-当日版本号.目前主要包括 FreeSql.FreeSql.Repository 两个项目的维 ...
- 无敌简单快速的文件服务器sgfs
前言 想要构建一个Linux文件服务器?看看下面几个要求是不是你想要的? 1.只需要单节点部署就够了 2.部署启动简单,下载之后,一键启动,一键关闭 3.不需要任何其他的依赖安装,而且运行时占用内存资 ...
- 程序员如何巧用Excel提高工作效率 第二篇
之前写了一篇博客程序员如何巧用Excel提高工作效率,讲解了程序员在日常工作中如何利用Excel来提高工作效率,没想到收到很好的反馈,点赞量,评论量以及阅读量一度飙升为我的博客中Top 1,看来大家平 ...
- python3 Flask -day1
window 10 python 3 安装flask 首先打开cmd命令执行窗口切换到Python安装目录的Script,输入pip出现以下页面 这里我们使用virtualenv虚拟开发环境 为什么 ...
- Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮
前言 之前写过屏蔽系统导航栏功能的文章,具体可看Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar 在某些特殊定制的版本中要求 ...
- Android 初次进入默认不弹出软键盘
[遇到问题] 初次进入某个界面时,当页面中有EditText ,会自动聚焦并弹出软键盘. [解决方法] getWindow().setSoftInputMode(WindowManager.Layou ...
- gitbook 入门教程之快速体验
本文主要介绍三种使用 gitbook 的方式,分别是 gitbook 命令行工具,Gitbook Editor 官方编辑器和 gitbook.com 官网. 总体来说,三种途径适合各自不同的人群,找到 ...
- this指针的初运用
this一般运用场景: 1.位于函数中,谁调用指向谁 var make = "Mclaren"; var model = "720s" function ful ...