架构

领域驱动设计学习

本秂侑毒 提交于 2020-01-02 06:45:41
学习网址: EntityFramework之领域驱动设计实践 - 前言 EntityFramework之领域驱动设计实践(一):从DataTable到EntityObject EntityFramework之领域驱动设计实践(二):分层架构 EntityFramework之领域驱动设计实践(三):案例:一个简易的销售系统 EntityFramework之领域驱动设计实践(四):存储过程,领域驱动的反模式 EntityFramework之领域驱动设计实践(五):聚合 EntityFramework之领域驱动设计实践(六):模型对象的生命周期 - 工厂 EntityFramework之领域驱动设计实践(七):模型对象的生命周期 - 仓储 EntityFramework之领域驱动设计实践(八):仓储的实现(基本篇) EntityFramework之领域驱动设计实践(九):仓储的实现(深入篇) EntityFramework之领域驱动设计实践(十):规约(Specification)模式 EntityFramework之领域驱动设计实践【扩展阅读】:服务(Services) EntityFramework之领域驱动设计实践【扩展阅读】:CQRS体系结构模式 学习心得: respository层(仓储): 不仅仅是进行数据库CRUD操作,且解耦领域模型与技术架构,如果没有仓储层

Restful API 架构与设计参考原则

情到浓时终转凉″ 提交于 2020-01-02 02:14:47
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。REST指的是一组架构约束条件和原则。" 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。 REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力, 更好地使用现有Web标准中的一些准则和约束。虽然REST本身受Web技术的影响很深, 但是理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例。 所以我们这里描述的REST也是通过HTTP实现的REST。 什么是RESTful架构: 每一个URI代表一种资源; 客户端和服务器之间,传递这种资源的某种表现层; 客户端通过四个HTTP动词(GET/POST/PUT/DELETE),对服务器端资源进行操作,实现”表现层状态转化”。 URI 要让一个资源可以被识别,需要有个唯一标识

RESTful 个人理解总结

