# Sharp-Basic Framework [![Version](https://img.shields.io/badge/version-1.0.1-blue.svg)](https://gitea.duyl328.org/jimmy/sharp-basic) [![License](https://img.shields.io/badge/license-AGPL--3.0--or--later-green.svg)](LICENSE) [![.NET](https://img.shields.io/badge/.NET-8.0-purple.svg)](https://dotnet.microsoft.com/) 一个基于 .NET 8 的现代化工业自动化与企业级应用开发套件,采用模块化架构设计,提供了从底层通信、基础设施到上层 UI 的完整解决方案。 ## 📋 项目信息 - **版本**: 1.0.1 - **作者**: [duyl328](https://seyl.me/) - **仓库**: [https://gitea.duyl328.org/jimmy/sharp-basic](https://gitea.duyl328.org/jimmy/sharp-basic) - **许可证**: AGPL-3.0-or-later ## 🏗️ 架构概览 本项目包含以下核心模块,旨在实现高内聚、低耦合的开发体验: ### 🔌 核心基础设施 - **[Sharp.Common](Common/README.md)**: 基础工具库。提供轻量级 DI 容器 (`Global`)、函数式结果模式 (`Result`)、以及丰富的扩展方法(String, DateTime, Encryption, Reflection)。 - **[Sharp.Config](Config/README.md)**: 强大的配置管理。支持 JSON/XML/INI/TOML 多源聚合、强类型绑定和数据注解验证。 - **[Sharp.Log](Log/README.md)**: 统一日志门面。基于 Serilog 封装,支持一行代码接入,提供结构化日志和文件滚动策略。 - **[Sharp.EventBus](EventBus/README.md)**: (开发中) 轻量级事件总线。 ### 💾 数据与存储 - **[Sharp.Data](Data/README.md)**: 极简数据访问层。基于 EF Core,提供开箱即用的仓储模式、自动审计(创建人/时间)、软删除和分页支持。 - **[Sharp.Repository](Repository/README.md)**: 数据库集成模块。通过配置切换 SQL Server/MySQL/PostgreSQL/Sqlite,支持自动迁移。 ### 🌐 网络与通信 - **[Sharp.NetServer](NetServer/README.md)**: 轻量级 Web 框架。基于 `HttpListener`,提供类似 ASP.NET Core 的 Controller/Route/Middleware 开发体验,适合嵌入式或桌面应用内嵌 Web 服务。 - **[Sharp.NetClient](NetClient/README.md)**: 强类型 HTTP 客户端。集成 Polly 重试策略、Bearer Token 认证和 multipart 上传。 - **[Sharp.Ports](Ports/README.md)**: 串口通信库。提供串口发现、连接管理、数据监听和诊断工具。 ### 🏭 工业互联 (IIoT) - **[Sharp.Plc](Plc/README.md)**: PLC 通信抽象层。定义了统一的读写、订阅接口。 - **[Sharp.Plc.Siemens](Plc.Siemens/README.md)**: 西门子驱动实现。支持 S7-200/300/400/1200/1500,内置智能批量读取优化算法(自动合并相邻地址请求)。 ### 🖥️ 桌面应用 UI - **[Sharp.Wpf](Wpf/README.md)**: WPF 基础库。提供 MVVM 基类、全局异常捕获、常用转换器、对话框服务和行为扩展。 - **[Sharp.Client](Client/README.md)**: 综合客户端示例。集成 PLC 监控、串口调试和用户登录功能的工业控制台应用。 - **[Sharp.Server](Server/README.md)**: 服务器控制台示例。展示了如何在一个 WPF 应用中托管 NetServer Web 服务,并提供可视化管理界面。 ## 🚀 快速开始 ### 环境要求 - .NET 8.0 SDK - Visual Studio 2022 或 VS Code ### 构建项目 ```bash # 还原依赖 dotnet restore # 编译解决方案 dotnet build Sharp.sln -c Debug ``` ### 运行示例 **1. 运行 WPF 客户端:** ```bash dotnet run --project Client/Client.csproj ``` **2. 运行嵌入式 Web 服务器:** ```bash dotnet run --project Server/Server.csproj ``` **3. 运行 NetServer 纯控制台示例:** ```bash dotnet run --project NetServer/Examples ``` ## 🧪 测试 项目包含完整的单元测试,位于解决方案同级的 `test` 目录中。 ```bash # 运行所有测试 dotnet test Sharp.sln ``` ## 🤝 贡献指南 欢迎提交 Pull Request 或 Issue。请确保: 1. 代码风格符合 .NET 规范。 2. 新增功能包含对应的单元测试。 3. 提交信息简洁明了。 ## 📄 许可证 本项目采用 [GNU Affero General Public License v3.0 或更高版本](LICENSE) (AGPL-3.0-or-later) 开源协议。 **关键要求**: - ✅ 可以自由使用、修改和分发 - ✅ 必须保持开源(包括网络服务) - ✅ 修改后必须使用相同许可证 - ⚠️ **网络服务条款**:如果您修改本软件并通过网络提供服务(如 Web API),必须向用户提供修改后的源代码 如需商业许可或有疑问,请联系作者。 ## 👤 作者 **duyl328** - 网站: [https://seyl.me/](https://seyl.me/) - 仓库: [https://gitea.duyl328.org/jimmy/sharp-basic](https://gitea.duyl328.org/jimmy/sharp-basic) 查看 [AUTHORS](AUTHORS) 文件了解完整贡献者列表。 --- Copyright © 2024-2025 duyl328. All rights reserved.