Winform开发框架之框架演化

article/2025/8/21 19:22:35
原文地址为: Winform开发框架之框架演化

国庆去了一趟北京,回来一直忙着各种各样的事情,有公司的,有个人的,就没停过来,所以很久没有写博客了,写博客要有一个好的心情及一个好的思路,否则宁愿不写,这是我的准则。虽然这段时间没有写博客分享各种经验,不过一直还在做一些框架相关的事情,很多东西沉淀下来,慢慢有空就继续分享,与大家做一些探讨研究了。

Winform开发框架方面的文章我介绍很多了,有宏观介绍,也有部分技术细节的交流,每次我希望能从不同角度,不同方面来介绍我的WInform开发框架,这些其实都是来源于客户的需求,真实的项目场景。本文主要介绍Winform开发框架的各种演化,适合在各种系统应用场景下的使用过程。Winform开发框架,从技术方向上讲,可以分为传统的Winform开发框架,WCF开发框架。对于这两种分类,根据数据存放的位置不同,也可以演化成多种应用模式。下面分别对这些演化的Winform框架进行介绍。

1、传统Winform开发框架

我这里指的传统Winform开发框架,就是利用数据库中间件,直接访问数据库的一种应用框架,根据数据库管理系统部署的位置的不同,可能分为单机版(如Access数据库、Sqlite数据库等),局域网网络版(如SqlServer、Oracle等数据库),局域网网络版,一般需要的是把数据库部署在局域网另外一个电脑上,这样应用和数据库分开,也有利于性能的提高和数据的分享。

这种开发模式,在dotnet里面,就是利用基于ado.net的操作,实现数据的直接访问,是一种比较常规的开发模式,不过问题,就是,不能通过互联网进行数据的访问,只能在单机或者局域网的环境下进行业务管理系统的部署和使用,相对目前很多分布式的应用来讲,有一定的局限性。

不过这种方式也是很常见的模式,常用在一些内部业务管理系统或者一些工作流系统的维护上,由于Winform的体验性比较好,数据也能有效管理控制,开发部署成本也相对较低,系统开发效率以及应用性能也比较高,因此是一种比较常见的框架表现模式。

如下面我的Winform开发框架界面,就是一个比较标准,传统式的界面,这种界面一般大家都比较常见。

这种Winform开发框架 是通过数据访问层访问各种指定的数据库,如SqlServer或者Oracle等,一般底层封装好一点的框架,基本上都会支持多种数据库,方便在不同的业务中使用。我的传统Winform开发框架的架构设计图,如下所示。

 

 

2、传统WCF开发框架

 除了以上的传统的WInform开发框架,基于WInform的技术和WCF的分布式技术,形成了另外一种Winform开发框架,即为WCF开发框架,我这个WCF开发框架的介绍也比较多,绝大多数都是来源于真实的项目应用。其实WCF技术,即可用于Winform上,也可以用于Web上,WCF技术可以用在很多领域,如Web开发、类似Socket通讯的即时通讯应用等,这里介绍的WCF开发框架,是基于Winform的基础上使用的WCF开发框架。

这里定义的传统WCF开发框架,是指利用WInform框架的模式,来承载B/S的方式获取数据进行展示,本地不存储数据。就是直接获取数据并在列表控件或者其他基础控件上显示数据。

由于WCF框架应用了很多新的技术,以及是基于分布式网络环境的应用,因此,需要考虑服务的部署,数据访问的安全性(用户名密码访问、X509证书加密、其他授权访问),数据响应以及错误处理等方方面面,如果是第一次接触,没有很好的指导及案例学习,可能消化相关的概念并理解,就需要一个不短的过程。

传统的WCF开发框架,由于是本地不缓存数据,实时通过WCF服务代理,向WCF服务请求数据,获取数据后进行显示的过程,开发思路相对比较简单,因此这种方式在很多WCF应用上,是比较常见的一种。

传统的基于Winform的WCF开发框架,界面可以和上面的Winform开发框架界面一样,不过它的获取数据的机制不同,它不是通过数据访问类访问本地的数据库,而是通过服务器公布WCF服务来获取不同数据对象,然后再Winform中进行展现,如下面是它的一个访问机制的示意图。

对于这个传统的WCF开发框架的架构,它其实是通过Winform的客户端WCF代理类,实现和远端服务器的WCF服务进行通讯,一般是基于Soap协议的XML格式,当然可以很好的配置加密机制,如X509证书加密,这样传输数据就比较安全,同时对于WCF服务,还可以采用基于自定义的用户名、密码的验证方式来有效提高WCF服务接口的安全性。以下是WCF开发框架的架构设计图,我们从中可以看出,它的应用程序的界面表现层是和WCF服务客户端代理层有关联,而代理层和WCF服务层有关联,这种隔绝了应用程序直接访问数据库的弊端,提高数据安全性,同时也使得应用程序实现了分布式的开发应用。

 

 

3、离线式WCF开发框架

