论 微服务 和 Entity Framework 对 数据 的 割裂
微服务 的 本质 是 面向对象,
微服务 是 面向对象 对 数据中心 发起的挑战,
在 微服务 架构下, “数据为中心” 的 传统架构 被 严重 割裂,
微服务 的 先天矛盾, 是 对象 和 数据 的 矛盾 。
从 对象 和 数据 的 矛盾, 我们 可以再引出 “对象 和 数据 的 第一次 战争”, 即 O-R Mapping ,
或者说 各种 ORM 框架 的 大繁荣 时期 和 历程 。
Entity Framework , 是 ORM 发展 到 巅峰 的 产物 。
Entity Framework (以下 简称 EF) 的 目的 是 建立一个 抽象层, 这个 抽象层 以 纯粹 的 对象 的 方式 访问数据,
取代 直接访问数据 的 方式 (如 Sql) 。
这可能吗 ?
所以, EF 和 微服务 一样, 对 数据 造成了 严重 的 割裂,
数据割裂 带来 的 结果 就是 效率 低下 。
开发效率 低下, 运行效率 低下, 维护效率 低下, 扩展效率 低下, 应对变化 的 效率 低下 。
可以说, 微服务 和 EF 是 这种 用对象割裂数据 思想 的 两个 代表 。
对象, 只能 是 访问数据 的 辅助, 不能 取代 数据 的 地位 。
我认为, 未来, 微服务 和 EF 并不会是 业务系统 开发 / 架构 的 唯一的路,
还会出现一条 和 微服务 EF 相对 的 道路, 就是 以 数据为中心 , 以 面向对象 为 设计 的 业务系统 开发/架构 之路 。
这条道路, 看起来 富有 “复古”之风, 但, 复古之美 在于 简洁之美 。
复古 而 新生 。
相对于 微服务, 我提倡 SOA 。
我认为 大力 发展 SOA , 比 微服务 的 意义 更大 。
有关 SOA , 可以 参考 我写的 另外一篇文章 《谈谈 SOA》 https://www.cnblogs.com/KSongKing/p/10133963.html
论 微服务 和 Entity Framework 对 数据 的 割裂的更多相关文章
- Entity Framework  CodeFirst数据迁移
		前言 紧接着前面一篇博文Entity Framework CodeFirst尝试. 我们知道无论是“Database First”还是“Model First”当模型发生改变了都可以通过Visual ... 
- .NET Core微服务之基于MassTransit实现数据最终一致性(Part 2)
		Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.案例结构与说明 在上一篇中,我们了解了MassTransit这个开源组件的基本用法,这一篇我们结合一个小案例来了解在ASP.NET C ... 
- Entity Framework 插入数据 解决主键非自增问题
		http://blog.csdn.net/educast/article/details/8632806 与Entity Framework相伴的日子痛并快乐着.今天和大家分享一下一个快乐,两个痛苦. ... 
- .NET Core微服务之基于MassTransit实现数据最终一致性(Part 1)
		Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.预备知识:数据一致性 关于数据一致性的文章,园子里已经有很多了,如果你还不了解,那么可以通过以下的几篇文章去快速地了解了解,有个感性认 ... 
- ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
		一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ... 
- ASP.NET Core 入门笔记9,ASP.NET Core + Entity Framework Core 数据访问入门
		一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ... 
- Apache Cassandra——可扩展微服务应用程序的持久数据存储
		通过使用微服务,团队可以更快地响应变化,而无需改动整个应用程序.利用微服务,开发团队可以构建出具有鲁棒性和可扩展性的系统,从而适应当今应用程序的需求. 然而,使用微服务也带来了一系列挑战.在本文中 ... 
- Entity Framework 丢失数据链接的绑定,在已绑好的EDMX中提示“Choose Your Data Connection”
		早先做的一个练手的项目中, 使用到了Entity framework . 最近碰到一个问题,在edmx 里面选择“Update model from Database” 的时候提示了 “Choose ... 
- Entity Framework   Migrations 数据迁移
		在使用Entity Framework 过程中,经常会遇到需要变更model 的状况,此时可以使用Migrations ,将每次变更记录以便后续更换机器或是运行在生产环境,持久层可保持一致. 在Pac ... 
随机推荐
- DevExpress WinForms v18.2新版亮点(二)
			行业领先的.NET界面控件2018年第二次重大更新——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WinForms v1 ... 
- Codeforces Round #496 (Div. 3 ) E1. Median on Segments (Permutations Edition)(中位数计数)
			E1. Median on Segments (Permutations Edition) time limit per test 3 seconds memory limit per test 25 ... 
- php优秀框架codeigniter学习系列——异常和错误处理机制
			这篇介绍下CI框架的异常和错误处理机制. 在入口文件index.php中,根据设置的环境参数设置error_reporting的范围,和是否显示错误. 在CI初始化程序CodeIgniter.php中 ... 
- linux系统中对SSD硬盘优化的方法
			在测试虚拟机往分布式存储中写数据的最大性能时,做的一些系统修改 1.ext4文件系统在SSD硬盘是最快的 2.查看当前系统支持的IO调度算法 dmesg | grep -i scheduler 3.查 ... 
- springsecurity的remember me
			基于持久化的token的方法 实现原理:将生成的 token 存入 cookie 中并发送到客户端浏览器,待到下次用户访问系统时,系统将直接从客户端 cookie 中读取 token 进行认证. 实现 ... 
- select语句的高级应用及实例
			本文介绍的select高级应用主要包括:联合查询.分组查询.嵌套查询和限定查询数目等,与实例对照演示,所使用数据库为sqlite3. 部门表(dept) CREATE TABLE dept( id I ... 
- Java学习笔记32(IO:序列化流)
			对象中的数据 ,以流的形式,写入到文件中保存,过程称为写出对象,对象的序列化 ObjectOutputStream将对象写到序列中,实现序列化 在文件中,以流 的形式,将对象读取出来,过程称为读取对象 ... 
- idea创建maven spring项目,出现的问题
			1.jetty启动后,明明配置文件配置的是 <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId ... 
- HDU1166-敌兵布阵 (线段树)
			题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) ... 
- [转]使用keepalived搭建主备切换环境
			使用keepalived搭建主备切换环境 时间 2016-09-15 08:00:00 cpper 原文 http://cpper.info/2016/09/15/keepalived-for-ma ... 
