2025-12-31 11:26:10 +08:00
2025-12-15 13:37:11 +08:00
2025-12-31 11:26:10 +08:00
2025-12-30 09:17:25 +08:00
2025-12-11 14:44:58 +08:00
2025-12-28 17:57:29 +08:00
2025-12-28 17:08:46 +08:00
2025-12-22 19:50:09 +08:00
2025-12-28 17:08:46 +08:00
2025-12-28 17:08:46 +08:00
2025-12-28 17:08:46 +08:00
2025-12-28 17:08:46 +08:00

Sharp-Basic Framework

Version License .NET

一个基于 .NET 8 的现代化工业自动化与企业级应用开发套件,采用模块化架构设计,提供了从底层通信、基础设施到上层 UI 的完整解决方案。

📋 项目信息

🏗️ 架构概览

本项目包含以下核心模块,旨在实现高内聚、低耦合的开发体验:

🔌 核心基础设施

  • Sharp.Common: 基础工具库。提供轻量级 DI 容器 (Global)、函数式结果模式 (Result<T>)、以及丰富的扩展方法(String, DateTime, Encryption, Reflection)。
  • Sharp.Config: 强大的配置管理。支持 JSON/XML/INI/TOML 多源聚合、强类型绑定和数据注解验证。
  • Sharp.Log: 统一日志门面。基于 Serilog 封装,支持一行代码接入,提供结构化日志和文件滚动策略。
  • Sharp.EventBus: (开发中) 轻量级事件总线。

💾 数据与存储

  • Sharp.Data: 极简数据访问层。基于 EF Core,提供开箱即用的仓储模式、自动审计(创建人/时间)、软删除和分页支持。
  • Sharp.Repository: 数据库集成模块。通过配置切换 SQL Server/MySQL/PostgreSQL/Sqlite,支持自动迁移。

🌐 网络与通信

  • Sharp.NetServer: 轻量级 Web 框架。基于 HttpListener,提供类似 ASP.NET Core 的 Controller/Route/Middleware 开发体验,适合嵌入式或桌面应用内嵌 Web 服务。
  • Sharp.NetClient: 强类型 HTTP 客户端。集成 Polly 重试策略、Bearer Token 认证和 multipart 上传。
  • Sharp.Ports: 串口通信库。提供串口发现、连接管理、数据监听和诊断工具。

🏭 工业互联 (IIoT)

  • Sharp.Plc: PLC 通信抽象层。定义了统一的读写、订阅接口。
  • Sharp.Plc.Siemens: 西门子驱动实现。支持 S7-200/300/400/1200/1500,内置智能批量读取优化算法(自动合并相邻地址请求)。

🖥️ 桌面应用 UI

  • Sharp.Wpf: WPF 基础库。提供 MVVM 基类、全局异常捕获、常用转换器、对话框服务和行为扩展。
  • Sharp.Client: 综合客户端示例。集成 PLC 监控、串口调试和用户登录功能的工业控制台应用。
  • Sharp.Server: 服务器控制台示例。展示了如何在一个 WPF 应用中托管 NetServer Web 服务,并提供可视化管理界面。

🚀 快速开始

环境要求

  • .NET 8.0 SDK
  • Visual Studio 2022 或 VS Code

构建项目

# 还原依赖
dotnet restore

# 编译解决方案
dotnet build Sharp.sln -c Debug

运行示例

1. 运行 WPF 客户端:

dotnet run --project Client/Client.csproj

2. 运行嵌入式 Web 服务器:

dotnet run --project Server/Server.csproj

3. 运行 NetServer 纯控制台示例:

dotnet run --project NetServer/Examples

🧪 测试

项目包含完整的单元测试,位于解决方案同级的 test 目录中。

# 运行所有测试
dotnet test Sharp.sln

🤝 贡献指南

欢迎提交 Pull Request 或 Issue。请确保:

  1. 代码风格符合 .NET 规范。
  2. 新增功能包含对应的单元测试。
  3. 提交信息简洁明了。

📄 许可证

本项目采用 GNU Affero General Public License v3.0 或更高版本 (AGPL-3.0-or-later) 开源协议。

关键要求:

  • ✅ 可以自由使用、修改和分发
  • ✅ 必须保持开源(包括网络服务)
  • ✅ 修改后必须使用相同许可证
  • ⚠️ 网络服务条款:如果您修改本软件并通过网络提供服务(如 Web API),必须向用户提供修改后的源代码

如需商业许可或有疑问,请联系作者。

👤 作者

duyl328

查看 AUTHORS 文件了解完整贡献者列表。


Copyright © 2024-2025 duyl328. All rights reserved.

S
Description
C#公共基础核心
Readme AGPL-3.0
5.6 MiB
0 Stars 1 Watchers 0 Forks
Languages
C# 98.6%
Batchfile 0.9%
PowerShell 0.5%