相对于上面介绍的传统式WCF开发框架,这种离线式的WCF开发框架 ,就是结合了传统Winform开发框架的数据访问方式,又利用了WCF分布式数据获取的特点,使得数据可以离线使用,在一种业务要求集中化,又要求不影响正常业务操作的应用系统场景下比较适合,如我的送水管理软件网络版,就是利用这种模式,分店可以独立维护数据,没有网络也一样可以正常进行业务操作,但是在网络畅通的时候,可以向总店发送分店的数据,或者获取总店的公共数据。

这种离线模式的WCF开发框架,是一种对网络环境要求不高,既可以独立使用,又可以和总部发生业务数据往来的一种模式。这种场景下,如果不考虑数据同步及上传的情况下,他就是一个传统的Winform开发框架模式。

考虑数据同步,就会使得整个离线式的系统可能更加复杂,要求可能需要自身记录可能的数据变更(添加、修改、删除),还需要经常性的同步系统公用数据,如果要求同步的间隔比较短,那么我们就要多考虑一些因素。

离线式的WCF开发框架,数据存储我们一般选择单机版、方便部署复制的Sqlite数据库,或者Access数据库,在一些特别的情况下,才会选择比较大的SQLServer数据库或者Mysql数据库,由于WCF开发框架的应用客户端和服务器版本的数据库不同,如果没有比较弹性化、支持多数据库的WCF开发框架,这种开发模式,就会比较吃力繁琐。

离线式的WCF开发框架,一个特点就是基本上显示,以及保存等操作数据库的数据,都是本地的数据库,不是远端的服务器数据库,这样,就需要记录所有发生变更的数据库操作,包括写入,删除、修改等,以便在网络畅通的情况下,可以上传数据到服务器上面。

和上面第二点介绍的传统式WCF开发框架,这个就是多了一个本地数据库,这样可以提高数据的网络依赖性,其他日常操作的响应,在一些网络环境不经常连接的地方,可以很好的发挥作用,而且,通过实现把需要更新的数据导出到文件中,还可以实现数据的离线式同步,基本上可以完全独立于网络了。

这个模式的WCF框架架构图,是综合了Winform开发框架架构设计图和WCF框架架构设计图的特点,既有访问本地数据库的模块,也有访问操作WCF服务的模块,在不同的地方发挥不同的作用。 

 

4、混合式WCF开发框架

 除了以上几种,还有一种是可以在传统winform开发框架和WCF开发框架之间自由切换,这种其实用传统式WCF开发框架或者离线式WCF开发框架就可以解决,不过有些人觉得在局域网里面访问WCF服务,有点小题大做,而且性能也有一定的损失,那么就可以在界面调用具体操作数据类的时候,封装多一层,通过配置来指向WCF代理类还是Winform框架中的业务访问类,这种确实也可以实现的。

还有一种情况,就是把系统划分为很多万能模块(既适应WInform集成,也适应WCF集成),在不同的场合进行不同的开光切换,而且只是一个条件语句的跳转,就可以实现具体的切换,这样非常有利于模块的集成封装。

 

综上所述,我自己在各种项目的框架应用选择上,都是以最适合客户场景来进行选型,如一般的小型的业务管理系统,用Winform开发框架能快速给客户做好系统开发;而对于要求分布式的业务管理系统,工作的时候网络不成问题的这种,我一般就选择传统的WCF开发框架;而对于复杂的,网络不能保证的,要求分布式应用,数据集中管理的,一般采用离线式的WCF开发框架。如果为了更好开发集成模块,适应各种场景的集成,那么就可能要求模块具有混合式WCF开发框架的特点。


转载请注明本文地址: Winform开发框架之框架演化

http://chatgpt.dhexx.cn/article/vfRbhjt8.shtml

相关文章

Winform开发框架之介绍

winform开发框架,尽量减少程序员在界面中的代码量和工作量,Model自动生成,界面以及控件自动生成,简单的逻辑自动生成。自动生成的界面已经实现简单逻辑增删改查功能。 其他开发框架都已经或多火烧实现了这些功能,如果代…

C# winform开发的考试系统

C# winform开发的考试系统,数据库sql server2014,分为教师端和学生端,两端都采用经典的三层架构,压缩包里有数据库文件,可以直接附加使用,另外还有sql脚本,也可以还原数据库使用,每行…

C#之winform(软件开发)

C#之winform(软件开发) 1.MD5加密 (1)其实就是对数据库里面的密码进行再加密,不至于让数据库一攻就破。 从这个链接先简单了解一下:MD5在线加密链接 你只能把字符串变成MD5值,但是无法将MD5值变成字符串。 using S…

WinForm框架开发教程 - 如何实现简单化开发?

在Winform开发领域开发过十多年的项目中,见证着形形色色的架构和官方技术的应用,从最早类似Winform模式的WebForm技术,到接着的JQuery界面组件,再到Asp.net Core的技术应用,以及后来的纯前端技术出现,Angul…

Winform开发框架之终极应用

原文地址为: Winform开发框架之终极应用 在前面两篇随笔,都围绕着我的Winform开发框架介绍一些重要的组件,如字典模块封装《Winform开发框架之字典数据管理》和权限管理系统模块封装《Winform开发框架之权限管理系统》。本框架主要的功能如下…

Visual Studio C# WinForm开发入门(4):概述

