V.CodeGenerator WPF代码生成器

前言:
WTM 的影响,想自己尝试写一个自动生成WPF项目的代码生成器
本文主要用于介绍基础库的使用,关于代码生成器的使用后续另开章节。

这个基类倒是断断续续写了一年多。。实际的代码生成工具还是一年前的模样,工作太忙,只能摸鱼完善基类

Vampirewal.Core内容

EFCore版本
Nuget:Install-Package Vampirewal.Core -Version 1.0.1.7


SqlSugar版本
Nuget:Install-Package Vampirewal.Core -Version 2.2.1-beta


CommunityToolkit.Mvvm版本
Nuget:Install-Package Vampirewal.Core -Version 3.1.1-beta

1、AppConfig(程序的配置文件)

2、IoC容器

3、基础服务

4、Model基类

5、SimpleMVVM

6、各种帮助类

7、WPF自定义窗体

8、WPF自定义控件

9、自动更新扩展程序(开发中)

10、AOP功能

 
 

版本更新记录

2022-12-15

大版本更新,2.0版本将继续维护自己造的一些轮子,3.0版本使用了CommunityToolkit.Mvvm来代替之前的一些内容,同时调整了一部分代码的结构,在运行速度上有较大提升。
3.0移除了2.0中的IoC容器、自己定义的RelayCommand命令、NotifyBase、ViewModelLocator等,切换至CommunityToolkit.Mvvm中的一些方法进行替代
3.0中的ViewModelLocator,换成了VampirewalBootStartUp,也是需要在ViewModel中继承并实现,在里面进行一些服务的注册。

2022-12-13

修改:较多内置服务更换名称
修复:一些细节
新增:AOP功能,后续添加专题内解释

2022-11-26

新增:TreeListView控件,就是树形的DataGrid控件,详细请看自定义控件章节
更新:VampirewalIoc组件新增泛型类型注册,现阶段主要放在ViewModelLocator中注册:VampirewalIoC.GetInstance().RegisterService(typeof(SqlSugarRepository<>), RegisterType.Factory);即可通过构造函数SqlSugarRepository _repUnited,来进行注入,或通过属性的方式进行注入。
优化:调整了较多的代码细节

2022-11-07

新增:控件事件绑定命令的方式,来源作者:若汝棋茗,原理地址,缝合到我这里之后,改名为:TouchEventCommands,使用方式与原内容一致

2022-11-1

新增:DetailItemChangeBaseModel基类,用于明细项涉及到变更的情况
修改:VampirewalDbBase数据库连接操作基类中client从SqlSugarClient换成了SqlSugarScope,更好的适应多线程
新增:IAppConfig中,添加连接域配置
新增:TuoMinHelper文本脱敏助手
新增:Utils中添加2个模型转换ModelConverter

2022-6-11:年后因公司的事情太忙,基础库的代码断断续续的在更新,但是一直没时间写更新文档

修改:拆分了1个 组件出去到nuget上(详细看第3条基础服务),让基础库减少了1个引用
修改:配置文件AppConfig中,新增1个集合用于保存模块化开发的dll路径,用于VampirewalIoC容器(详细查看第1条和第2条)
移除:原CustomIoC是借鉴了MvvmLight中的IoC容器,现移除
新增:VampirewalIoC是作者自己学习后写的,功能较简单,但暂时够用。(支持属性注入)
修改:model基类中,BillId和DtlId上的导出Excel特性移除,如需导出,需在继承的类中new一下BillId或DtlId,然后添加对应的特性
新增:组件中新增1个小玩意,可以检查方法的执行时间
新增:组件中新增1个模型错误验证服务VampirewalValidationService,model中的属性,需有继承自ValidationAttribute的特性

2022-3-10

  • 修改:NotifyBase中的一个Set方法改成ActionSet,区别一下。
  • 移除:MainWindowBase窗体基类中,CloseButton_Click方法重复了。
  • 新增:WindowBase中新增1个窗体关闭时的依赖属性,用于将窗体关闭的方法可Binding,更贴合MVVM

2022-3-9

  • NotifyBase中,新增1个方法:带委托的属性变更通知

