E-commerce .net+React(一)——项目初始化

news2024/12/27 18:07:27

文章目录

  • 项目地址
  • 一、创建.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 配置端口


项目地址

  • 教程作者:
  • 教程地址:
https://github.com/TryCatchLearn/Restore
  • 代码仓库地址:
  • 所用到的框架和插件:

一、创建.Net环境

1.1环境配置

1.1.1 使用vscode创建webapi

  1. 创建ReStore文件夹
mkdir ReStore
  1. 创建新的sln
dotnet new sln
  1. 创建一个名为API的项目
donete new webapi -o API
  1. 给解决方案里添加项目
dotnet sln add API
  1. 进入到项目文件夹内,运行程序
donet run 
  1. 访问 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2266540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

农家乐系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…

NIPS2014 | GAN: 生成对抗网络

Generative Adversarial Nets 摘要-Abstract引言-Introduction相关工作-Related Work对抗网络-Adversarial Nets理论结果-Theoretical Results实验-Experiments优势和不足-Advantages and disadvantages缺点优点 结论及未来工作-Conclusions and future work研究总结未来研究方…

《战神:诸神黄昏》游戏运行时提示找不到emp.dll怎么办?emp.dll丢失如何修复?

《战神&#xff1a;诸神黄昏》游戏运行时提示找不到emp.dll怎么办&#xff1f;emp.dll丢失的修复方法 在畅游《战神&#xff1a;诸神黄昏》这款史诗级游戏的过程中&#xff0c;如果突然遭遇“找不到emp.dll”的错误提示&#xff0c;无疑会打断你的冒险之旅。作为一名深耕软件开…

笔记本通过HDMI转VGA线连接戴尔显示器,wifi不可用或网速变慢

早上开开心心的来使用我的分屏显示器&#xff0c;结果winP开拓展&#xff0c;我的wifi就断掉了&#xff0c;琢磨了好一阵我以为是wifi的问题&#xff0c;发现不进行拓展&#xff0c;网络又好了&#xff0c;一上午就研究这个了&#xff0c;说是hdmi信号干扰了wifi信号啥的额&…

【MATLAB第110期】#保姆级教学 | 基于MATLAB的PAWN全局敏感性分析方法(无目标函数)含特征变量置信区间分析

【MATLAB第110期】#保姆级教学 | 基于MATLAB的PAWN全局敏感性分析方法&#xff08;无目标函数&#xff09;含特征变量置信区间分析 一、介绍 PAWN&#xff08;Probabilistic Analysis With Numerical Uncertainties&#xff09;是一种基于密度的全局敏感性分析&#xff08;Gl…

BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测(多输入单输出)

Matlab实现BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测&#xff08;多输入单输出&#xff09; 目录 Matlab实现BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测&#xff08;多输入单输出&#xff09;分类效果基本描述…

python: Oracle Stored Procedure query table

oracel sql script CREATE OR REPLACE PROCEDURE SelectSchool(paramSchoolId IN char,p_cursor OUT SYS_REFCURSOR ) AS BEGINOPEN p_cursor FORSELECT *FROM SchoolWHERE SchoolId paramSchoolId; END SelectSchool; /-- 查询所有 CREATE OR REPLACE PROCEDURE SelectScho…

软件老化分析

软件老化 课程&#xff1a;软件质量分析 作业 解答 Python代码如下&#xff1a; n int(input("类别数&#xff1a;")) theta list(map(float, input("各个类别的权重&#xff1a;").split())) m list(map(int, input("各个类别的度量元数量&…

cesium通过经纬度获取3dtiles 得feature信息

找到这里3dtiles的两种访问方式&#xff1a; 1.1 3DTileContent#getFeature 这里涉及3DTile 数据结构&#xff0c;暂不了解3DTile 数据结构&#xff0c;因此暂不使用。 1.2 scene.pick 本次使用 scene表示虚拟场景中所有 3D 图形对象和状态的容器&#xff1b;scene中…

【Lua之·Lua与C/C++交互·Lua CAPI访问栈操作】

