目标:教大家搭建一个简易的前后端分离的项目框架。

目录:

1:关于项目架构的概念

2:前后端分离的开发模式

3:搭建框架的各个部分

这段时间比较闲,所以想把之前项目里用到的一些技术写到博客里来,分享给大家。其实我还不是很会写博客,各位朋友如果没看懂的话请见谅,多多包涵。

1:关于架构的概念

1.1传统的企业级应用架构演变可以看成这样一个简单的流程

传统垂直架构->RPC架构->SOA服务化->微服务

  • 传统垂直架构

当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
        此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。

  • RPC架构

当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。
        此时,用于加速前端页面开发的 Web框架(MVC) 是关键。

  • SOA服务化

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。
        此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。

  • 微服务

当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。
        此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。

       这里博主先不多说大家想详细了解可以自己先去百度

2:前后端分离的开发模式

2.1前后端分离是什么?

现在网站开发基本都是前后端分离的模式,后端只写接口,前端调取接口,用脚本去渲染数据。这样的好处是将前后端进行了解耦,不相互影响。后端专注于服务,前端专注于视图展示,通过Restful风格的API对接是前后端分离的最佳实践。

举个例子:前端有可能分PC端,移动端,而后端只需要一组接口去与他们对接,不需要重复每个项目单独写一套服务.后端服务接口也可以被其他服务调用,这样显得更灵活。

本文会教大家通过http+json实现Restful风格的接口开发。

3:搭建框架的各个部分

3.1框架的各个部分会包含哪些?

项目框架包含WebSite(站点端)、WebServer(服务端)、Framework(一些公共组件部分)

分别建立下三个项目,在server项目里建立好简单的三层架构 ,可以是一个Asp.Net MVC程序、一个Asp.Net WebApi 程序、一个类库项目

建成后效果如下 

亲手搭建一个基于Asp.Net WebApi的项目基础框架1的更多相关文章

  1. 亲手搭建一个基于Asp.Net WebApi的项目基础框架4

    实现目的:配置website端与服务端对接 1:配置好各项配置文件 2:server端编写接口客户端调用 1.1首先配置文件有log4的配置文件,有config的配置文件,还有服务列表的配置文件 首先 ...

  2. 亲手搭建一个基于Asp.Net WebApi的项目基础框架3

    1:使用Framework工具类封装http请求 接上第二篇的步骤,现在在站点中使用封装好的组件,将framework编译好之后把dll提取出来,然后放到lib当中 在website中引用dll 接下 ...

  3. 亲手搭建一个基于Asp.Net WebApi的项目基础框架2

    本篇目的:封装一些抽象类 1::封装日志相关类 2:封装一个Service操作类 3:封装缓存操作类 4:封装其他一些常用Helper 1.1在Framework项目里面建立好相关操作类文件夹,以便于 ...

  4. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)

    最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...

  5. 使用EF Code First搭建一个简易ASP.NET MVC网站,允许数据库迁移

    本篇使用EF Code First搭建一个简易ASP.NET MVC 4网站,并允许数据库迁移. 创建一个ASP.NET MVC 4 网站. 在Models文件夹内创建Person类. public ...

  6. Uber如何搭建一个基于Kafka的跨数据中心复制平台 原创: 徐宏亮 AI前线 今天

    Uber如何搭建一个基于Kafka的跨数据中心复制平台 原创: 徐宏亮 AI前线 今天

  7. 快速搭建一个基于react的项目

    最近在学习react,快速搭建一个基于react的项目 1.创建一个放项目文件夹,用编辑器打开 2.打开集成终端输入命令: npm install -g create-react-app 3. cre ...

  8. 使用gulp搭建一个传统的多页面前端项目的开发环境

    1.简介 使用gulp搭建一个传统的多页面前端项目的开发环境 支持pug scss es6编译支持 支持开发环境和打包生成sourceMap 支持文件变动自动刷新浏览器,css是热更新(css改动无需 ...

  9. 基于RxJava2+Retrofit2精心打造的Android基础框架

    代码地址如下:http://www.demodashi.com/demo/12132.html XSnow 基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络.上传.下载 ...

随机推荐

  1. Spark核心组件

    Spark核心组件 1.RDD resilient distributed dataset, 弹性分布式数据集.逻辑上的组件,是spark的基本抽象,代表不可变,分区化的元素集合,可以进行并行操作.该 ...

  2. 概念:RPG游戏中两个兵种互相攻击的逻辑

    直接上题目: 解析题目: 根据题目的解析,进行代码的实现: 输出结果: 心得: (1) 当我们面对‘公式结果不是我们想要的’时,应该在脑海里将一个完整的攻击流程进行想象,就会对流程有个更清晰的思路 ( ...

  3. linux 下svn同步更新钩子

    svn服务器搭建:https://www.linuxidc.com/Linux/2017-05/144254.htm SVN版本库中的一个项目:/svn/repositories/test/ 网站目录 ...

  4. 如何使用Win32API绘制树

    一.这个已经有几年时间了,刚开始学习charlie的<windows程序设计>的时候做的.现在看来,代码很乱,虽然后来还整理过几次,现在这方面没什么兴趣了,有兴趣的可自由下载. 二.绘制二 ...

  5. Linux ELF格式分析

    http://www.cnblogs.com/hzl6255/p/3312262.html ELF, Executable and Linking Format, 是一种用于可执行文件.目标文件.共享 ...

  6. 【转】在程序中设置android:gravity 和 android:layout_Gravity属性

    在进行UI布局的时候,可能经常会用到 android:gravity  和 android:layout_Gravity 这两个属性. 关于这两个属性的区别,网上已经有很多人进行了说明,这边再简单说一 ...

  7. webapi中配置返回的时间数据格式

    web api返回的是标准格式UTC时间,如果要转成我们需要的格式,可以在WebApiConfig.cs的Register函数中新增以下配置来定义返回的时间类型格式: //配置返回的时间类型数据格式 ...

  8. JS isArray、typeof、instanceof

    Array.isArray() 用来检验是不是数组 var a = [1,2,3] console.log(typeof a); // object console.log(Array.isArray ...

  9. javaWeb css图文混排

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. AsyncDisplayKit技术分析

    转载请注明出处:http://xujim.github.io/ios/2014/12/07/AsyncDisplayKit_inside.html ,谢谢 前言 Facebook前段时间发布了其iOS ...