2022-2-18

  • ORM更换:从EFCore更换为SqlSugar,低于2.X版本的为EFCore版本
  • 新增:Model基类:TopModel、BillBaseModel、DetailBaseModel和TreeDetailBaseModel
  • 新增:ViewModel基类:BillVM、BillListBaseVM、DetailVM

2021-12-22

  • 新增:自定义控件(高度自定义的搜索栏);详细请看自定义控件文章

2021-12-2

  • 调整:ViewModelLocatorBase中将注册服务和ViewModel的方法拆开,有执行先后顺序。
  • 新增:针对DataGrid新增1个Behavior方法,用于给DataGrid控件添加Group分组,具体使用方法,详细请看第8条(自定义控件)内介绍

2021-11-16

  • 新增:继承VampirewalApplication的App类,新增1个全局异常捕获,需重写GlobalExceptions;

2021-11-15

  • 新增:自动更新扩展功能(Github地址)还在开发中,现在有问题在于压缩和解压缩这块,后续再写一个打包工具
  • 新增:ViewModelLocatorBaseEmpty;一个空的ViewModelLocatror,无任何额外组件注入;
  • 新增:AppConfig中新增UpdateSetting,用于自动更新功能使用,如不需要使用自动更新,那么这个地方的值,框架无任何地方使用;
  • 修改:AppConfig配置文件的路径和文件名现可自定义,在执行config.LoadAppConfig()方法前,将ConfigPath和ConfigName进行赋值即可,但是内容依然需要是原AppConfig的内容;
  • 新增:生成随机编号帮助类(命名空间:Vampirewal.Core.Tools),调用RandomHelper

2021-11-8

  • 新增:GetRegisterTokens()方法,可以获取已在Messenger中注册的Token
  • 修改:在VampirewalApplication的GetView()方法中,新增传入Assembly判断是否为null
  • 新增:工具方法=>Utils.AsciiToString() ASCII码转string;Utils.CreateShortcut() 创建程序快捷方式
  • 分享:近期楼主使用Vampirewal.Core实战快速完成了一个小项目,后面有时间进行分享

2021-11-5

  • 新增:LayoutUcViewBase页面布局----详细请看第七条
  • 新增:AddOrEditUcViewBase页面布局----详细请看第七条
  • 修改:ShowDialogWindow原内容在窗体最大化后,会出现上下留白的情况。现已修复
  • 新增:IAppConfig新增重置Reset()重置配置文件方法。慎用

2021-11-4

  • 新增:自定义窗体MainWindowBase,详细请查看上文的------自定义窗体内容

2021-11-1

  • 修改:完善基类中属性变更通知,set中添加DoNotify();
  • 修改:自定义窗体的拉伸功能之前被覆盖了,现在已修复

2021-10-31

  • 新增:CustomDbContextBase自定义建库内容的空白DB上下文,区别之前的DBContextBase,减少了很多会随系统启动就建立的表
  • 修改:ViewModelBase中,新增1个构造函数,参数为IAppConfig,子类可继承

2021-10-20

  • 新增:OpenDialogWindow窗体的Setting中,新增部分字段
  • 修改:OpenDialogWindow窗体现在可返回任意值(该修改基本上差不多了,具体该窗体的信息,可查看上文<基础服务>内关于这块的介绍
  • 修改:OpenDialogWindow窗体为ScrollView内容,避免内容过长导致底部不显示,现存在拖动条
  • 新增:自定义控件TitleContent(带标题的内容控件)

2021-10-19

  • 新增:OpenDialogWindow弹窗窗体,使用方式请看目录中 基础服务
  • 新增:ViewModelLocatorBase基类中,添加了IDialogMessage服务的注册,后续只要是继承自ViewModelBase的VM在构造函数中即可注入该服务使用
  • 修改:自定义窗体和页面的引用方式
  • 移除:MEF依赖注入方式

2021-10-15

  • 新增:EnumHelper中Enum转List方法

2021-10-14

  • 新增: TitleContent自定义控件
  • 新增: TreeView的样式
  • 新增: PopupWindow(气泡提示)控件
  • 新增:AddOrEditUcViewBase页面基类
  • 修改:ViewModelBase移除一些不需要的Command
  • 修改:BaseCURDVM新增1条保存命令,用于页面按钮绑定
  • 修改:VampirewalConfig新增2条配置项
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值