# WinformTemplete **Repository Path**: Suendanny/winform-templete ## Basic Information - **Project Name**: WinformTemplete - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-27 - **Last Updated**: 2025-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WinformTemplete 一个基于 SqlSugar ORM 的 Windows Forms 应用程序示例,展示了如何使用依赖注入和模块化设计构建企业级应用程序。 ## 项目结构 ``` WinformTemplete/ ├── Common/ # 公共组件 │ └── DatabaseManager.cs # 数据库连接管理 ├── Models/ # 数据模型 │ └── Blog.cs # 博客实体 ├── Modules/ # 业务模块 │ └── Blog/ # 博客模块 │ ├── BlogForm.cs # 博客管理界面 │ ├── BlogForm.Designer.cs │ ├── IBlogService.cs │ └── BlogService.cs ├── Repositories/ # 数据访问层 │ ├── IBlogRepository.cs │ └── BlogRepository.cs ├── Program.cs # 应用程序入口 └── MainForm.cs # 主窗体 ``` ## 技术栈 - .NET 8.0 - Windows Forms - SqlSugar ORM - Microsoft.Extensions.DependencyInjection - NLog ## 功能特性 1. **模块化设计** - 业务逻辑按模块组织 - 每个模块包含自己的服务、仓储和UI组件 - 支持模块的独立开发和测试 2. **依赖注入** - 使用 Microsoft.Extensions.DependencyInjection - 实现松耦合的组件关系 - 便于单元测试和功能扩展 3. **数据库访问** - 使用 SqlSugar ORM - 支持多种数据库类型 - 提供便捷的CRUD操作 4. **日志记录** - 使用 NLog 进行日志记录 - 支持多种日志级别 - 可配置的日志输出 ## 主要组件 ### 1. 数据库管理 (DatabaseManager) 负责数据库连接的创建和管理,提供全局唯一的数据库连接实例。 ### 2. 博客模块 (Blog) #### 数据模型 - `Blog.cs`: 定义博客实体,包含标题、内容、创建时间等属性 #### 仓储层 - `IBlogRepository`: 定义博客数据访问接口 - `BlogRepository`: 实现博客数据访问,处理数据库操作 #### 服务层 - `IBlogService`: 定义博客业务逻辑接口 - `BlogService`: 实现博客业务逻辑,处理业务规则 #### 表示层 - `BlogForm`: 博客管理界面,提供CRUD操作的UI ### 3. 主窗体 (MainForm) 作为应用程序的主窗口,负责加载和管理各个业务模块。 ## 使用说明 1. **配置数据库连接** - 在 `appsettings.json` 中配置数据库连接字符串 - 支持多种数据库类型(SQL Server、MySQL、SQLite等) 2. **运行应用程序** ```bash dotnet run ``` 3. **使用博客功能** - 查看博客列表 - 添加新博客 - 编辑现有博客 - 删除博客 ## 开发指南 ### 添加新模块 1. 在 `Modules` 目录下创建新的模块文件夹 2. 实现相应的实体、仓储、服务和UI组件 3. 在 `Program.cs` 中注册新的服务 ### 扩展现有功能 1. 在相应的接口中添加新方法 2. 实现接口方法 3. 更新UI组件以支持新功能 ## 最佳实践 1. **代码组织** - 遵循单一职责原则 - 使用接口定义契约 - 保持代码整洁和可维护 2. **错误处理** - 使用 try-catch 处理异常 - 记录错误日志 - 提供友好的错误提示 3. **性能优化** - 使用异步操作 - 优化数据库查询 - 合理使用缓存 ## 贡献指南 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 许可证 MIT License