系列文章目录 文章目录 前言一、概述1.1 Lua堆栈 二、栈操作2.1 基本的栈操作2.2 入栈操作函数2.3 出栈操作函数2.4 既入栈又出栈的操作函数2.5 栈检查与类型转换函数2.5 获取表数据 三、实例演示总结 前言 Lua是一种轻量级的、高性能的脚本语言&#xff0c;经常被用于游戏开发…

Linux -- 生产消费模型

目录 概念 代码 BlockQueue.hpp 代码&#xff1a; 伪唤醒&#xff01;&#xff01; Thread.hpp 代码&#xff1a; Task.hpp 代码&#xff1a; test.cc 代码&#xff1a; 再次理解 概念 生产消费模型&#xff0c;也称为生产者-消费者问题&#xff0c;是计算机科学中的一…

DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1)

DevOps实战&#xff1a;用Kubernetes和Argo打造自动化CI/CD流程&#xff08;1&#xff09; 架构 架构图 本设计方案的目标是在一台阿里云ECS服务器上搭建一个轻量级的Kubernetes服务k3s节点&#xff0c;并基于Argo搭建一套完整的DevOps CI/CD服务平台&#xff0c;包括Argo CD…

React 第二十节 useRef 用途使用技巧注意事项详解

简述 useRef 用于操作不需要在视图上渲染的属性数据&#xff0c;用于访问真实的DOM节点&#xff0c;或者React组件的实例对象&#xff0c;允许直接操作DOM元素或者是组件&#xff1b; 写法 const inpRef useRef(params)参数&#xff1a; useRef(params)&#xff0c;接收的 …

【2024最新】基于Python+Mysql+django的水果销售系统Lw+PPT

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…

利用Java爬虫速卖通按关键字搜索AliExpress商品

在这个信息爆炸的时代&#xff0c;数据的价值日益凸显。对于电商领域的从业者来说&#xff0c;能够快速获取商品信息成为了一项重要的技能。速卖通&#xff08;AliExpress&#xff09;作为全球领先的跨境电商平台&#xff0c;拥有海量的商品数据。本文将介绍如何使用Java语言编…

动态规划<五> 子数组问题(含对应LeetcodeOJ题)

目录 引例 经典LeetcodeOJ题 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 6.第六题 7.第七题 引例 OJ传送门 Leetcode<53> 最大子数组和 画图分析: 使用动态规划解决 1.状态表示 dp[i]表示以i位置为结尾的所有子数组中的最大和 2.状态转移方程 子数组的问题可以…

前端实现PDF预览的几种选择(pdfjs-dist、react-pdf、pdf-viewer)

记录 PDF预览的选型 对于浏览器自带的PDF预览 如果能直接使用&#xff0c;那自然最好不过了&#xff0c;但考虑多种因素&#xff0c;比如权限问题&#xff0c;禁止用户去下载PDF、预览样式不统一&#xff08;不同浏览器PDF预览的实现不同&#xff09;&#xff0c;所有最终放弃…

小米路由器开启SSH,配置阿里云ddns,开启外网访问SSH和WEB管理界面

文章目录 前言一、开启SSH二、配置阿里云ddns1.准备工作2.创建ddns脚本3.添加定时任务 三、开启外网访问SSH和WEB管理界面1、解除WEB管理页面访问限制2.手动添加防火墙端口转发规则&#xff0c;开启外网访问WEB管理和SSH 前言 例如&#xff1a;随着人工智能的不断发展&#xf…

机器学习(三)-多项式线性回归

文章目录 1. 多项式回归理论2. python通过多项式线性回归预测房价2.1 预测数据2.2导入标准库2.3 导入数据2.4 划分数据集2.5 构建二次多项式特征&#xff08;1, x, x^2&#xff09;2.6 导入线性回归模块2.7 对测试集进行预测2.8 计算均方误差 J2.9 计算参数 w0、w1、w22.10 可视…

【再学javascript算法之美】前端面试频率比较高的基础算法题

基础算法题练习代码&#xff0c;看看能做出几道题 代码实现 找出字符串中出现次数最多的字符 const array "cncnansdnajsadnjasndjnasjdnjj";// 找出出现次数最多的字符 let obj {}; for (let index 0; index < array.length; index) {const element array[…