首页 > 其他分享 >Chats 开发指南

Chats 开发指南

时间:2024-12-13 13:09:16浏览次数:3  
标签:Chats 指南 http 开发 chats fe https sdcb

Chats 开发指南

欢迎使用 Chats!在我上一篇博客 https://www.cnblogs.com/sdcb/p/18597030/sdcb-chats-intro 中,我介绍了 Chats 的各种功能,但所有功能都是用代码一行一行写出来的。

在这个指南中,我将帮助您快速上手开发,了解如何在开发阶段使用和配置 Chats 项目。Chats 在开发阶段采用前后端分离的模式,但在生产环境中前后端会合并为一个发布包。

技术基础

  • 后端: 使用 C#/ASP.NET Core 开发。
  • 前端: 使用 Next.js/React/TypeScript 开发。
  • CSS: 使用 Tailwind CSS。

环境需求

  • Git
  • .NET SDK 8.0
  • Node.js >= 20
  • Visual Studio Code
  • Visual Studio 2022(可选但推荐)

获取代码

首先,克隆 Chats 的代码仓库:

git clone https://github.com/sdcb/chats.git

前后端共同开发

后端开发指南

  1. 使用 Visual Studio 打开解决方案:

    在根目录下找到 chats/Chats.sln 解决方案文件并打开。在 Visual Studio 中,您将看到一个名为 Chats.BE 的网站项目。

  2. 运行项目:

    • 按 F5 运行项目。默认配置会检查 SQLite 数据库文件 chats.db 是否存在,如果不存在,会自动创建在 ./AppData 目录并初始化数据库。
    • 服务将在 http://localhost:5146 上运行,并提供 API 服务。如果在开发模式下运行 (ASPNETCORE_ENVIRONMENT=Development),Swagger UI 将在 http://localhost:5146/swagger 上可用。
  3. 配置文件说明:

    默认配置在 appsettings.json 中,但强烈建议使用 userSecrets.json 管理敏感信息。这可以避免在代码库中泄露敏感的开发配置。

    默认配置结构如下:

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*",
      "FE_URL": "http://localhost:3001",
      "ENCRYPTION_PASSWORD": "this is used for encrypt auto increment int id, please set as a random string.",
      "DBType": "sqlite",
      "ConnectionStrings": {
        "ChatsDB": "Data Source=./AppData/chats.db"
      }
    }
    

    配置选项解释:

    • Logging: 管理日志级别,默认记录信息级别的日志。
    • AllowedHosts: 配置允许访问的主机名,* 表示接受所有。
    • FE_URL: 前端的URL,默认指向 http://localhost:3001。前端可以通过 CORS 跨域访问后端。默认3000端口无需额外配置。
    • DBType: 数据库类型,支持 sqlite(默认)、mssqlpostgresql
    • ConnectionStrings:ChatsDB: 数据库 ADO.NET 连接字符串,随 DBType 而变。
    • ENCRYPTION_PASSWORD: 用于加密自增 ID。生产环境中应设置为随机字符串,避免直接暴露 ID。

    为什么使用整数+加密而非 GUID?

    在 Chats 项目初期,我们确实是使用的GUID,但是由于下列2个原因并经过慎重考虑,我换成了自增整数Id:

    • GUID 字段较大,占用更多空间;
    • GUID 作为聚集索引会导致索引碎片,影响性能;

    管理敏感配置:

    不建议在 appsettings.json 中直接修改配置项。可以通过 Visual Studio 使用 userSecrets.json

    • Visual Studio: 右键点击 Chats.BE 项目 -> 管理用户机密

    • CLI: 使用以下命令管理用户机密。

      dotnet user-secrets init
      dotnet user-secrets set "key" "value"
      dotnet user-secrets list
      

    这可以避免在提交代码时不小心将敏感信息上传。

  4. 不使用 Visual Studio 的运行方式:

    进入后端目录:

    cd ./chats/src/BE
    dotnet run
    

前端开发指南

  1. 进入前端目录:

    cd ./chats/src/FE
    
  2. 创建 .env.local 文件并指定后端 URL:

    echo "API_URL=http://localhost:5146" > .env.local
    
  3. 安装依赖并运行开发服务器:

    npm i
    npm run dev
    

运行后,前端服务将监听 http://localhost:3000。后端已有 CORS 配置支持无需额外配置。

仅前端开发

对于专注于前端开发的场景,我们提供了一个已经部署好的后端开发环境:

  1. 克隆仓库:

    git clone https://github.com/sdcb/chats.git
    
  2. 进入前端目录并指定远程后端:

    cd ./chats/src/FE
    echo "API_URL=https://chats-dev.starworks.cc:88" > .env.local
    

    这个环境已经默认允许了 http://localhost:3000 这个地址的跨域访问行为。

  3. 安装依赖并运行:

    npm i
    npm run dev
    

注意事项

如果想模拟生产打包过程,请执行:

npm run build

此命令会在当前目录生成 ./out 文件夹,其中包含所有必要的静态文件。

仅后端开发

