AgileEAS.NET平台开发实例-药店系统-UI层分析

简介: 介绍        上一篇我们给出了AgileEAS.NET的关于Bll层的实现原理和Bll层的写法,我们可以在实际的开发过程中更深入的了解和实践,本篇我们就来讲述下UI层的实现原理和相关的 技巧,可能会和之前讲述的环境配置部分内容会有小部分的冲突吧,不过应该本篇讲述的更具有原理方面的内容,本文会讲述资源管理平台如何通过插件+平台的思路来实现这 种资源化的管理平台的原理和技术内幕。

介绍

       上一篇我们给出了AgileEAS.NET的关于Bll层的实现原理和Bll层的写法,我们可以在实际的开发过程中更深入的了解和实践,本篇我们就来讲述下UI层的实现原理和相关的

技巧,可能会和之前讲述的环境配置部分内容会有小部分的冲突吧,不过应该本篇讲述的更具有原理方面的内容,本文会讲述资源管理平台如何通过插件+平台的思路来实现这

种资源化的管理平台的原理和技术内幕。当然由于本人对AgileEAS.NET平台的理解的深度不足,或者说是认识上还有一定的偏差,可能会有错误之处,当然如果您有更深入的

了解,还请批评指正。

       AgileEAS.NET平台采用的是平台+插件的设计思路,具体的UI层表示可以简单理解成如下图    image

        通过上图我们知道符合插件契约的模块才能被资源管理平台识别,否则无法被资源管理平台识别和管理,也就无法享受容器提供的相关服务。

        当然我们也可以不用AgileEAS.NET平台提供的资源管理工具,我们直接使用普通的Form窗体作为主窗体运行,也是可以的,不过AgileEAS.NET平台为我们提供了很多

底层模块的一些服务,例如组件的资源分配,动态释放对象,对象复活等,对象的生命周期等等。这些我们都要自己开发的过程中进行考虑。

         下面我们来分析下如何新建一个新的应用程序来结合使用UI层,一种方式是自定义的不使用AgileEAS.NET平台提供的资源管理器。一种是使用该资源管理器来管理一个

模块。

大纲

         1、不使用AgileEAS.NET平台的资源管理器来构建UI

         2、使用AgileEAS.NET平台提供的资源管理器来开发模块。

不使用AgileEAS.NET平台开发界面UI

        我们这里说的是不是AgileEAS.NET平台提供的资源管理平台来开发功能模块,那就意味着我们这里开发的用户界面不用定义插件的契约,直接构建一个应用程序即可,但

是我们还是想使用之前我们已经写好的DAL与业务逻辑层时,这时候我们需要如何去写呢?这个我想是大家比较关心的内容。下面我们就来一步步的构建不依赖插件契约的应

用程序模块。

        1、新建一个Winform窗体应用程序工程:

         image

         2、点击“确认”后,我们查看解决方案结构:

         image

         3、重命名“From1”为“MainForm”:

         image

         接下来,我们将项目中要用到的Bll层与DAL层及这2层依赖的Dll程序集引用也加入进来。

         image

        4、我们从工具箱拖拽一个panel来存放查询条件区,再拖放一个panel用户显示数据空间区。

         image

        5、添加如下控件,我们添加一个下拉列表控件用于显示药品类型“DrugType”,添加一个关键字,用于检索包含指定关键字的药品记录。

         image

         6、我们来边写具体的业务逻辑。

         image

         7、书写查询方法:

         image

        8、增强使用,我们在当输入“关键字”按下“回车”时执行查询:

        image

        9、通过上面的几步,我们就完成了基本的业务逻辑功能,下面我们再添加一个配置文件:

        image

        添加如下配置节信息到该配置文件中:

        image

        image

        点击保存,设置该工程为启动工程,“F5”运行:

         image

         我们输入关键字来查询吧,或者直接点击查询,如果库存中存在药品类型是“放射材料”的药品则会显示:

         image

         这样我们就开发出一个简易的用户界面程序,当然其他模块的开发也是类似的,我这里就不一一阐述了。

使用AgileEAS.NET平台提供的资源管理器来开发模块

        我们还是新建一个模块,但是该模块是通过插件的形式来访问,此时我们有个限制是需要搭建插件的测试环境,否则无法加载插件,具体的关于插件的测试环境的搭建请

参考如下几篇文章。

        AgileEAS.NET平台开发实例-药店系统-准备开发环境(上)

        AgileEAS.NET平台开发实例-药店系统-准备开发环境(中)

        AgileEAS.NET平台开发实例-药店系统-准备开发环境(下)

        上面的几篇讲述了如何搭建AgileEAS.NET的开发环境及插件的测试环境,环境一旦搭建好,一般来说我们的模块的开发步骤是如下几步?我这里直接讲述具体的业务开发

过程吧。

         1、新建“Winform应用程序”,新建后删除系统自动创建的Winform1和program静态程序入库函数:

         image

         2、添加引用。

         image

         3、修改工程的输出路径:

         image

         4、这样就配置完毕了,新建一个用户控件,用于完成库存查询功能的模块。

          image

          5、接着我们来设计界面:

         image

          6、添加相应的方法,与之前的Winform版本的方法完全相同。我这里不列出,我只给出关键的契约说明。

          image

         7、最终的界面效果如下:

         image

          8、在测试工程中,将要测试的UI的dll配置修改为我们刚才新添加的应用程序工程。

          image

          9、修改的配置文件的具体内容如下:

          image

         10、运行“F5”如果出现如下界面说明成功。

          image

          输入密码即可见到资源管理平台的全貌了

           image

           我们点击“库存查询”:

           image

           我们点击查询,满足查询条件的记录将会显示:

           image

           这样我们就完成了模块的开发。其他的插件模块的开发也是如此的快捷和简单。

