惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
H
Help Net Security
小众软件
小众软件
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
Last Week in AI
Last Week in AI
爱范儿
爱范儿
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
博客园 - 【当耐特】
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
博客园_首页
Jina AI
Jina AI
D
Docker
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Security Blog
Microsoft Security Blog
阮一峰的网络日志
阮一峰的网络日志

博客园 - 蓝色游骑兵

利用JavaScript实现简单的下拉菜单 大话权限设计 安全系统的设计 ASP.NET 安全问题的思索 自定义验证器的开发 WinForm 开发 测试驱动开发 异常使用的思考 读UML精髓第三版之感受 使用静态构造函数与使用单件 数据完整性的检查 Acegi安全框架 安全服务的设计思考 ContextAttribute与ContextBoundObject应用开发3 ContextAttribute与ContextBoundObject应用开发2 ContextAttribute与ContextBoundObject应用开发 邮件发送组件的开发完成 验证组件的设计和使用 如何从新开发的程序中提炼服务
MSCRM 的感受
蓝色游骑兵 · 2008-07-21 · via 博客园 - 蓝色游骑兵

这几天看了一下MS的CRM产品,感觉其中使用到的开发架构和开发技术都是非常不错,其中的很多想法非常的有创造性的想法,很多想法我以前从来没有听说过,像什么自定义实体、如何将这些实体与业务插件结合起来、如何与视图、工作流等集成起来。感觉想法非常先进。

但我发现其中只是定义了一个实体的一组标准的操作,目前我还没有看到添加实体的扩展自定义操作,只看到了标准的创建、更新、删除和选取等操作。这样的操作如果在实现基本的业务上可能能够满足要求,但如果需要开发一个有很多自定义业务操作的实体,我想这种操作能否满足要求。

同时其中的插件在这里我想非常的不错,相当于一个职责链和观查者模式的实现,当进行某一操作时,根据对实体和操作的插件进行调用可以触发更多的事件的执行,这相当于将整个业务逻辑代码的AOP实现,这一点非常值得学习。相当于整个实体的业务操作是配置出来的,我想可能在设计时是按以下方式来设计的:

    实现一个业务实体操作的基本插件,用于实现数据库操作和工作流的集成和其它的一些基本的功能。

    再针对于特定实体业务逻辑编写若干的插件,实现特定的业务。

    调用过程中根据注册插件的顺序先执行自定义插件,再调用基本插件完成整个操作。

    我想这一过程肯定是一个有点慢的过程,但如果能够通过相关的信息,将这一组操作通过Emit之类的技术实现为一个动态创建的类,再来调用这个类,我想就能够获取的灵活的业务它高效的运行效率。

同时我想MSCRM解决了开发中的很多个问题包括:业务实体的属性变化问题、业务逻辑它业务流程的变化问题、视图的相关问题。这些问题的变化我们通常都需要通过二次开发来解决,很可能需要修改整个项目来解决,但MSCRM在这里解决得很好,是应当学习和应用的。

但同时我想如果将这个架构和来开发大型的像ERP那样的项目是否可很,特别是增量的开发。先根据需要开发不同的应用程序,后根据不同企业的不同需要布署不同的应用,如:

CRM:客户关系管理

PM(Product Management):产品管理

SM (Sale Management):销售管理

如这三个产品是公司目前的产品,针对于三种不同的用户,

其中的CRM与PM、SM之中都包括有Product,但其中的CRM之中包括有最简单的Product而,PM之中包括有产品最详细的技术资料,那么,当同时为同一家公司部署这三个产品之时,对于这个Product怎么样解决呢,能否相互使用相同的Product呢。或许还需要进行更多的思考。