目录 一.Winform入门1.WinForm项目结构2.窗口设计与控件布局3.窗口事件4.时间显示器小练习 二.WinForm布局开发1.手动布局解决自适应问题2.WinForm布局属性3.WinForm布局器 三.WinForm常用控件1.界面展示2.实体类 Student(封装信息)3.逻辑事件代码Form.cs 四.图片框与项目资源1…

WinForm(一) WinForm入门与基本控件使用

一.Winform入门 WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,一般使用 C# 编程。在VS2019中,C# WinForm 编程需要创建「Windows窗体应用程序」项目。Windows 窗体应用程序是 …

C# WinForm开发——窗体问题

本文讨论了C# WinForm开发中关于 窗体 的一些问题,如:单文档与多文档程序、避免同一窗体多次打开、多文档程序子窗体显示、跨窗体传值、高分屏(125%)下控件字体变模糊等,下面一一阐述。 目录 1 单文档与多文档程序1.1…

winform开发框架介绍

winform开发框架,尽量减少程序员在界面中的代码量和工作量,Model自动生成,界面以及控件自动生成,简单的逻辑自动生成。自动生成的界面已经实现简单逻辑增删改查功能。 其他开发框架都已经或多火烧实现了这些功能,如果…

C# Winform应用系统如何快速开发?看完这篇文章就懂了

在实际的业务中,往往还有很多需要使用Winform来开发应用系统的,如一些HIS、MIS、MES等系统,由于Winform开发出来的系统界面友好,响应快速,开发效率高等各方面原因,还有一些原因是独立的WInform应用系统方便…

C# winform 开发总结 -- 【持续更新】

此文章将记录我在C# Winform 开发过程中遇到的问题及相关知识技术点 ,方便自己以后查阅..... 博客列表: https://blog.csdn.net/column/details/winfrom-aps-net.html C# 在多线程中如何调用Winform 问题的产生:   我的WinForm程序中有一个用于更新主…

C#WinForm开发笔记——基本控件(一)

C#学习笔记——WinForm开发 一、WinForm应用程序1、VS创建WinForm桌面应用程序1>新建窗体2>添加新的窗体3>窗体 2、VS各图标表示的含义3、VS各种细节 二、控件1、Button1>属性2>事件 2、Label3、TextBox1>属性2>事件 4、Timer1>属性 5、RadioButton1&g…

C# WinForm开发框架

自己一直想有一个完全属于自己的编程小框架,之前使用的方式是将每一个窗体文件都编译为一个DLL文件,在新建窗体的时候首先新建一个类,然后在这个类 里面新建窗体,编译之后就是一个DLL文件,最后通过一个函数去读取这个D…

winform开发心得

最近一直在从事winform的开发,每次都是需要从网上查找资料才能对应具体风格要求,现在总结一下。 ui方面可以使用CSkin对应的一套ui,使用步骤 1.在窗口界面,工具箱空白处点击右键,弹出菜单有个”选择项“,点…

C# WinForm开发

文章目录 C# WinForm开发1.创建C# WinForm项目a.进入项目界面b.项目结构c.自定义一个Form 2.给控件添加事件3.显示时间小项目4.控件5.几种布局a.FlowLayoutPanel 流式布局b.TableLayoutPanel 表格布局c.可以自定义控件 6.文本框7.CheckBox 复选框8.其他的一些控件9.资源文件10.…

手把手教你新建一个winform项目(史上最全)

文章目录 前言:第1步、打开Microsoft Visual Studio(简称vs),本人这里使用的是Visual Studio 2017 专业版,如下图:1.2 Visual Studio Community 2019下载1.3 Visual Studio Community 2019 安装 第2步、点击…

C# Winform开发教程

目录 1.创建新的Winform工程 2.窗体编辑 2.1 主窗口 2.2 工具箱 3.工具开发 3.1 一些通用属性 3.2 Label 3.3 Button 3.4 CheckBox 3.5 ComboBox 3.6 TreeView 3.7 ContextMenuStrip 3.8 BackgroundWorker 3.9 ProgressBar 3.10 TextBox 3.11 Timer 3.12 Data…

Winform开发技术详解 - 应用环境 相关技术介绍

随着时间的推移,Winform也算是能够坚持下来最久的技术之一了,它的昔日辉煌和现今的依旧活跃,导致了它依旧拥有者很庞大的用户群体,虽然目前很多技术日新月异的,曾经的ASP、ASP.NET WebForm、Asp.NET MVC、WPF等技术基本…

winform开发

winform简介 winform是.Net开发平台中对Windows Form的简称,基于.Net Framework平台 的客户端开发技术,一般使用c#编程。 Windows风格的控件,以及时间,直接使用,开发快速 Windows form:Windows窗体 Window…

实时数据库数据采集接口API八爪鱼采集接口

实时数据库数据采集接口是针对国内外各种实时数据库系统(PI、IP21等)和DCS、PLC等数据源之间的进行实时数据通讯的工具。 主要包含IOServer服务器和IOClient客户端两个部分: IO Server运行在实时数据库服务器上,主要功能是把数据库的位号信息和数据请求…