总结

        本文分析和讲述了,如何开发UI层的过程和剖析 ,可能由于本人的水平有限,对底层的实现原理剖析的还不够深刻,后续还需要往更深入的方向挖掘,当然如果你又更好

的意见和建议可以提出来,我会不断的改进,谢谢!下篇将会书写一些在界面实现过程中的一些技巧和业务逻辑的设计讲解分析。

药店系统源码

download3

更多交流

官方博客:http://www.smarteas.net/

官方网站:http://www.agilelab.cn/

如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。

1、电话-邮箱方式:

何戈洲hegezhou_hot@163.com 手机:18691480181 博客:http://www.cnblogs.com/hegezhou_hot/

2、QQ交流群:

308961614 网名:H.O.T


作者:IT行者-何戈洲
出处:http://www.cnblogs.com/hegezhou_hot/
2007年大学毕业后便投入到计算机行业中,先后涉足(电信、电子商务、教育、医疗、工程建筑、项目管理、房产)等行业,目前有比较丰富的技术及行业经验,技术方面涉及(Java、Go、.NET、Python、设计模式、系统架构、PM管理流程、软件工程、敏捷开发、SOA、云计算、大数据、区块链、WF、SAAS等领域),结合业务可提供(EIP、ERP、HIS、B2B、B2C、B2B2C、CRM、OA、O2O等)业务及技术解决方案,随着时间的推移,目前已逐步转向管理方面,欢迎同行一起交流学习,个人平时爱好体育运动、音乐、旅游等,向往丰富多彩的生活旅程。如有问题或建议,请多多赐教!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过hegezhou_hot@163.com  联系我,非常感谢。
其他联系方式:
电话:13716055594
联系人:何戈洲
微信联系我:

CallHot

反馈文章质量,你可以通过快速通道评论:
目录
相关文章
|
开发框架 .NET 数据库
.NETCore 获取数据库上下文[实例的方法和配置连接字符串
.NETCore 获取数据库上下文[实例的方法和配置连接字符串
782 1
|
2月前
|
自然语言处理 应用服务中间件 程序员
Nginx UI:全新的 Nginx 在线管理平台
Nginx UI:全新的 Nginx 在线管理平台
112 1
|
5月前
|
编解码 前端开发 图形学
【技术深度解析】多平台适配下的UI适配难题:U3D游戏UI错乱的终极解决方案
【7月更文第12天】随着移动设备市场的多元化,Unity游戏开发者面临的一大挑战是如何在不同分辨率和屏幕尺寸的设备上保持UI的一致性和美观性。游戏在高分辨率平板与低分辨率手机上呈现出的UI布局混乱、按钮错位等问题,严重影响玩家体验。本文旨在探讨Unity UI(UGUI)在多平台适配中的最佳实践,通过优化Canvas Scaler设置、灵活运用RectTransform和Anchor Points,以及高效利用设计工具,确保UI的完美适配。
741 1
|
5月前
uniapp 安装插件 uView (多平台快速开发的UI框架)
uniapp 安装插件 uView (多平台快速开发的UI框架)
228 0
|
开发框架 .NET API
Hangfire .NET任务调度框架实例
# 1、介绍 Hangfire是一个开源的.NET任务调度框架,提供了内置集成化的控制台(后台任务调度面板),可以直观明了的查看作业调度情况。 # 2、Nuget安装 ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231031-119e3068.png?x-cos-security-token=baeOYKJ0BOuKXaDG6L8qKX7pdH823CLaaefd8181d9b33eccf4b2a2f35cd15dd7jLbyf
99 0
Hangfire .NET任务调度框架实例
|
调度
Quartz.NET 任务调度框架的demo实例
​ # 1、新建项目 简单实例,新建一个控制台程序 # 2、Nuget安装Quartz ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231031-52d48c93.png?x-cos-security-token=baeOYKJ0BOuKXaDG6L8qKX7pdH823CLa740df95695ddd90763a204f7cd7172afjLbyfjQS2rqYm0waz5Rlsx3p2jhWg-yj9JZ3WKDq32bpX
67 0
|
人工智能 JavaScript Java
IM场景的移动端UI自动化测试平台实践
市面上的UI自动化平台基本上都是大同小异,把查找元素的方法抽象到一个下拉列表,再通过输入框输入要查找元素ID,查到到元素对应做一些动作。今天以opendx为例介绍一下UI自动化平台能力(它的页面和架构相对更人性化)。
518 0
|
XML 开发框架 安全
【浅谈ASP.NET】——Web服务应用实例
【浅谈ASP.NET】——Web服务应用实例
166 0
【浅谈ASP.NET】——Web服务应用实例
|
人工智能 算法 数据可视化
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
KeenTune 再次带来开源重磅特性——新增第五大组件:keentune-ui。
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
|
数据采集 JavaScript 物联网
HaaS UI基础教学十:IoT平台连接
阿里云智能物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制。
754 15
HaaS UI基础教学十:IoT平台连接
下一篇
DataWorks