杨中科 ASP.NET Core前后端分离开发

这篇具有很好参考价值的文章主要介绍了杨中科 ASP.NET Core前后端分离开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、

前后端分离

1、传统MVC开发模式: 前后端的代码被放到同一个项目中,前端人员负责编写页面的模板,而后端开发人员负责编写控制器和模型的代码并且“套模板”。
缺点: 互相依赖,耦合性强,责任划分不清
2、主流的“前后端分离”: 前端开发人员和后端开发人员分别负责前端和后端代码的开发,各自在自己的项目中进行开发,后端人员只写Web API接口页面由前端人员负责。
为什么“前后端分离”更流行: 需求变动越来越大、交付周期越来越短、多端支持。
优点:独立开发,不互相依赖,耦合性低,责任划分清晰,前后端分别部署,可以针对性运维 (扩容等缺点: 对团队的沟通能力要求更高,提前沟通好接口和通知接口变更,不利于SEO (可以用“服务器端渲染”SSR),对运维要求更高
3、只有大项目才需要前后端分离吗?

示例:
1.新建webapi controller
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
2.新建请求与返回的两个类,加上进程信息保存类ProcessInfo
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端

3.编写controller方法
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
4.运行

杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
运行成功,返回当前电脑的进程信息
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端

二 编写前端接口

搭建前端开发环境

1、Web API做后端开发,不绑定前端技术,也支持其他客户端。这一节用Vue演示,不讲解Vue基础
2、Vue搭建步骤
1安装Node.js
2) 设定国内镜像 npm config set registryhttps://registry.npm.taobao.org
3)安装yarn: npm install -g yarn
4)创建Vue项目: yarn create @vitejs/app 项目名字
5) 按照提示运行项目

杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
创建好之后
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
运行项目 依次执行命令
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
运行结果:
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端

三 前后端结合

前后端结合1

1、在src文件夹下创建views文件夹
2、安装ajax库axios,项目根目录: yarn add axios
3、在views文件夹下创建Login.vue文件

	<input type="text" v-model="state.loginData.userName"/>
	<input type="submit" value="登录@click="loginSubmit"/>
	<tr v-for="p in state.processes" :key="p.id">
		<td>i(p.workingSet64/1024)HK</td>
	</tr>

示例:

1.创建views 文件夹
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
2.前端页面部分
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
3.安装ajax库
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
项目下会生成一个asios库
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
4.编写js

import axios from 'axios';
import {reactive,onMounted) from 'vue
export default { name: 'Login'
	setup(){
		const state=reactive(loginData:,processes:[]});
		const loginSubmit=async ()=>!
		const payload = state.loginData;
		//if(!data.isOK)
		const resp = await axios.post(https:/ /localhost:44360/api/Login/Login',payload)
		const data = resp.data;
		state.processes = data.processes;
		}
	return {state,loginSubmit);
	},
}

5、使用vue-router来做前端的页面路由。在前端的项目根目录执行: yarn add vue-router@4
6、在src下创建route文件夹,并且在route文件夹下创建index.js文件

import [ createRouter,createWebHashHistory} from "vue-router"
import Test from "../views/Test.vue"
import Login from "../views/Login.vue";
const routes = [fpath: "/", redirect: " /Test"")
(path: "/Test",name:"Test",component: Test),
(path: "/Login",name:"Login",component: Login)]
const router = createRouter(fhistory: createWebHashHistory(),routes: routes)),
export default router

杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端

7、编辑src/mainjs,增加import router from /route’以及use(router),修改main.js

import { createApp } from 'vue
import App from './App.vue'
import router from './route
createApp(App).use(router).mount('#app');

8、src/App.vue中增加指向Login视图的链接以及显示路由视图的

<template>
<div><router-link to="Login">Login</router-link></div><router-view />
</template>

9、测试:
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
跨域问题
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
只要是端口不同 或者域名不同,都会被认为不是同一个网站,浏览器出于安全考虑,不给予访问

cors

1、跨域通讯的问题。解决方案: JSONP、前端代理后端请求(浏览器直接通过前端向后端请求数据,会导致前端服务器压力过大不推荐)、CORS等。
2、CORS原理: 在服务器的响应报文头中通过access-control-allow-origin告诉浏览器允许跨域访问的域名
3、在Program.cs的“var app=builder.Build()”这句代码之前注册

