编程与数学 03-008 《看潮企业管理软件》项目开发 03 项目结构 3-2
摘要:本文以《看潮企业管理软件》为例,系统梳理.NET Framework 4.7.2下C# WinForms同步应用的"够用"骨架:从Program入口、MainForm UI、SyncService业务核、Models数据到日志与配置,给出可扩展文件结构、关键代码片段及WinForms同步陷阱------耗时阻塞UI、Refresh/DoEvents喘口气、资源释放、线程安全。随后展示真实ERP层级目录、启动流程、清单与NuGet依赖,兼顾高DPI、长路径、主题、版本重定向,为老框架升级与现代驱动兼容提供一站式参考。
关键词:WinForms同步、.NET4.7.2、看潮ERP、SyncService、高DPI、Npgsql、DevExpress、应用清单、NuGet、项目结构
人工智能助手:DeepSeek、Kimi
二、项目结构(实际)
(一)文件结构
│ App.config
│ app.manifest
│ KcErp.csproj
│ KcErp.csproj.user
│ KcSln.sln
│ packages.config
│ Program.cs
│ sd.png
│ sd1.png
│ sderp.pfx
│ SdErp_TemporaryKey.pfx
│ structure.txt
│
├─.vs
│ │ SdErp.csproj.dtbcache.json
│ │ StErp.csproj.dtbcache.json
│ │
│ ├─KcErp
│ │ ├─FileContentIndex
│ │ │ d7594b6b-8dbe-489e-a249-630ae30a04d3.vsidx
│ │ │
│ │ └─v17
│ └─KcSln
│ ├─CopilotIndices
│ │ └─17.14.1561.44479
│ │ CodeChunks.db
│ │ SemanticSymbols.db
│ │
│ ├─FileContentIndex
│ │ 16cb55a2-3ce1-4e74-af23-80e8babd68b2.vsidx
│ │ 6043e9bd-adbc-4eca-adcb-cf64568bee25.vsidx
│ │ bfcc1188-67e6-4b02-9f04-14632dc30a51.vsidx
│ │ cb90781d-1b08-459c-a3e8-31421850d42b.vsidx
│ │ daae2d03-1be6-4d08-8939-5b055c448883.vsidx
│ │
│ └─v17
│ DocumentLayout.backup.json
│ DocumentLayout.json
│
├─01Main
│ FmAbout.cs
│ FmAbout.Designer.cs
│ FmAbout.resx
│ FmLogin.cs
│ FmLogin.Designer.cs
│ FmLogin.resx
│ FmLoginbj.cs
│ FmLoginbj.Designer.cs
│ FmLoginbj.resx
│ FmMain.cs
│ FmMain.Designer.cs
│ FmMain.resx
│ FmSp.cs
│ FmSp.Designer.cs
│ FmSp.resx
│
├─02Designer
│ FmGndy.cs
│ FmGndy.Designer.cs
│ FmGndy.resx
│ FmSjzd.cs
│ FmSjzd.Designer.cs
│ FmSjzd.resx
│ FmSjzdWh.cs
│ FmSjzdWh.Designer.cs
│ FmSjzdWh.resx
│
├─03Common
│ KcDes.cs
│ KcDybjsb.cs
│ KcEditfm.cs
│ KcEditgd.cs
│ KcEdittv.cs
│ KcFile.cs
│ KcMain.cs
│ KcTool.cs
│
├─05Users
│ Uf01Flml.cs
│ Uf01Flml.Designer.cs
│ Uf01Flml.resx
│ Uf02Cxsr.cs
│ Uf02Cxsr.Designer.cs
│ Uf02Cxsr.resx
│ Uf03Glsr.cs
│ Uf03Glsr.Designer.cs
│ Uf05Djsr.cs
│ Uf05Djsr.Designer.cs
│ Uf05Djsr.resx
│ Uf06Djsp.cs
│ Uf06Djsp.Designer.cs
│ Uf07Gzjj.cs
│ Uf07Gzjj.Designer.cs
│ Uf08Ywcl.cs
│ Uf08Ywcl.Designer.cs
│ Uf09Djcx.cs
│ Uf09Djcx.Designer.cs
│ Uf10Cxhz.cs
│ Uf10Cxhz.Designer.cs
│
├─11Forms
│ FmBBXZ.cs
│ FmBBXZ.Designer.cs
│ FmDJDR.cs
│ FmDJDR.Designer.cs
│ FmDJFW.cs
│ FmDJFW.Designer.cs
│ FmEXCEL.cs
│ FmEXCEL.Designer.cs
│ FmGGXH.cs
│ FmGGXH.Designer.cs
│ FmGLXX.cs
│ FmGLXX.Designer.cs
│ FmGLXX.resx
│ FmHelp.cs
│ FmHelp.Designer.cs
│ FmLKSZ.cs
│ FmLKSZ.Designer.cs
│ FmMLCZ.cs
│ FmMLCZ.Designer.cs
│ FmSKIN.cs
│ FmSKIN.Designer.cs
│ FmSRCK.cs
│ FmSRCK.Designer.cs
│ FmTEXT.cs
│ FmTEXT.Designer.cs
│ FmWJBJ.cs
│ FmWJBJ.Designer.cs
│ FmWjxz.cs
│ FmWjxz.Designer.cs
│ FmWjxz.resx
│ FmYHMM.cs
│ FmYHMM.Designer.cs
│ FmYhxx.cs
│ FmYhxx.Designer.cs
│ FmYhxx.resx
│ FmZRTJ.cs
│ FmZRTJ.Designer.cs
│
├─21Report
│ FmBbkj.cs
│ FmBbkj.Designer.cs
│ FmBbkj.resx
│ FmDrdc.cs
│ FmDrdc.Designer.cs
│ FmDymb.cs
│ FmDymb.Designer.cs
│ FmDymb.resx
│ FmEcxz.cs
│ FmEcxz.Designer.cs
│ FmMbxz.cs
│ FmMbxz.Designer.cs
│ FmMbxz.resx
│ FmQjxz.cs
│ FmQjxz.Designer.cs
│ FmBbxz.cs
│ FmBbxz.Designer.cs
│
├─31Data
│ KcDb.cs
│
├─bin
│ ├─Debug
│ │ │ DevExpress.BonusSkins.v22.1.dll
│ │ │ DevExpress.Charts.v22.1.Core.dll
│ │ │ DevExpress.Charts.v22.1.Core.xml
│ │ │ DevExpress.CodeParser.v22.1.dll
│ │ │ DevExpress.Data.Desktop.v22.1.dll
│ │ │ DevExpress.Data.Desktop.v22.1.xml
│ │ │ DevExpress.Data.v22.1.dll
│ │ │ DevExpress.Data.v22.1.xml
│ │ │ DevExpress.DataAccess.v22.1.dll
│ │ │ DevExpress.DataAccess.v22.1.UI.dll
│ │ │ DevExpress.DataAccess.v22.1.UI.xml
│ │ │ DevExpress.DataAccess.v22.1.xml
│ │ │ DevExpress.DataVisualization.v22.1.Core.dll
│ │ │ DevExpress.Diagram.v22.1.Core.dll
│ │ │ DevExpress.Diagram.v22.1.Core.xml
│ │ │ DevExpress.Drawing.v22.1.dll
│ │ │ DevExpress.Images.v22.1.dll
│ │ │ DevExpress.Office.v22.1.Core.dll
│ │ │ DevExpress.Office.v22.1.Core.xml
│ │ │ DevExpress.Pdf.v22.1.Core.dll
│ │ │ DevExpress.Pdf.v22.1.Core.xml
│ │ │ DevExpress.Pdf.v22.1.Drawing.dll
│ │ │ DevExpress.Pdf.v22.1.Drawing.xml
│ │ │ DevExpress.PivotGrid.v22.1.Core.dll
│ │ │ DevExpress.PivotGrid.v22.1.Core.xml
│ │ │ DevExpress.Printing.v22.1.Core.dll
│ │ │ DevExpress.Printing.v22.1.Core.xml
│ │ │ DevExpress.RichEdit.v22.1.Core.dll
│ │ │ DevExpress.RichEdit.v22.1.Core.xml
│ │ │ DevExpress.RichEdit.v22.1.Export.dll
│ │ │ DevExpress.Sparkline.v22.1.Core.dll
│ │ │ DevExpress.Sparkline.v22.1.Core.xml
│ │ │ DevExpress.Spreadsheet.v22.1.Core.dll
│ │ │ DevExpress.Spreadsheet.v22.1.Core.xml
│ │ │ DevExpress.TreeMap.v22.1.Core.dll
│ │ │ DevExpress.TreeMap.v22.1.Core.xml
│ │ │ DevExpress.Utils.v22.1.dll
│ │ │ DevExpress.Utils.v22.1.UI.dll
│ │ │ DevExpress.Utils.v22.1.UI.xml
│ │ │ DevExpress.Utils.v22.1.xml
│ │ │ DevExpress.Xpo.v22.1.dll
│ │ │ DevExpress.Xpo.v22.1.xml
│ │ │ DevExpress.XtraBars.v22.1.dll
│ │ │ DevExpress.XtraBars.v22.1.xml
│ │ │ DevExpress.XtraCharts.v22.1.dll
│ │ │ DevExpress.XtraCharts.v22.1.Extensions.dll
│ │ │ DevExpress.XtraCharts.v22.1.Wizard.dll
│ │ │ DevExpress.XtraCharts.v22.1.Wizard.xml
│ │ │ DevExpress.XtraCharts.v22.1.xml
│ │ │ DevExpress.XtraDiagram.v22.1.dll
│ │ │ DevExpress.XtraDiagram.v22.1.xml
│ │ │ DevExpress.XtraEditors.v22.1.dll
│ │ │ DevExpress.XtraEditors.v22.1.xml
│ │ │ DevExpress.XtraGauges.v22.1.Core.dll
│ │ │ DevExpress.XtraGauges.v22.1.Core.xml
│ │ │ DevExpress.XtraGrid.v22.1.dll
│ │ │ DevExpress.XtraGrid.v22.1.xml
│ │ │ DevExpress.XtraLayout.v22.1.dll
│ │ │ DevExpress.XtraLayout.v22.1.xml
│ │ │ DevExpress.XtraNavBar.v22.1.dll
│ │ │ DevExpress.XtraNavBar.v22.1.xml
│ │ │ DevExpress.XtraPdfViewer.v22.1.dll
│ │ │ DevExpress.XtraPdfViewer.v22.1.xml
│ │ │ DevExpress.XtraPivotGrid.v22.1.dll
│ │ │ DevExpress.XtraPivotGrid.v22.1.xml
│ │ │ DevExpress.XtraPrinting.v22.1.dll
│ │ │ DevExpress.XtraPrinting.v22.1.xml
│ │ │ DevExpress.XtraReports.v22.1.CodeCompletion.dll
│ │ │ DevExpress.XtraReports.v22.1.CodeCompletion.xml
│ │ │ DevExpress.XtraReports.v22.1.Design.Tool.dll
│ │ │ DevExpress.XtraReports.v22.1.dll
│ │ │ DevExpress.XtraReports.v22.1.Extensions.dll
│ │ │ DevExpress.XtraReports.v22.1.Extensions.xml
│ │ │ DevExpress.XtraReports.v22.1.Service.dll
│ │ │ DevExpress.XtraReports.v22.1.Service.xml
│ │ │ DevExpress.XtraReports.v22.1.xml
│ │ │ DevExpress.XtraRichEdit.v22.1.dll
│ │ │ DevExpress.XtraRichEdit.v22.1.xml
│ │ │ DevExpress.XtraSpreadsheet.v22.1.dll
│ │ │ DevExpress.XtraSpreadsheet.v22.1.xml
│ │ │ DevExpress.XtraTreeList.v22.1.dll
│ │ │ DevExpress.XtraTreeList.v22.1.xml
│ │ │ DevExpress.XtraTreeMap.v22.1.dll
│ │ │ DevExpress.XtraTreeMap.v22.1.xml
│ │ │ DevExpress.XtraVerticalGrid.v22.1.dll
│ │ │ DevExpress.XtraVerticalGrid.v22.1.xml
│ │ │ EnvDTE.dll
│ │ │ EnvDTE80.dll
│ │ │ hyx9seting.xml
│ │ │ hyx9xtzt01 华岳软件PGSQL模板账套.xml
│ │ │ KcErp.exe
│ │ │ KcErp.exe.config
│ │ │ KcErp.pdb
│ │ │ KcErpseting.xml
│ │ │ Microsoft.Bcl.AsyncInterfaces.dll
│ │ │ Npgsql.dll
│ │ │ SdErp.exe
│ │ │ SdErp.exe.config
│ │ │ SdErp.pdb
│ │ │ sderpseting.xml
│ │ │ StErp.exe
│ │ │ StErp.exe.config
│ │ │ StErp.pdb
│ │ │ stseting.xml
│ │ │ System.Buffers.dll
│ │ │ System.Memory.dll
│ │ │ System.Numerics.Vectors.dll
│ │ │ System.Runtime.CompilerServices.Unsafe.dll
│ │ │ System.Text.Encodings.Web.dll
│ │ │ System.Text.Json.dll
│ │ │ System.Threading.Tasks.Extensions.dll
│ │ │ System.ValueTuple.dll
│ │ │ System.ValueTuple.xml
│ │ │
│ │ ├─FormCs
│ │ │ │ KC01_1920_1032.xml
│ │ │ │ stpg1301_1920_1032.xml
│ │ │ │ stpg1301_2560_1380.xml
│ │ │ │
│ │ │ ├─image1
│ │ │ │ cd.txt
│ │ │ │ CD业务处理.png
│ │ │ │ CD交叉查询.png
│ │ │ │ CD会话信息.png
│ │ │ │ CD作废.png
│ │ │ │ CD修改.png
│ │ │ │ CD全部回退.png
│ │ │ │ CD全部审核.png
│ │ │ │ CD全部流转.png
│ │ │ │ CD全部登记.png
│ │ │ │ CD公式重算.png
│ │ │ │ CD关联输入.png
│ │ │ │ CD分类目录.png
│ │ │ │
│ │ │ ├─image2
│ │ └─zh-CN
│ │ DevExpress.Blazor.Reporting.v22.1.Viewer.resources.dll
│ │ DevExpress.Blazor.RichEdit.v22.1.resources.dll
│ │ DevExpress.Blazor.v22.1.resources.dll
│ │ DevExpress.Charts.Designer.v22.1.resources.dll
│ │ DevExpress.Dashboard.v22.1.Core.resources.dll
│ │ DevExpress.Dashboard.v22.1.Web.resources.dll
│ │ DevExpress.Dashboard.v22.1.Win.resources.dll
│ │ DevExpress.Data.v22.1.resources.dll
│ │ DevExpress.DataAccess.v22.1.resources.dll
│ │ DevExpress.DataAccess.v22.1.UI.resources.dll
│ │ DevExpress.Diagram.v22.1.Core.resources.dll
│ │ DevExpress.Dialogs.v22.1.Core.resources.dll
│ │ DevExpress.EntityFrameworkCore.Security.v22.1.resources.dll
│ │ DevExpress.ExpressApp.AuditTrail.Xpo.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Blazor.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Chart.v22.1.resources.dll
│ │ DevExpress.ExpressApp.CloneObject.Xpo.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Dashboards.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Dashboards.Web.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Dashboards.Win.v22.1.resources.dll
│ │ DevExpress.ExpressApp.FileAttachment.Blazor.v22.1.resources.dll
│ │ DevExpress.ExpressApp.FileAttachment.Web.v22.1.resources.dll
│ │ DevExpress.ExpressApp.FileAttachment.Win.v22.1.resources.dll
│ │ DevExpress.ExpressApp.HtmlPropertyEditor.Win.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Kpi.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Maps.Web.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Notifications.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Notifications.Web.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Objects.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Office.Web.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Office.Win.v22.1.resources.dll
│ │ DevExpress.ExpressApp.PivotChart.v22.1.resources.dll
│ │ DevExpress.ExpressApp.PivotChart.Web.v22.1.resources.dll
│ │ DevExpress.ExpressApp.PivotChart.Win.v22.1.resources.dll
│ │ DevExpress.ExpressApp.PivotGrid.v22.1.resources.dll
│ │ DevExpress.ExpressApp.PivotGrid.Web.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Reports.v22.1.resources.dll
│ │ DevExpress.ExpressApp.Reports.Web.v22.1.resources.dll
│
└─Properties
AssemblyInfo.cs
licenses.licx
Resources.Designer.cs
Resources.resx
Settings.Designer.cs
Settings.settings
(二)核心结构概览
| 路径层级 | 文件夹/文件 | 类型 / 说明 |
|---|---|---|
| (根目录) | KcSln.sln | 解决方案文件 |
| KcErp.csproj | C# 项目文件 | |
| Program.cs | 主程序入口文件 | |
| App.config, .manifest, .pfx 等 | 配置文件、密钥等 | |
| 01Main/ | 主窗体模块 (登录、主界面) | |
| 02Designer/ | 设计器窗体模块 (基础数据维护) | |
| 03Common/ | 公共类库模块 (工具、辅助类) | |
| 05Users/ | 用户控件模块 (功能面板) | |
| 11Forms/ | 业务窗体模块 (具体业务操作界面) | |
| 21Report/ | 报表窗体模块 (各类报表) | |
| 31Data/ | 数据访问模块 (数据库操作类) | |
| bin/ | 编译输出目录 | |
| Properties/ | 项目属性目录 (程序集信息、资源) | |
| .vs/ | VS临时目录 (IDE生成,可忽略) | |
| bin/Debug/ | KcErp.exe | 可执行程序 |
| Npgsql.dll | PostgreSQL 数据库驱动 | |
| DevExpress.dll* | DevExpress 控件库(大量) | |
| FormCs/image1, image2/ | 程序用到的图标资源 |
(三)详细结构关系
| 文件夹 | 主要文件 | 文件类型 | 功能说明 |
|---|---|---|---|
| 根目录 | KcSln.sln | 解决方案文件 | Visual Studio 解决方案入口 |
| KcErp.csproj | 项目文件 | 定义项目编译规则和引用 | |
| Program.cs | C# 代码文件 | 应用程序主入口点 | |
| App.config | 配置文件 | 应用程序运行时配置 | |
| 其他 (.pfx, .png等) | 资源文件 | 签名证书、图片等 | |
| 01Main/ | FmMain.cs / .Designer.cs / .resx | WinForms 窗体 | 程序主界面 |
| FmLogin.cs / ... | WinForms 窗体 | 用户登录界面 | |
| FmAbout.cs / ... | WinForms 窗体 | "关于"信息界面 | |
| 02Designer/ | FmSjzd.cs / ... | WinForms 窗体 | 基础数据字典维护 |
| FmGndy.cs / ... | WinForms 窗体 | 相关设计器功能 | |
| 03Common/ | KcMain.cs, KcTool.cs, KcFile.cs 等 | C# 公共类 | 全局工具方法、业务逻辑基类 |
| 05Users/ | Uf01Flml.cs / ... 至 Uf10Cxhz.cs | 用户控件 | 各种功能面板 (如数据录入、查询) |
| 11Forms/ | FmBBXZ.cs, FmDJDR.cs, FmEXCEL.cs 等 | WinForms 业务窗体 | 具体的业务操作功能界面 |
| 21Report/ | FmBbkj.cs, FmDymb.cs, FmEcxz.cs 等 | WinForms 报表窗体 | 报表展示和打印相关功能 |
| 31Data/ | KcDb.cs | C# 数据类 | 数据库连接与操作核心类 |
| Properties/ | AssemblyInfo.cs | 程序集信息 | 版本、版权等元数据 |
| Settings.settings / .Designer.cs | 设置文件 | 用户级应用程序设置 | |
| Resources.resx / .Designer.cs | 资源文件 | 嵌入的字符串、图标等资源 | |
| bin/Debug/ | KcErp.exe | 可执行程序 | 编译生成的应用程序 |
| *.config | 配置文件 | 运行时的配置文件副本 | |
| Npgsql.dll | 数据库驱动 | PostgreSQL .NET 数据提供程序 | |
| DevExpress.*.dll (大量) | 第三方控件库 | DevExpress WinForms 组件库 | |
| FormCs/ 子目录 | XML及图片资源 | 窗体布局配置和按钮图标 |
(本课题未完待续)