为何模块化模块化是一种分治思想,不仅可以分离复杂的业务逻辑,还可以进行不同任务的分工。模块与模块之间相互独立,从而构建一种松耦合的应用程序,便于开发和维护。开发技术.NET6+WPF+Prism(v8.0.0.1909)+HandyControl(v3.4.0)知识准备什么是MVVMModel-View-ViewModel 是一种软件架构设计,它是一种简化用户界面的事件驱动编程方式。Model:数据模型,用来存储数据。View:视图界面,用来展示UI界面和响应用户交互。ViewModel:连接View和Model的中间件,起到了桥梁的作用。什么是PrismPrism 是一套桌面开发框架,用于在
大纲1搭建启动rtspserver2推送录屏视频流下载FFmpeg3检验3.1获取本机IP3.2检测作者1搭建启动rtspserver从https://github.com/aler9/rtsp-simple-server/releases下载Windows版本的编译结果。解压,然后启动该程序2推送录屏视频流下载FFmpeg从https://ffmpeg.org/download.html下载Windows版本的编译结果。解压后,通过cmd进入FFmpeg所在的目录,执行下面的命令(其中rtsp://localhost:8554/mystream是上一步生成的地址)。ffmpeg-fgdigr
目录前言一、MVC(Model-View-Controller)1、简介2、框架图二、MVP(Model-View-Presenter)1、简介2、框架图三、MVVM(Model-View-ViewModel)1、简介2、框架图四、总结前言MV系列框架中,M和V分别指Model层和View层,但其功能会因为框架的不同而变化。Model层是数据模型,用来存储数据;View层是视图,展示Model层的数据。虽然在不同的框架中,Model层和View层的内容可能会有所差别,但是其基础功能不变,变的只是数据的传输方式。一、MVC(Model-View-Controller)1、简介MVC是模型-视图-
在我们展示一些参考信息的时候,有所会用树形列表来展示结构信息,如对于有父子关系的多层级部门机构,以及一些常用如字典大类节点,也都可以利用树形列表的方式进行展示,本篇随笔介绍基于WPF的方式,使用TreeView来洗实现结构信息的展示,以及对它的菜单进行的设置、过滤查询等功能的实现逻辑。1、TreeView树形列表的展示我们前面随笔介绍到的用户信息的展示,左侧就是一个树形的类表,通过展示多层级的部门机构信息,可以快速的查找对应部门的用户信息,如下界面所示。我们来看看界面中树形列表部分的Xaml代码如下所示。TreeViewx:Name="deptTree"Margin="0,10,10,0"Fo
近些年来,随着WPF在生产,制造,工业控制等领域应用越来越广发,很多企业对WPF开发的需求也逐渐增多,使得很多人看到潜在机会,不断从Web,WinForm开发转向了WPF开发,但是WPF开发也有很多新的概念及设计思想,如:数据驱动,数据绑定,依赖属性,命令,控件模板,数据模板,MVVM等,与传统WinForm,ASP.NETWebForm开发,有很大的差异,今天就以一个简单的小例子,简述WPF开发中MVVM设计思想及应用。 为什么要用MVVM? 传统的WinForm开发,一般采用事件驱动,即用户点击事件,触发对应的事件,并在事件中通过唯一标识符获取页面上用户输入的数据,然后进行业务逻辑处理。这
在我们设计软件的很多地方,都看到需要对表格数据进行导入和导出的操作,主要是方便客户进行快速的数据处理和分享的功能,本篇随笔介绍基于WPF实现DataGrid数据的导入和导出操作。1、系统界面设计在我们实现数据的导入导出功能之前,我们在主界面需要提供给客户相关的操作按钮,如下界面所示,在列表的顶端提供导入Excel、导出PDF、导出Excel。由于这些操作功能基本上在各个页面模块,可能都会用到,因此尽可能的抽象到基类,以及提供通用的处理操作,实在有差异的,也可以通过一些属性或者事件方法的覆盖方式来实现即可。因此我们在Xaml里面定义按钮的时候,基本上是调用视图模型的方法来通用化的处理,如下代码所
大多数MVVM和数据访问层文章都解释了WCF和DTO的东西,但我的项目从不使用它们,而是与服务器进行简单的TCP/IP通信。我有模型直接使用Tcp/ip套接字。但是,我一直觉得tcp/ip套接字逻辑应该与模型分离。如果是这样,我想知道如何解耦和实现它们。 最佳答案 我一直认为模型是从数据库、服务、文件...任何存储库(包括套接字)交付给我的“东西”。我会将套接字包装在某种存储库中,以一种可以转换为ViewModel的良好格式获取数据。也就是说,如果速度是您使用套接字的原因,那么整个存储库/模型/View模型可能被证明太慢了。一如既往
在我们创建界面元素的时候,不管在Vue3+ElementPlus的前端上,还是Winform桌面端上,都是会利用自定义用户控件来快速重用一些自定义的界面内容,对自定义用户控件的封装处理,也是我们开发WPF应用需要熟悉的一环。本篇随笔继续深入介绍介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发,主要针对自定义用户控件的封装和使用做一些介绍。1、自定义用户控件的应用场景在我们使用原生的WPF控件的时候,有时候发现常规的原生控件不够好看,或者功能达不到要求,就需要进行一定程度上的二次封装处理,也就是自定义控件的开发场景。例如我们前面介绍到的用户信息的查询
前言为了解决WPFUI与程序逻辑之间得到解耦,所以使用Microsoft.Toolkit.Mvvm框架来实现,说真的开发逻辑真的有些不适应,不过理解就好。框架大体支持ICommand、IMessenger等。什么是MVVM?MVVM是Model-View-ViewModel的简写。它本质上就是MVC(Model-View-Controller)的改进版。即模型-视图-视图模型。分别定义如下:【模型】指的是后端传递的数据。【视图】指的是所看到的页面。【视图模型】mvvm模式的核心,它是连接view和model的桥梁。它有两个方向:一是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面
在前面随笔《循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发(1)》中介绍了Mvvm的开发,以及一些界面效果,本篇随笔继续深入探讨基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发,介绍如何整合SqlSugar框架的基础接口,通过基类继承的方式,简化实际项目的开发代码处理。1、View模块中的XAML格式说明在介绍MVVM几个部分内容之前,我们先连接一下View模块中的Xaml格式的说明,我们知道Xaml也是一个xml的扩展,属于标记语言的一种,编辑器为了更好的验证格式以及提出上下文的智能提示,必然需