string[] urls = new[] { "http://localhost:3000" );

builder.Services.AddCors(options =>
options.AddDefaultPolicy(builder => builder.WithOrigins(urls) //允许哪些域名 .AllowAnyOrigin 允许所有域名
.AllowAnyMethod()//允许哪些请求类型(get,post).withMethod()允许某一些
.AllowAnyHeader()//允许哪些报文头
.AllowCredentials()));
//.net 出于安全性考虑不允许所有的都写为any

杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端

4、在Program.cs的app.UseHttpsRedirection()这句代码之前增加一行app.UseCors()
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
重启项目
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端
杨中科 ASP.NET Core前后端分离开发,ASP.NET,asp.net,后端文章来源地址https://www.toymoban.com/news/detail-817093.html

到了这里,关于杨中科 ASP.NET Core前后端分离开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ASP.NET Core高级之认证与授权(二)--JWT认证前后端完整实现

    了解JWT身份认证的流程 了解基于JWT身份认证和Session身份认证的区别 学习如何在ASP.NET Core WebAPI项目中封装JWT认证功能 在上文ASP.NET Core高级之认证与授权(一)–JWT入门-颁发、验证令牌中演示了JWT认证的一个入门案例,本文是一个基于JWT认证的完整的前后端实现代码案例。 JWT身

    2024年02月01日
    浏览(47)
  • ASP.NET Core SingleR Core:WebApi + .net 客户端开发

    我之前稍微研究了一下SignalR Core。用起来还行。简单来说SignalR就是用来解决实时通讯的问题的。 ASP.NET Core SingleR:初次体验和简单项目搭建 SignalR支持三种客户端,C#,Java,JavaScirpt。基本够用了。本身就是微软开发的,肯定支持自己的语言。因为是Websocket的上层封装,所以也要支

    2024年01月20日
    浏览(134)
  • ASP.NET Core 6 (.NET 6) 快速开发简单登陆和登出功能

    ASP.NET Core 6中的简单登录和登出功能,需要使用身份验证和授权中间件实现, 使用Visual Studio 2022或更高版本开发工具,创建一个ASP.NET Core 6 (.NET 6) 项目,项目添加引用 Microsoft.AspNetCore.Authentication.Cookies ,引用方法可以参考: 1)使用Nuget界面管理器 搜索 \\\"Microsoft.AspNetCore.Authe

    2024年02月21日
    浏览(45)
  • Asp-Net-Core开发笔记:API版本管理

    对于Web API应用程序而言,随着时间的推移以及需求的增加或改变,API必然会遇到升级的需求。事实上,Web API应用程序应该从创建时就考虑到API版本的问题。业务的调整、功能的增加、接口的移除与改名、接口参数变动、实体属性的添加、删除和更改等都会改变API的功能,从

    2024年02月08日
    浏览(46)
  • [回馈]ASP.NET Core MVC开发实战之商城系统(开篇)

    在编程方面,从来都是实践出真知,书读百遍其义自见,所以实战是最好的提升自己编程能力的方式。 前一段时间,写了一些实战系列文章,如: ASP.NET MVC开发学生信息管理系统 Vue+Antdv+Asp.net WebApi开发学生信息管理系统 WPF+Prism+MAH+Asp.net Web Api开发学生信息管理系统 ASP.NET C

    2024年02月16日
    浏览(52)
  • [回馈]ASP.NET Core MVC开发实战之商城系统(三)

    经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】等功能的开发,今天继续讲解 商品列表

    2024年02月15日
    浏览(41)
  • [回馈]ASP.NET Core MVC开发实战之商城系统(四)

    经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面等功能的开发,今天继续

    2024年02月15日
    浏览(46)
  • [回馈]ASP.NET Core MVC开发实战之商城系统(六)

    经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情,购物车等功

    2024年02月11日
    浏览(45)
  • [回馈]ASP.NET Core MVC开发实战之商城系统(二)

    经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页商品类型,banner条,友情链接等功能的开发,今天继续讲解首页的 降价促销,新品爆款 等内容,

    2024年02月16日
    浏览(49)
  • [回馈]ASP.NET Core MVC开发实战之商城系统(一)

    经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,今天着重讲解布局设计,环境搭建,系统配置,及首页商品类型,banner条,友情链接等功能的开发。     首页是商城系统的门面,首页的设计的好坏关系着用户的体验,在本示例中,首页主要分

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包