当前位置: 首页 > news >正文

ERP WPF框架源码 1,ERP 开发框架; 2,ERP 模块化编程; 3,以分散解耦的方式...

ERP WPF框架源码 1,ERP 开发框架; 2,ERP 模块化编程; 3,以分散解耦的方式编程; 4,配置方式编程; 5,界面美观大方;可以配置各种图片; 6,工业上位机与MES开发 7,数据库完整; 8,自动链接数据库方式,设定数据库链接方式; 9,插件是编程开发; 10,本项目可以VS2017_VS2022均可以开发; 11,数据库,SQLSERVER2008+以上均可开发;

"搞ERP开发的兄弟都知道,框架选型这事能让人头秃。最近在折腾一套开源的WPF框架,发现它的架构设计有点东西。比如在模块解耦这块,直接上硬核的Prism框架实现动态加载,看这个ModuleCatalog配置就明白了:

<modularity:ModuleCatalog xmlns="http://prismlibrary.com/"> <modularity:ModuleInfo Ref="InventoryModule.xap" ModuleName="Inventory" ModuleType="ERP.Modules.InventoryModule, ERP.Client"/> </modularity:ModuleCatalog>

这种声明式配置让模块像乐高积木一样随时插拔,特别是当需要给不同客户定制功能时,直接注释掉不需要的模块节点就行。数据库连接池的设计更骚气,配置文件里玩嵌套结构:

"ConnectionPools": { "MesDB": { "Provider": "SqlServer", "ConnectionString": "Server=.;Database=MES_Prod;", "Timeout": 30 }, "LogDB": { "Provider": "Sqlite", "ConnectionString": "Data Source=logs.db", "IsReadOnly": true } }

框架底层用Polly做了重试策略,自动处理网络闪断的情况。最让我惊艳的是它的样式系统,通过资源字典实现主题秒换。比如这个带动画效果的按钮样式:

<Style TargetType="Button" BasedOn="{StaticResource MetroButton}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Grid> <Border x:Name="RippleContainer" Background="{TemplateBinding Background}" CornerRadius="4"> <ContentPresenter/> </Border> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Pressed"> <Storyboard> <DoubleAnimation Storyboard.TargetName="RippleEffect" Storyboard.TargetProperty="Opacity" To="0.6" Duration="0:0:0.1"/> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>

插件开发接口设计得够直白,继承IPlugin接口就能接入系统功能流。比如实现一个生产看板插件:

public class ProductionMonitorPlugin : IPlugin, IDashboardWidget { public void Initialize() { // 注入OpcUA数据采集器 Container.Resolve<IOpcService>().Subscribe("ns=3;s=ProductionRate", UpdateRate); } private void UpdateRate(object value) { // 这里用到了框架的线程调度器 Dispatcher.Current.Invoke(() => Rate = Convert.ToDouble(value)); } }

数据库迁移脚本的处理也够智能,框架内置的VersionedMigration类会自动比对版本号执行增量SQL:

public class _20230501_AddEquipmentTable : Migration { public override void Up() { Execute.Sql(@"CREATE TABLE Equipment ( Id UNIQUEIDENTIFIER PRIMARY KEY, Code NVARCHAR(50) NOT NULL, LastMaintenanceDate DATETIME)"); } }

这套架构最爽的是解耦彻底,前几天给注塑厂做MES对接,直接把他们的老旧PLC驱动包成DLL扔进Plugins目录就完事了。不过要吐槽下文档确实简陋,得边啃源码边猜设计意图,好在项目结构清晰,啃起来不算太费牙口。"

ERP WPF框架源码 1,ERP 开发框架; 2,ERP 模块化编程; 3,以分散解耦的方式编程; 4,配置方式编程; 5,界面美观大方;可以配置各种图片; 6,工业上位机与MES开发 7,数据库完整; 8,自动链接数据库方式,设定数据库链接方式; 9,插件是编程开发; 10,本项目可以VS2017_VS2022均可以开发; 11,数据库,SQLSERVER2008+以上均可开发;

http://www.jsqmd.com/news/329585/

相关文章:

  • 2026年福州广告公司测评报告——年度综合评测与用户口碑实证分析
  • 2026年内蒙古广告公司推荐:多场景营销需求深度评价,针对预算有限与效果不彰难题
  • TML新手别慌!用纯HTML+CSS实现天窗扬起合上特效(附细节踩坑指南)
  • 如何选择适配不同盟市的本土广告服务?2026年内蒙古广告公司全面评测与场景化推荐
  • 2026年福州广告公司推荐:针对初创企业成本痛点,基于标准化服务与本地场景深度评价
  • 1688获得商品类目调取商品榜单
  • 全自动双片钉箱机优选指南:2026年口碑厂商推荐,有名的全自动双片钉箱机推荐排行技术领航,品质之选
  • 交稿前一晚!千笔,遥遥领先的AI论文网站
  • 埃拉菲布拉诺Elafibranor适应症与用法治疗原发性胆汁性胆管炎的每日一次口服剂量
  • 电商品牌如何选服务商?2026年福州广告公司推荐与评价,直击流量成本与出海痛点
  • 2026年内蒙古广告公司推荐:技术全栈与效果保障维度评价,涵盖多行业场景与增长确定性痛点
  • 情感化报告设计:让量子测试结果更人性
  • 福州广告公司哪家效果更好?2026年基于实战案例的评价与推荐
  • 用AI写国际专利:开发者出海工具包
  • 【小程序毕设源码分享】基于SSM+小程序的民宿预定系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • [大模型实战 01] 本地大模型初体验:Ollama 部署与 Python 调用指南
  • 如何为实体企业选广告服务?2026年黑龙江广告公司全面推荐与评测,直击效果验证痛点
  • 来,今天咱们手把手盘一个COMSOL里特别带劲的介质球模型。这玩意儿在等离子体清洗、材料表面处理这些工业场景里挺常见,就拿氩气和氦气这两种常见工作气体说事儿
  • 2026年内蒙古广告公司推荐:基于多行业应用评测,解决本地化营销与成本控制痛点
  • 基于Java Web的网上购物系统(11860)
  • 【小程序毕设源码分享】基于SSM+小程序的健康管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 黑龙江企业品牌升级找谁?2026年黑龙江广告公司推荐与排名,解决策略与执行脱节痛点
  • 【AI学习1】了解开源大模型 - 教程
  • 星巴克星礼卡回收技巧
  • 2026年黑龙江广告公司推荐:多场景实战评测,解决本地企业获客与转化核心痛点
  • 基于yolov5深度学习的棉花病虫害图像识别系统[python]-计算机毕业设计源码+LW文档
  • 1988-2025年上市公司数字、绿色转型协同度数据
  • 2000-2024年上市公司制度性交易成本+Stata代码
  • 基于yolov5深度学习的苹果叶片病虫害图像识别系统[python]-计算机毕业设计源码+LW文档
  • 基于yolov5深度学习的驾驶道路损坏识别系统[python]-计算机毕业设计源码+LW文档