天大地大妈咪最大 提交于 2020-01-02 02:00:14
REST REST是“REpresentational State Transfer”的缩写,可以翻译成“表现状态转换”. Rest是web服务的一种架构风格; 使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议; 轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一种标准,是一种思想 HTTP协议 HTTP采用简单的请求/响应模式的消息交换旨在实现针对某个Web资源的某种操作。 至于针对资源的操作类型,不外乎CRUD(Create、Retrieve、Update和Delete)而已。 一个HTTP请求除了利用URI标志目标资源之外,还需要通过HTTP方法指名针对资源的操作类型。 HTTP方法:包括GET(查)、POST(增)、PUT(改)、DELETE(删)、HEAD、OPTIONS、TRACE、CONNECTION和PATCH等 Rest架构的主要原则 网络上的所有事物都被抽象为资源 每个资源都有一个唯一的资源标识符 同一个资源具有多种表现形式(xml, json等) 对资源的各种操作不会改变资源标识符 所有的操作都是无状态的 符合REST原则的架构方式即可称为RESTful 为什么会出现Restful? 在Restful之前的操作 :(SOAP Web API采用RPC(面向方法Remote Procedure Call)风格,它采用面向功能的架构

理解RESTful架构

偶尔善良 提交于 2020-01-02 01:56:58
越来越多的人开始意识到, 网站即软件 ,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合, 现在我们必须考虑,如何开发在互联网环境中使用的软件。 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。 一、起源 REST这个词,是 Roy Thomas Fielding 在他2000年的 博士论文 中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。 他这样介绍论文的写作目的: "本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化

理解RESTful架构

蓝咒 提交于 2020-01-02 01:56:33
注:原文出处http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。 一、起源 REST这个词,是 Roy Thomas Fielding 在他2000年的 博士论文 中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。 他这样介绍论文的写作目的: "本文研究计算机科学两大前沿---

REST架构概述

让人想犯罪 __ 提交于 2020-01-02 01:48:01
REST概述   REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。 原则条件   REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。   Web 应用程序最重要的 REST 原则是:   (1)客户端和服务器之间的交互在 请求之间是无状态的 。从客户端到服务器的每个请求都必须包含理解请求所必需的信息,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。   (2)在服务器端,应用程序状态和功能可以分为 各种资源 。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。 每个资源都使用 URI (Universal

架构风格:你真的懂REST吗?

十年热恋 提交于 2020-01-02 01:47:01
本文探讨如下几个问题: 什么是REST REST包含哪些约束 什么是RESTful 纯RESTful API的难点在哪里 如果你去搜索「什么是REST」的话,大部分情况下,你看到的基本都是RESTful! 这类内容主要说的是: 资源URL应该怎么写 要用GET来获取资源 要用POST来新建资源 要用PUT来更新资源 要用DELETE来删除资源 而实际上REST并不是这些,或者说并不完全是这些! 什么是REST REST全称Representational State Transfer,出自Roy Thomas Fielding博士的博士论文《Architectural Styles and the Design of Network-based Software Architectures》第五章(Fielding博士的这篇论文会在后面单独讨论),一般翻译为「表述性状态转移」。 在论文的第6章第一节提到了为什么会取REST这么一个名字: The name 「Representational State Transfer」 is intended to evoke an image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine),

spring restful

余生颓废 提交于 2020-01-02 01:44:32
一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 中文名 RESTful 外文名 Representational State Transfer 简 称 REST 创始人 Roy Fielding 目录 1 概述 ▪ 原则条件 ▪ 分层系统 2 实现 概述 编辑 REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,Roy Fielding是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。 [1] 原则条件 REST 指的是一组架构 约束条件 和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是

架构风格之比较

ⅰ亾dé卋堺 提交于 2020-01-02 01:39:59
转至InfoQ上的《理解本真的REST架构风格》一文 从架构风格的抽象高度来看,常见的分布式应用架构风格有三种: 分布式对象(Distributed Objects,简称DO) 架构实例有CORBA/RMI/EJB/DCOM/.NET Remoting等等 远程过程调用(Remote Procedure Call,简称RPC) 架构实例有SOAP/XML-RPC/Hessian/Flash AMF/DWR等等 表述性状态转移(Representational State Transfer,简称REST) 架构实例有HTTP/WebDAV DO和RPC这两种架构风格在企业应用中非常普遍,而REST则是Web应用的架构风格,它们之间有非常大的差别。 REST与DO的差别在于: REST支持抽象(即建模)的工具是资源,DO支持抽象的工具是对象。在不同的编程语言中,对象的定义有很大差别,所以DO风格的架构通常都是与某种编程语言绑定的。跨语言交互即使能实现,实现起来也会非常复杂。而REST中的资源,则完全中立于开发平台和编程语言,可以使用任何编程语言来实现。 DO中没有统一接口的概念。不同的API,接口设计风格可以完全不同。DO也不支持操作语义对于中间组件的可见性。 DO中没有使用超文本,响应的内容中只包含对象本身。REST使用了超文本,可以实现更大粒度的交互,交互的效率比DO更高。

REST In WCF4.0

雨燕双飞 提交于 2020-01-02 01:34:30
REST软件架构是由Roy Thomas Fielding博士2000年在他的论文《Architectural Styles and the Design of Network- based Software Architectures》首次提出的。他提出的理论对后来的Web技术的发展产生了巨大的影响,他是许多重要Web架构标准的设计者,这些标准就是HTTP、URI等。 1.1) Rest的英文全称是“Representational State Transfer”。中文翻译为“表述性状态转移”。REST本身只是为分布式超媒体系统设计的一种架构风格,而不是标准。 1.2)那么如何理解“Representational State Transfer”这句话呢?下面我们来解释一下: Representational :中文直译:代表的,表像的。如果把WEB 服务器端中所有的东西(数据)都看作是资源(Resource),那么呈现在用户面前(客户端)的就是资源的表像(Representation)。每一个资源都有自己的唯一标识(URI)。 State :中文直译:状态。首先这个状态是客户端的状态,而不是服务器端的状态(在REST 中,服务器端应该是无状态的)。那么,把State和Representation联系在一起(Representational State),可以理解成:每一个资源