diff --git a/README.md b/README.md index de6c3ef..ea7ba46 100644 --- a/README.md +++ b/README.md @@ -1,109 +1,170 @@  - ♥ 项目基本介绍 + ## 框架介绍 -零度框架是一套基于微服务和领域模型驱动设计的企业级快速开发框架,基于微软 .NET 7+ 最新技术栈构建,容器化微服务最佳实践,零度框架的搭建以开发简单,多屏体验,前后端分离,灵活部署,最少依赖,最新框架为原则,以物联网平台管理系统为业务模型,参考诸多优秀开源框架,采用主流稳定的技术栈,从零开始搭建企业级架构。 +零度框架是一款基于微服务和领域模型驱动设计的企业级快速开发框架。该框架构建于微软 .NET 平台,并采用了最新的技术栈,以实现容器化微服务的最佳实践。搭建零度框架的原则是开发简单、多屏体验、前后端分离、灵活部署、最少依赖以及采用最新框架。此外,零度框架还以物联网平台管理系统为业务模型,参考了众多优秀的开源框架,并采用了主流且稳定的技术栈,从而能够从零开始搭建企业级架构。使用零度框架,您可以实现更高效、更灵活的企业应用开发。 + +## 项目预览 + +![零度云平台](https://oss.xcode.me/notes/zeroframework/cloud-case-max-4.jpg) + + +![技术架构](https://oss.xcode.me/notes/zeroframework/cloud-case-max-5.jpg) + + +## 相关技术 后端技术:Visual Studio 2022 + C# 12.0 + .NET 8.0 + ASP.NET Core + EF Core 前端技术:Visual Studio Code + Node.js + TypeScript + React + ANTD -视频教程:https://www.xcode.me/Training/Module/250 +## 项目演示 演示地址:https://cloud.helloworldnet.com +用户名: admin +密码: guest -演示账号:用户名 admin 密码 guest +## 学习教程 -[] +视频教程:https://www.xcode.me/Training/Module/250 - ♥ 在 Visual Studio 2022 中运行后端微服务 +零度课堂:https://www.xcode.me -1、首先使用 EF Code First 使用代码生成数据库,为了简化操作,以下脚本可完成数据库删除创建迁移并重建数据库,在 Visual Studio 选择「工具」->「NuGet包管理器」->「程序包管理控制台」中执行以下命令即可: +## 技术堆栈 + +![技术堆栈](https://oss.xcode.me/notes/zeroframework/stacks.svg) + +## 项目部署 + +### 部署 Identity Server 微服务 + +#### 数据库迁移 + +修改 「appsettings.Development.json」中的数据库连接字符串,在 Visual Studio 选择「工具」->「NuGet包管理器」->「程序包管理控制台」执行以下命令。 + +1、删除已有数据库 + +```shell -Drop-Database -Context DeviceCenterDbContext -Project ZeroFramework.DeviceCenter.Infrastructure -StartupProject ZeroFramework.DeviceCenter.Infrastructure -Confirm:$false Drop-Database -Context ApplicationDbContext -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API -Confirm:$false +``` + +2、删除迁移文件 + +```shell + Remove-Migration -Context PersistedGrantDbContext -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API Remove-Migration -Context ConfigurationDbContext -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API Remove-Migration -Context ApplicationDbContext -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API -Remove-Migration -Context DeviceCenterDbContext -Project ZeroFramework.DeviceCenter.Infrastructure -StartupProject ZeroFramework.DeviceCenter.Infrastructure + +``` + +3、添加新的迁移文件 + +```shell Add-Migration InitialCreate -c PersistedGrantDbContext -o Migrations/PersistedGrantMigrations -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API Add-Migration InitialCreate -c ConfigurationDbContext -o Migrations/ConfigurationMigrations -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API -Add-Migration InitialCreate -c ApplicationDbContext -o Migrations/ApplicationMigrations -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API -Add-Migration InitialCreate -Context DeviceCenterDbContext -Project ZeroFramework.DeviceCenter.Infrastructure -StartupProject ZeroFramework.DeviceCenter.Infrastructure +Add-Migration InitialCreate -c ApplicationDbContext -o Migrations/ApplicationMigrations -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API![stacks](https://oss.xcode.me/notes/zeroframework/stacks.svg) + + + +``` + +3、执行迁移并自动生成数据库 + +```shell Update-Database -Context PersistedGrantDbContext -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API Update-Database -Context ConfigurationDbContext -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API Update-Database -Context ApplicationDbContext -Project ZeroFramework.IdentityServer.API -StartupProject ZeroFramework.IdentityServer.API +``` + +4、启动 Identity Server 微服务 + +在 Visual Studio 中启动 ZeroFramework.IdentityServer.API 项目,如果启动失败,可尝试重新生成解决方案。 + +### 部署 Device Center 微服务 + +#### 数据库迁移 + +修改 「appsettings.Development.json」中的数据库连接字符串,在 Visual Studio 选择「工具」->「NuGet包管理器」->「程序包管理控制台」执行以下命令。 + +1、删除已有数据库 + +```shell +Drop-Database -Context DeviceCenterDbContext -Project ZeroFramework.DeviceCenter.Infrastructure -StartupProject ZeroFramework.DeviceCenter.Infrastructure -Confirm:$false + +``` + +2、删除迁移文件 + +```shell +Remove-Migration -Context DeviceCenterDbContext -Project ZeroFramework.DeviceCenter.Infrastructure -StartupProject ZeroFramework.DeviceCenter.Infrastructure + +``` + +3、添加新的迁移文件 + +```shell +Add-Migration InitialCreate -Context DeviceCenterDbContext -Project ZeroFramework.DeviceCenter.Infrastructure -StartupProject ZeroFramework.DeviceCenter.Infrastructure +``` + +4、执行迁移并自动生成数据库 + +```shell Update-Database -Context DeviceCenterDbContext -Project ZeroFramework.DeviceCenter.Infrastructure -StartupProject ZeroFramework.DeviceCenter.Infrastructure +``` -2、设备数据通过「分桶模式」存储在 Mongdb 数据库中,因此你需要安装并启动 Mongdb 数据库,并在配置文件中修改连接字符串。 - -3、依次启动 ZeroFramework.IdentityServer.API 和 ZeroFramework.DeviceCenter.API 项目,容器、网关和聚合可暂时不配置,后期根据需要进行配置。 +5、由于该微服务是物联网数据管理平台,设备数据使用分桶模式存储在 MongoDB 数据库中, 因此需要你安装 MongoDB 数据库,并修改 「appsettings.Development.json」中的 MongoDB 连接字符串。 - ♥ 在 Visual Studio Code 中运行前端站点 +6、启动 Device Center 微服务 -1、首先确保系统已安装 Visual Studio Code 工具和 Node.js 环境,并进入 ZeroFramework.DeviceCenter.Web 目录。 - -2、在目录启动命令行并运行:「npm install --global yarn」 和 「yarn install」 即可安装前端所需的 NPM 包,如果失败,可重试几次。 - -3、在目录启动命令行并运行:「npm run dev」即可启动编译,使用 「npm run build 」编译会生成 dist 目录,该目录可直接部署到生产平台。 +在 Visual Studio 中启动 ZeroFramework.DeviceCenter.API 项目,如果启动失败,可尝试重新生成解决方案。 - ♥ 项目更新记录 +## 其它服务配置 -+ 所有项目框架及其用到的包已经升级到 .NET 7 最新版,并消除了很多警告和建议。 +可根据项目情况在 ZeroFramework.ReverseProxy 微服务中自行配置网关和聚合 -+ 在配置文件中添加了 「"UseDemoLaunchMode": true」以表示以演示模式运行,演示模式使用 EF Core 拦截器禁用了编辑和删除操作。 +## 前端 React 项目运行 + +### 使用 Visual Studio Code 运行前端项目 + +首先确保系统已安装 Visual Studio Code 工具和 Node.js 环境,并打开 ZeroFramework.DeviceCenter.Web 所在目录。 + +### 安装依赖 Yarn 前端包管理工具 + +在 Visual Studio Code 中打开终端,运行以下命令: + +```shell +npm install --global yarn +```` +### 安装依赖 NPM 包 +在 Visual Studio Code 中打开终端,运行以下命令: +```shell +yarn install +``` +### 启动并运行项目 + +在 Visual Studio Code 中打开终端,运行以下命令: + +```shell +npm run dev +``` + +### 部署前端项目 + +在 Visual Studio Code 中打开终端,运行以下命令: + +```shell +npm run build +``` + +命令运行成功,生成 DIST 目录,将 DIST 目录下的文件部署到服务器即可。 - ♥ 项目目录结构说明 +## 帮助与反馈 -zeroframework「项目总目录」 -├── ApiGateways「网关和聚合」 -│ └── ZeroFramework.ReverseProxy「网关与反向代理」 -│ ├── Program.cs -│ ├── Properties -│ ├── ZeroFramework.ReverseProxy.csproj -│ ├── appsettings.Development.json -│ ├── appsettings.json -│ ├── bin -│ └── obj -├── BuildingBlocks「公共中间件」 -│ └── EventBus -│ ├── ZeroFramework.EventBus「事件总线抽象」 -│ ├── ZeroFramework.EventBus.MemoryQueue「基于内存的队列」 -│ └── ZeroFramework.EventBus.RabbitMQ「分布式队列」 -├── Services「微服务」 -│ ├── DeviceCenter「基于领域驱动的设备中心微服务」 -│ │ ├── ZeroFramework.DeviceCenter.API「开放接口」 -│ │ ├── ZeroFramework.DeviceCenter.Application「应用层」 -│ │ ├── ZeroFramework.DeviceCenter.BackgroundTasks「生成演示」 -│ │ ├── ZeroFramework.DeviceCenter.Domain「领域层」 -│ │ └── ZeroFramework.DeviceCenter.Infrastructure「基础设施层」 -│ └── Identity「认证和授权微服务」 -│ └── ZeroFramework.IdentityServer.API「OAuth2.0开放接口」 -├── Web -│ └── ZeroFramework.DeviceCenter.Web「基于 ANTD 的前端站点」 -│ ├── README.md -│ ├── ZeroFramework.DeviceCenter.Web.esproj -│ ├── config -│ ├── jest.config.js -│ ├── jsconfig.json -│ ├── mock -│ ├── nuget.config -│ ├── package.json -│ ├── public -│ ├── src -│ ├── tests -│ └── tsconfig.json -└── ZeroFramework.sln「解决方案」 - -♥ 前端学习技术资料整理 - -TypeScript:http://www.patrickzhong.com/TypeScript -React:https://react.docschina.org/docs/getting-started.html -ECMAScript:https://es6.ruanyifeng.com -ANTD:https://ant.design/docs/react/introduce-cn -ANTD PRO:https://pro.ant.design/zh-CN/docs/overview +遇到任何技术问题可加 QQ 群:18668853 进行交流。