E-commerce .net+React(一)——项目初始化
文章目录
- 项目地址
- 一、创建.Net环境
- 1.1环境配置
- 1.1.1 使用vscode创建webapi
- 1.1.2 Clean architecture结构创建
- 1.1.3 将创建好结构的项目添加到git里
- 1.1.4 EF Core配置
- 1. 在infrastructure里安装EF所需环境
- 2. 创建Product数据模型
- 3. 创建EF Core的DbContext 数据库上下文
- 4. 创建Extensions用来管理服务注入
- 5. 在Program.cs程序入口注册AddInfrastructure服务
- 6. 创建Seed服务
- 7. 注册Seed服务
- 1.1.5 配置SeriLog
- 1. 安装SeriLog
- 2. 程序入口注册和使用
- 3. 配置Serilog
- 4. 开启EF Core日志记录
- 1.3 创建获取所有Product的接口
- 1.3.1 安装CQRS所需要的包
- 1.3.2 创建ProductDto
- 1. 创建Dto模型
- 2. 使用AutoMapper建立映射关系
- 1.3.3 创建Controllers
- 1. 创建IMediator服务
- 将AddApplication注册到program里
- 2. 创建查询的Query
- 3. 创建Handler
- 4. 创建IProductsRepository接口
- 5. 实现接口方法
- 6. 将IProductsRepository服务注册到Extension里
- 二、创建React环境
- 2.1 使用vite创建react项目
- 2.1.1 创建项目
- 2.1.2 配置端口
- 2.1.3 启动项目
- 2.2 显示后端接口的product数据
- 2.2.1 创建Product类
- 2.2.2 创建Layout页面
- 2.2.3 Catalog组件展示Product列表
- 2.3 Materail UI使用
- 2.3.1 安装Material ui
项目地址
- 教程作者:
- 教程地址:
https://github.com/TryCatchLearn/Restore
- 代码仓库地址:
- 所用到的框架和插件:
一、创建.Net环境
1.1环境配置
1.1.1 使用vscode创建webapi
- 创建
ReStore文件夹
mkdir ReStore
- 创建新的sln
dotnet new sln
- 创建一个名为API的项目
donete new webapi -o API
- 给解决方案里添加项目
dotnet sln add API
- 进入到项目文件夹内,运行程序
donet run
- 访问
http://localhost:5172/swagger,成功
1.1.2 Clean architecture结构创建
- 引用关系图

1.1.3 将创建好结构的项目添加到git里
-
结构

