二十四、【开源】EFW框架Winform前端开发之项目结构说明和调试方法

(103) 2024-07-11 09:01:01

回《【开源】EFW框架系列文章索引》       

EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA

EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa

 

      前言:前面几章讲解了开发一个Web系统的完整目录结构与界面开发框架JqueryEasyUI,接下来几章讲解开发Winform系统的完整目录结构与界面开发的相关控件。开发Winform系统又分为两种类型,C/S模式和C/S/S模式;其中C/S/S模式的中间层在EFW框架中使用WCF作为中间件;

本文要点:

1.常见三种系统类型介绍

2.Winform系统目录结构整体说明

3.C/S系统的目录结构及调试方法

4.C/S/S系统的目录结构及调试方法

1.常见三种系统类型介绍:

1)C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle或 SQL Server。客户端需要安装专用的客户端软件。

2)B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如FireFox或IE,服务器安装Oracle或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。

3)C/S/S是三层体系结构,是在C/S客户端与数据库之间加入一个“中间层”,也叫“中间件”,中间层包括业务逻辑层与数据访问层,有WcfController、ObjectModel、Dao、Entity;

 二十四、【开源】EFW框架Winform前端开发之项目结构说明和调试方法 (https://mushiming.com/)  第1张

 

三种类型在程序设计上都可以按照三层结构来实现,程序上的三层在不同环境中运行而形成上面三种类型,比如:C/S类型就是程序三层都运行在客户机上的,而C/S/S类型界面层运行在客户机上,而其他的逻辑层和数据访问层都运行在中间件服务器上;

程序三层结构的优点,更能适用企业系统日益增长的复杂度和灵活性,分层设计遵循高内聚、低耦合原则,实现扩展、维护和重用的要求,可以大大提高开发效率。

 

2.Winform系统目录结构说明

 二十四、【开源】EFW框架Winform前端开发之项目结构说明和调试方法 (https://mushiming.com/)  第2张

如上图Winform系统的目录结构,两种类型的区别在于C/S/S解决方案中多了一个WCF服务主机的程序,其他的都差不多,配置文件都在Config目录,界面层代码在Books.Winform项目,逻辑层代码在Books项目;可以说两种类型共用界面代码和逻辑代码,只是在控制器上前者用WinController,后用wcfController;wcfController控制器又分为两个代码文件bookwcfclientController.cs和bookWcfController.cs分别放在Books.Winform项目中和Books项目中;两个文件再程序运行时通过WCF服务进行通讯;虽然两种类型都是在一个解决方案中编写代码,但是程序的安装和部署也是有区别的,C/S类型所有代码都是都是在客户端运行的;而C/S/S类型Books.Winform项目运行在客户端,而Books项目运行在WCF服务主机上,WCF服务主机是部署在服务器上的;

 

3.C/S类型Winform系统项目结构和调试方法

1)、EFWWin.exe:客户端启动程序     

说明: 框架中的登录、主界面和基础功能都封装在此程序中

依赖项:无

2)、Books.Winform:界面层

说明: 1. 界面文件都放置在此项目

依赖项:EFWCoreLib、DevComponents.DotNetBar2、Books

3)、Books:逻辑层

说明: 1.逻辑层代码都放在此项目,包括Controller、ObjectModel、Dao和Entity

依赖项:  EFWCoreLib、企业库EntLib

 

程序的调试方法

 二十四、【开源】EFW框架Winform前端开发之项目结构说明和调试方法 (https://mushiming.com/)  第3张

如上图,我们通过调试的方法搞清楚界面表格显示数据的过程。把EFWWin设为启动程序,F5运行程序,登录进入主界面,点击菜单打开界面表格控件默认显示书籍数据,在传统的做法是在界面代码中的构造函数或者frm_Load()事件中编写加载数据的代码。而使用EFW框架中的控制器的话做法就不一样了,程序的入口不是从上述两种方式中开始,而是从控制器重写的Init()方法中进入;调用获取数据的方法GetBooks(),调用BookDao获取DataTable数据,再通过接口绑定到界面的表格控件上显示数据;

 

4.C/S/S类型WCF系统项目结构和调试方法

1)、EFWWin.exe:客户端启动程序     

说明: 框架中的登录、主界面和基础功能都封装在此程序中

依赖项:无

2)、WCF服务主机.exe:WCF中间件启动程序          

说明:WCF宿主程序,逻辑层项目在此程序中运行

依赖项:无

3)、Books.Winform:界面层

说明: 1. 界面文件都放置在此项目 2.WCF项目还有wcfclientController代码文件

依赖项:EFWCoreLib、DevComponents.DotNetBar2、Books

4)、Books:逻辑层

说明: 1.逻辑层代码都放在此项目,包括Controller、ObjectModel、Dao和Entity

依赖项:  EFWCoreLib、企业库EntLib

 

程序调试方法:

 二十四、【开源】EFW框架Winform前端开发之项目结构说明和调试方法 (https://mushiming.com/)  第4张

如上图,调试WCF程序需要启动两个程序EFWWin和WCFHosting,在VS中启动WCFHosting,点击启动WCF服务,再在Out目录中双击运行EFWWin.exe程序,接着登录进入主界面点击菜单打开界面,断点进入bookwcfclientController中的Init(),再通过GetBooks()方法向WCF中间件发送请求,断点进入bookWcfController中的GetBooks(),调用BookDao获取DataTable数据,然后转从Json数据返回bookwcfclientController中,将WCF返回的Json反序列化为DataTable显示在表格控件上;

THE END

发表回复