对于专注于后端开发的场景,可以使用打包好的前端文件:

  1. 克隆仓库并进入后端目录:

    git clone https://github.com/sdcb/chats.git
    cd ./chats/src/BE
    
  2. 下载并解压前端静态文件放置到 wwwroot

    Linux 下执行:

    curl -O https://github.com/sdcb/chats/releases/latest/download/chats-fe.zip
    unzip chats-fe.zip
    cp -r chats-fe/* wwwroot/
    

    Windows 下执行:

    Invoke-WebRequest -Uri "https://github.com/sdcb/chats/releases/latest/download/chats-fe.zip" -OutFile "chats-fe.zip"
    Expand-Archive -Path "chats-fe.zip" -DestinationPath "."
    Copy-Item -Path ".\chats-fe\*" -Destination ".\wwwroot" -Recurse -Force
    

    注意

    1. 我同时还将上述的 https://github.com/sdcb/chats/releases/latest/download/chats-fe.zip 地址上传到了我个人的 Minio 文件服务器,地址为:http://io.starworks.cc:88/chats/latest/chats-fe.zip

      如果您直接从 Github 上下载速度太慢,可以换成这个地址。

    2. 这个地址对应的 chats-fe.zip 附件是由 Github Actions 在代码合入 main 分支时自动生成来而,合入 dev 分支时并不会触发更新这个文件。

  3. 运行后端:

    dotnet run
    

    或者在 Visual Studio 中打开 Chats.sln 并运行 Chats.BE 项目。

运行后,访问 http://localhost:5146/login 可以直接进入 Chats 的登录界面,实现前后端不分离的部署模式。

希望此指南可以帮助您顺利开展 Chats 项目的开发工作。如有任何问题,请查看源码中的文档或在 https://github.com/sdcb/chats 中创建issue来获得支持。

标签:Chats,指南,http,开发,chats,fe,https,sdcb
From: https://www.cnblogs.com/sdcb/p/18604712/chats-development-instruction

相关文章

  • python开发环境搭建,包括python、pycharm,每一步都有截图
    一、准备安装包首先,准备好安装包,包括合适版本的python、pycharm、激活工具和激活码。对于python的版本,如果只是学习,选择最新版本就好了。目前开发python的工具主要有VScode与pycharm,强烈推荐pycharm,好用很多!准备好的安装包如下: 二、安装python首先安装pytho......
  • 面向服务的整车EE架构(SOA)设计开发咨询服务
    概述    面向服务的架构(ServiceOrientedArchitecture,SOA)是一种从IT领域引入到汽车行业的软件开发范式,作为一种先进的整车EE架构开发模式,从一开始就受到国内外整车厂的高度关注。SOA架构下将应用程序的不同功能单元通过服务(Service)联系起来,在功能升级的同时可保证整车......
  • tailscale接入指南
    注册tailscale账号并登录https://tailscale.com/安装包下载地址https://tailscale.com/download获取配置文件地址https://jd1.wwwfff.top/ftp/tailscale/xxxxx_derp.txt登录tailscale后台地址配置文件地址复制到这里重启该账户下所有客户端测试是否是走的代理节点如图......
  • 应届生如何半年找到一份数据库内核开发的工作
    referencehere匆匆忙忙的春招告一段落了,自己最后也找到了数据库内核方向的工作,希望以后能在数据库领域有一番建树。在这篇文章中我将我的学习路径贴出来,帮助对这方面有兴趣的人提供一点指南,当然也只是仅供参考。其实如果按照我的路径学习,我个人觉得可以找的工作不光仅限于数据......
  • 震惊!5分钟就能开发一个微信小程序游戏!
    一次偶然的机会,我发现了腾讯云AI代码助手,支持微信开发者IDE下的编码辅助,并且在代码辅助开发的效率上有很大提升,还可以通过自然语言描述完成最终应用!那么我今天要来试试看用腾讯云AI代码助手来快速开发一个微信小程序游戏五子棋开始开发 创建小程序 打开微信开发者工具......
  • Ubuntu下vscode cmake jlink stm32 开发环境搭建
    安装gcc-arm-none-eabiJLink或者stm32cubeide自带前面两者安装vscode扩展CMakeToolsCortex-Debug修复vscode爆红.vscode/c_cpp_properties.json{"configurations":[{"name":"Linux","includePath"......
  • 瑞芯微主板/开发板Linux系统播放音频方法,触觉智能RK3562开发板演示
    通过桌面双击播放音频​通过桌面播放音频没有声音时,可以查看sound(声音)选项是否设置为speakers(扬声器)播放。命令行播放音频通过aplay-l查看声卡系统默认配置的声卡是rockchipes8388,通过aplay-l命令确定是第几个声卡,如下所示:root@Industio:/$aplay-l****ListofPLAYB......
  • 2024华为云开源开发者论坛召开,20+技术大咖解读开源生态发展
    12月7日,2024华为云开源开发者论坛在上海隆重举行,此次论坛以“开放创新,释放云上数字生产力”为主题,汇聚了来自全球的开源生态合作伙伴、企业、个人与高校开发者,围绕“开源生态前景剖析”,“开源技术解读”,“开源开发者支持与实践”等时下热点开源话题进行分享讨论,旨在帮助开发者基于......
  • 帝国网站模板怎么修改,帝国CMS模板修改指南
    帝国CMS是一种流行的开源内容管理系统,修改模板可以通过以下步骤完成:登录网站后台:使用管理员账号登录到网站的管理后台。通常需要输入用户名和密码。找到模板管理模块:在后台导航菜单中,找到与模板管理相关的模块。这个模块可能被称为“模板管理”或“风格管理”。编......
  • 网站乱码如何修改代码,网站乱码问题解决指南
    网站出现乱码通常是由于字符编码不一致导致的。以下是解决网站乱码问题的步骤:确定字符编码:确定网站使用的字符编码。常见的编码有UTF-8、GBK、GB2312等。修改HTML文件:打开网站的HTML文件。使用代码编辑器找到或添加以下代码,确保charset属性设置为正确的字符编码:<m......