-
前提:Git里有一个空的仓库ReStoreApi且没有master分支
#1.初始化本地仓库
git init#2. 上传代码到本地仓库
git add .
git commit -m "Initial commit"#3. 将远程仓库添加为 origin
git remote add origin https://github.com/CXTV/ReStoreApi.git#4.确保正确设置分支
git branch -M main#5. 推送代码到远程仓库
git push -u origin main
1.1.4 EF Core配置
1. 在infrastructure里安装EF所需环境
<ItemGroup><PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.0" /><PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0"><PrivateAssets>all</PrivateAssets><IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets></PackageReference><PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" /><PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0"><PrivateAssets>all</PrivateAssets><IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets></PackageReference></ItemGroup>
2. 创建Product数据模型
- 在
ReStore.Domain/Models/Product.cs里创建Product表的模型
namespace ReStore.Domain.Models
{public class Product{public int Id { get; set; }public string Name { get; set; }public string Description { get; set; }public long Price { get; set; }public string PictureUrl { get; set; }public string Type { get; set; }public string Brand { get; set; }public int QuantityInStock { get; set; }}
}
3. 创建EF Core的DbContext 数据库上下文
- 在
ReStore.Infrastructure/Persistance/ReStoreDbContext.cs里创建EF的数据库上下文,用来管理数据操作是数据库和程序的桥梁
using Microsoft.EntityFrameworkCore;
using ReStore.Domain.Models;namespace ReStore.Infrastructure.Persistance
{internal class ReStoreDbContext : DbContext{public ReStoreDbContext(DbContextOptions<ReStoreDbContext> options) : base(options){}public DbSet<Product> Products { get; set; }protected override void OnModelCreating(ModelBuilder modelBuilder){}}
}
4. 创建Extensions用来管理服务注入
创建ReStore.Infrastructure/Extensions/ServiceCollectionExtensions.cs ,Infrustructure 层的所有服务注册,都在该文件里进行,这样可以保持program.cs文件的结构整洁
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using ReStore.Infrastructure.Persistance;
using ReStore.Infrastructure.Seeds;namespace ReStore.Infrastructure.Extensions
{public static class ServiceCollectionExtensions{//将program.cs中的服务注册移到这里public static void AddInfrastructure(this IServiceCollection services, 相关文章:
E-commerce .net+React(一)——项目初始化
文章目录 项目地址一、创建.Net环境1.1环境配置1.1.1 使用vscode创建webapi1.1.2 Clean architecture结构创建1.1.3 将创建好结构的项目添加到git里1.1.4 EF Core配置1. 在infrastructure里安装EF所需环境2. 创建Product数据模型3. 创建EF Core的DbContext 数据库上下文4. 创建…...
算法每日双题精讲 —— 滑动窗口(水果成篮,找到字符串中所有字母异位词)
🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 别再犹豫了!快来订阅我们的算法每日双题精讲专栏,一起踏上算法学习的精彩之旅吧!💪…...
C++ 设计模式:享元模式(Flyweight Pattern)
链接:C 设计模式 链接:C 设计模式 - 单例模式 享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享尽可能多的相同对象来减少内存使用和提高性能。享元模式适用于大量细粒度对象的场景,这些对象之…...
Docker+Portainer 离线安装
1. Docker安装 步骤一:官网下载 docker 安装包 步骤二:解压安装包; tar -zxvf docker-24.0.6.tgz 步骤三:将解压之后的docker文件移到 /usr/bin目录下; cp docker/* /usr/bin/ 步骤四:将docker注册成系统服务; vim /etc/sy…...
Linux第100步_Linux之设置LCD作为终端控制台和LCD背光调节
KMS是Kemmel Mode Setting的缩写,内核显示模式设置。它主要负责显示的控制,包括屏幕分辨率、屏幕刷新率和颜色深度等等。 CRTC是指显示控制器,在DRM里有多个显存,通过操作CRTC来控制要显示那个显存。 KMS包含了FB框架。DRM驱动默…...
Chapter09 国际化i18n 和 数据校验:Validation
文章目录 1 Java国际化2 Spring6国际化3 使用Spring6国际化4 数据校验:Validation实验一:通过Validator接口实现实验二:Bean Validation注解实现实验三:基于方法实现校验实验四:实现自定义校验 1 Java国际化 示例&…...
活动预告 | Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁
课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动,了解如何更好地在 Microsoft 365 Defen…...
Unresolved plugin: ‘org.apache.maven.plugins:maven-site-plugin:3.12.1‘
问题 使用idea 社区办加载项目提示下面问题: Unresolved plugin: org.apache.maven.plugins:maven-site-plugin:3.12.1 问题解决 maven插件地址: https://maven.apache.org/plugins/maven-dependency-plugin/plugins.html Maven 中央仓库地址&#…...
5个开源RAG框架对比
还在为RAG应用开发头疼吗?别急,今天给大家推荐五款完全开源免费的RAG框架,覆盖自动优化、多模态处理、本地部署、生产环境支持等多种场景,助你轻松搞定RAG开发!👇 1. AutoRAG:自动优化ÿ…...
活动预告 | Microsoft Power Platform 在线技术公开课:实现业务流程自动化
课程介绍 参加“Microsoft Power Platform 在线技术公开课:实现业务流程自动化”活动,了解如何更高效地开展业务。参加我们举办的本次免费培训活动,了解如何借助 Microsoft AI Builder 和 Power Automate 优化工作流。结合使用这些工具可以帮…...
【分布式文件存储系统Minio】2024.12保姆级教程
文章目录 1.介绍1.分布式文件系统2.基本概念 2.环境搭建1.访问网址2.账号密码都是minioadmin3.创建一个桶4.**Docker安装miniomc突破7天限制**1.拉取镜像2.运行容器3.进行配置1.格式2.具体配置 4.查看桶5.给桶开放权限 3.搭建minio模块1.创建一个oss模块1.在sun-common下创建2.…...
解决ssh和git秘钥认证失败问题
已正确上传公钥到远程服务器,但是本地的连接认证还是使用默认秘钥文件名id_rsa或者默认用户名,导致了认证失败,总结了以下解决办法: 1、ssh秘钥认证 远程登录的时候可能ssh客户端默认使用id_rsa文件名秘钥,但是之前生…...
AI安全的挑战:如何让人工智能变得更加可信
引言 随着人工智能(AI)技术在各个领域的广泛应用,尤其是在医疗、金融、自动驾驶和智能制造等行业,AI正在重塑我们的工作和生活方式。从提高生产效率到实现个性化服务,AI带来了前所未有的便利。然而,在享受这…...
腾讯通RTX升级迁移攻略,兼容Linux内核国产系统及移动端
一、腾讯通RTX继续使用的主要难题 腾讯通RTX停更后,用户不仅无法继续获得更新、技术支持和资源下载,还面临着以下无法解决的使用问题: ● 不兼容国产系统与移动端:腾讯通RTX仅支持Windows和Mac操作系统,无法在基于Li…...
用css实现瀑布流布局
上效果 知识理解 column-count: 4; column-gap: 15px;实现固定四行瀑布流布局 columns: 200px auto;column-gap: 15px;由浏览器根据容器的宽度自动调整,尽可能一行多个200px宽度的列数 <!DOCTYPE html> <html lang"en"><head><me…...
FortiAl为擎重塑网络与安全运营未来
在当今数字化浪潮汹涌的时代,网络安全运营的重要性愈发凸显,而人工智能的迅猛发展则如同一股强劲的东风,为这一领域带来了革命性的变革。Fortinet攻防专家邹国雄在《FortiAI:以生成式人工智能(GenAI)简化Fo…...
优化租赁小程序提升服务效率与用户体验的策略与实践
内容概要 在这个快速发展的商业环境中,租赁小程序成为了提升服务效率和用户体验的重要工具。通过对用户需求的深入挖掘,我们发现他们对于功能的便捷性、响应速度和界面的友好性有着极高的期待。因此,针对这些需求,完善租赁小程序…...
基于Python的医院预约挂号与诊断系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
Spring Boot教程之四十:使用 Jasypt 加密 Spring Boot 项目中的密码
如何使用 Jasypt 加密 Spring Boot 项目中的密码 在本文中,我们将学习如何加密 Spring Boot 应用程序配置文件(如 application.properties 或 application.yml)中的数据。在这些文件中,我们可以加密用户名、密码等。 您经常会遇到…...
Design Compiler:两种工作模式(线负载模式和拓扑模式)
相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 Design Compiler可以以线负载模式或拓扑模式启动,必须选择其中一个模式。在拓扑模式下还可使用多模式和UPF模式:多模式允许在多种工作…...
seo教程cao4与网站推广有什么关系_seo教程cao4有哪些技巧
SEO教程Cao4与网站推广的紧密关系 在当今的互联网时代,网站推广已经成为了企业提升品牌知名度和销售转化的重要手段之一。而在这些推广活动中,搜索引擎优化(SEO)扮演着至关重要的角色。特别是,在大量的SEO教程中&…...
保姆级教程:用Python复现DMP动态运动基元,手把手验证收敛性(附完整代码)
从零实现DMP动态运动基元:Python代码实战与收敛性可视化分析 在机器人运动控制领域,动态运动基元(Dynamic Movement Primitives, DMP)因其出色的轨迹生成能力和稳定的收敛特性,已成为模仿学习的核心算法之一。本文将带您用Python完整实现DMP…...
ENVI 5.3.1打不开Landsat 9 L2SP数据?别急,教你一招‘偷梁换柱’搞定它
ENVI 5.3.1兼容Landsat 9 L2SP数据的实战技巧:元数据修改的艺术 当你手握ENVI 5.3.1这个经典版本,却遭遇Landsat 9 L2SP数据无法打开的窘境时,那种挫败感我深有体会。作为遥感领域的"老司机",我完全理解为什么很多用户不…...
CMPS12磁力计寄存器级驱动与KRAI架构嵌入式实践
CMPS_KRAInew:基于KRAI架构的CMPS12磁力计寄存器级驱动解析与嵌入式集成实践1. 项目概述CMPS_KRAInew 是一个面向嵌入式平台、专为 CMPS12 数字罗盘模块设计的轻量级底层驱动库,其核心定位并非通用 HAL 封装,而是聚焦于 KRAI(Kern…...
新能源汽车,车载充电机仿真模型(基于PWM整流器)。输出功率3.3kw,前级PFC采用双闭环控制,电流畸变率小。后级采用移相全桥开环控制。 运行环境有matlab_simulink和plecs
新能源汽车,车载充电机仿真模型(基于PWM整流器)。输出功率3.3kw,前级PFC采用双闭环控制,电流畸变率小。后级采用移相全桥开环控制。 运行环境有matlab/simulink和plecs针对新能源汽车车载充电机(OBC&#x…...
为什么说Rust是对自闭症谱系人士友好的编程语言?
程序员圈子里,Rust常常以学习路线陡峭而闻名。就我自己的个人理解来说,之所以说它“学习路线陡峭”,很大程度上都来源于以下三点:Rust有很多语法糖,而且官方把这些语法糖给设置成了默认的最佳实现的语法,还…...
NopeCHA验证码扩展缓存机制详解:提升验证码识别速度的10个关键优化技巧
NopeCHA验证码扩展缓存机制详解:提升验证码识别速度的10个关键优化技巧 【免费下载链接】nopecha-extension Automated CAPTCHA solver for your browser. Works with Selenium, Puppeteer, Playwright, and more. 项目地址: https://gitcode.com/gh_mirrors/no/n…...
MSI-X 虚拟化
MSI-X 虚拟化是 PCIe 设备在虚拟化环境中,将硬件 MSI-X 中断能力通过软件模拟、IOMMU 重映射或 SR-IOV 硬件隔离等技术,安全、高效地分配给多个虚拟机(Guest)的核心机制。它解决了传统 INTx 中断共享、MSI 向量不足的问题…...
避坑指南:Pandas处理NaN时90%人会犯的5个错误(附正确用法)
避坑指南:Pandas处理NaN时90%人会犯的5个错误(附正确用法) 在数据分析的日常工作中,Pandas库无疑是Python生态中最强大的工具之一。但当我们面对真实世界杂乱无章的数据时,缺失值处理往往成为新手进阶路上的第一个绊脚…...
【Linux基础】文件编辑压缩解压
文件编辑&&压缩解压 实验环境准备 [rootCentOS-Harvy /]# cd tmp/ [rootCentOS-Harvy tmp]# mkdir -p lab_319[rootCentOS-Harvy tmp]# ll | grep *319 drwxr-xr-x. 2 root root 6 3月 19 16:59 lab_319实验1:Vim 文本编辑 1.1 创建文件并写入内容…...
