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

回《【开源】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;

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

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

2.Winform系统目录结构说明

如上图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

程序的调试方法:

如上图,我们通过调试的方法搞清楚界面表格显示数据的过程。把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

程序调试方法:

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

时间: 2024-10-06 17:57:21

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

二十五、【开源】EFW框架Winform前端开发之强大的自定义控件库

回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa       前言:相比以前现在做Net系统Winform版开发有几款不错的控件,如DotNetBar.DevExpress,EFW框架也不能落后加入了DotNetBar控件,有时间也想把DevExpress控件也整合进来,这样让大家又多一个选择:DotNetBar中

二十一、【.Net开源框架】EFW框架Web前端开发之目录结构和使用FireBug调试方法

回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa 前言:前面多章对EFW框架的核心类库作了详细说明,接下来几章将对框架中的前端及界面层功能进一步讲解,前端分为两个部分Web前端和Winform前端,Web前端主要是在Web系统中使用,就是编写Html代码和JS代码开发网页界面,框架推荐的是JqueryEasyUI作为界面框架:W

二十六、【开源框架】EFW框架Winform前端开发之Grid++Report报表、条形码、Excel导出、图表控件

回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa 前言:本章介绍除DotNetBar2控件套件之外的另外一些常用控件,包括Grid++Report报表.条形码.Excel导出.图表控件ZedGraph:类似这些控件网上免费开源的太少了,经过一番对比和使用感受最后决定把这几个控件整合到EFW框架中供大家选择使用: 本

二十三、【开源】EFW框架Web前端开发之常用组件(FusionCharts图表、ReportAll报表等)

回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa 前言:上一章讲了EFW框架中的界面框架JqueryEasyUI,在一个Web系统开发中除了需要一个好的界面框架还有需要一些功能,比如:图表展示.Web报表预览打印.文件上传.文本编辑等功能在Web系统开发过程中也是经常用到的:为了方便大家使用EFW框架开发系统,本人

二十四、V4L2框架分析和虚拟摄像头驱动编写

一.V4L2框架分析 V4L2(video for linux version 2),是内核中视频设备的驱动框架,为上层访问视频设备提供统一接口. V4L2整体框架如下图: 图中主要包括四个部分: 1. 字符设备驱动程序核心:V4L2本身就是一个字符设备,上层连接用户空间 2. V4L2驱动核心:构造通用的视频设备驱动框架,为上层操作提供统一接口 3. 平台V4L2驱动:在V4L2框架下,根据平台自身特性实现与平台相关的V4L2驱动部分,包括注册video_device和v4l2_dev 4.

(二十四)pytest框架的基本用法

注意要求: 1.测试用例文件名以test_*.py开头 2.测试类以Test*开头 3.测试类方法以test_*开头 执行某个测试文件: pytest test_*.py 单独执行某个测试用例 pytest test_*.py::test_* 标记的用法: 用于把测试用例分组,在测试用例上添加装饰器 @pytest.mark.名称 执行方式:pytest -m 名称 -v 执行的时候输出详细信息 -q 执行的时候输出简化信息 --tb=no 关闭错误信息回溯 --tb=line 错误信息回溯的错

【开源EFW框架】框架中自定义控件GridBoxCard使用实例说明

回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://pan.baidu.com/s/1eQCc69G 在<二十五.EFW框架Winform前端开发之自定义控件>中列出了EFW框架中的强大自定义控件及每个控件的API说明,但是对如何使用这些控件还不是很明白,本章通过实例的方式详细说明GridBoxCard控件的使用方法: 本文要点: 1.实例功能说明

winform学习日志(二十四)----------datetime和timer的使用(小小幻灯片)

一:展示图片 每秒换一次图片,一共六十张图片,00-59 二:代码 a,设计代码 namespace timePicture { partial class Form1 { /// <summary> /// 必需的设计器变量. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源. /// </summary

全栈JavaScript之路( 二十四 )DOM2、DOM3, 不涉及XML命名空间的扩展

(一)DocumentType 类型的变化新增三个属性: publicId,systemId,internalSubset(内部子集) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" [<!ELEMENT name (#PCDATA)>] > 通过, document.doc