论 微服务 和 Entity Framework 对 数据 的 割裂

微服务 的 本质 是 面向对象,

微服务 是 面向对象 对 数据中心 发起的挑战,

在 微服务 架构下, “数据为中心” 的 传统架构 被 严重 割裂,

微服务 的 先天矛盾, 是 对象 和 数据 的 矛盾 。

从 对象 和 数据 的 矛盾, 我们 可以再引出 “对象 和 数据 的 第一次 战争”,  即  O-R  Mapping  ,

或者说 各种  ORM  框架 的 大繁荣 时期 和 历程  。

Entity Framework ,  是 ORM 发展 到 巅峰 的 产物  。

Entity Framework (以下 简称  EF) 的 目的 是 建立一个 抽象层, 这个 抽象层 以 纯粹 的 对象 的 方式 访问数据,

取代 直接访问数据 的 方式 (如 Sql) 。

这可能吗 ?

所以, EF 和 微服务 一样, 对 数据 造成了 严重 的 割裂,

数据割裂 带来 的 结果 就是 效率 低下 。

开发效率 低下, 运行效率 低下, 维护效率 低下, 扩展效率 低下, 应对变化 的 效率 低下  。

可以说, 微服务 和  EF  是 这种 用对象割裂数据  思想 的 两个 代表 。

对象, 只能 是 访问数据 的 辅助, 不能 取代 数据 的 地位 。

我认为, 未来,  微服务 和 EF  并不会是 业务系统 开发 / 架构 的 唯一的路,

还会出现一条 和 微服务 EF 相对 的 道路, 就是 以 数据为中心 , 以 面向对象 为 设计 的 业务系统 开发/架构   之路 。

这条道路, 看起来 富有 “复古”之风, 但, 复古之美 在于 简洁之美 。

复古 而 新生 。

相对于 微服务, 我提倡 SOA 。

我认为 大力 发展 SOA ,  比 微服务 的 意义 更大 。

原文地址:https://www.cnblogs.com/KSongKing/p/10124126.html

时间: 2024-08-01 18:47:54

论 微服务 和 Entity Framework 对 数据 的 割裂的相关文章

Entity Framework 丢失数据链接的绑定,在已绑好的EDMX中提示“Choose Your Data Connection”

早先做的一个练手的项目中, 使用到了Entity framework . 最近碰到一个问题,在edmx 里面选择“Update model from Database” 的时候提示了 “Choose Your Data Connection” 的数据库链接选择画面. 出现这个界面的话, 如果还继续走下去, 重新选择项目的DB connection的话, 原先已经加载到edmx的表,store procedure 等等 可能都需要删掉 ,再重新再加载一次. 表少点还好说, 多的话,就挺要命的. 花

Entity framework 常用数据注解

命名空间: System.ComponentModel.DataAnnotations Key 该列为主键 [DatabaseGenerated(DatabaseGeneratedOption.None)] 指定该列不从数据库中生成 [Required] [Required(ErrorMessage = "不能为空")] 该列不能输入空值 [MaxLength(10, ErrorMessage="BloggerName 必须在 10 个字符以下"),MinLengt

Entity Framework 4 数据事务操作

利用数据库链接进行事务操作 var db = ConnectionHelper.GetConn(ConnectionType.Write);//获取上下文 var conn = db.Connection;//取出数据库链接 conn.Open();//打开链接 using (var trans = conn.BeginTransaction()) 开启事务 { ServiceStationEntities db = null;            db = new ServiceStatio

微服务开发中的数据架构设计

本文来自作者 陈伟荣 在 GitChat 分享的文章[微服务开发中的数据架构设计] 前言 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合.业务的灵活调整组合以及系统的高可用性.为业务创新和业务持续提供了一个良好的基础平台.本文分享在这种技术架构下的数据架构的设计思想以及设计要点,本文包括下面若干内容. 微服务技术框架中的多层数据架构设计 数据架构设计中的要点 要点1:数据易用性 要点2:主.副数据及数据解耦 要点3:分库分表

Spring Boot、微服务架构和大数据

一文读懂 Spring Boot.微服务架构和大数据治理三者之间的故事 https://www.cnblogs.com/ityouknow/p/9034377.html 微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物.互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况下,如何从系统架构的角度出发,构建灵活.易扩展的系统,快速应对需求的变化:同时,随着用户的增加,如何保证系统的可伸缩性.高可用性,

深入了解Entity Framework框架及访问数据的几种方式

一.前言 1.Entity Framework概要 Entity Framework是微软以ADO.NET为基础所发展出来的对象关系映射(O/R Mapping)解决方案.该框架曾经为.NET Framework的一部分,但Version 6之后从.NET Framework分离出来,可通过NuGet获取. Entity Framework利用抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (Entity),而数据字段都转换为属性 (Property),关系则转换为结合属性 (Ass

使用Spring Boot创建微服务

过去几年以来,"微服务架构"的概念已经在软件开发领域获得了一个稳定的基础.作为"面向服务架构"(SOA)的一个继任者,微服务同样也可以被归类为"分布式系统"这一类,并且进一步发扬了SOA中的许多概念与实践.不过,它们在不同之处在于每个单一服务所应承担的责任范围.在SOA中,每个服务将负责处理广范围的功能与数据领域,而微服务的一种通用指南则认为,它所负责的部分是管理一个单独的数据领域,以及围绕着该领域的相关功能.使用分布式系统方式的目的是将整体性的

使用Netsil监控Kubernetes上的微服务

ubernetes是容器编排和调度领域的王者,它击败了竞争对手Docker Swarm和Apache Mesos,开启了闪耀的未来,微服务可以自修复,可以自动扩展,可以跨zone,region甚至跨云供应商进行federate.在这样的云原生应用程序的新纪元里,能够以简单的方式洞察服务之间是如何交互的变得日益重要--这可和大海捞针般大范围寻找导致性能问题的某个特定的原因是不一样的. 我们花了些时间研究Netsil并且将其解决方案打包成原生的Kubernetes Deployment.Netsil

微服务(Microservice)那点事

原文出处: 云栖社区 WHAT – 什么是微服务 微服务简介 这次参加JavaOne2015最大的困难就是听Microservice相关的session,无论内容多么水,只要题目带microservice,必定报不上名,可见Microservice有多火.最喜欢其中一页.关于这个典故,可以参考this,此图适用于一切高大上的名字——技术有SOA,Agile,CLOUD,DevOps等等,古代有道,气,八卦等等.此类名词的最大特点就是 一解释就懂,一问就不知,一讨论就打架. 微服务的流行,Mart