winform尝试使用NanUI 日志(实际安装winfromium)(五)理解作者思路并尝试CS与BS的相互调用

         经过前面四次探坑,今天开始CS与BS的互通。开始前,纠结了如何继续往下写这个日志或者如何把使用这个框架能解决的难点给说明白。目前我能做的就是想到哪里写到哪里。如果各位看官有什么好的思路建议方法,都可以在评论区说说,我也学习下。

 一、无题瞎想

作者在框架描述上写:

        “它能让你在你的Winform应用程序中使用HTML5/CSS3/Javascript等网页技术来呈现用户界面(类似Electron)。同时NanUI提供了原生窗口和定制化的无标题栏无边框窗口,你能使用全部的网页技术来设计和呈现你的应用程序界面。”

       我在思考:

        从业务实现逻辑方面,可选择的方向,CS/BS均可以实现。

        从界面美化方面,CS有很多漂亮框架,BS也有很多框架。

        从数据接口方面,现在CS和BS,都提供了很多接口支持的方式方法。

 1、到底我们这些“非大神”,或者学生,或者普通编程人员,在完成工作或搞创作时,这个winformium能起到什么帮助?

        为此查了相关BS和CS混合等文章,当然,我不想陷入BS/CS优劣的口水战中。只是在想为啥要使用这个框架。

2、既然要用这个框架,我们要理解作者做这个框架的思路,那作者的思路是什么样的 ?

        比如说:业务流程中,一些运算规则在winform中可以运算,在前端JS 也可以运算。那么在使用这个框架的时候,到底需要把业务逻辑放在CS中好,还是JS中好?针对这个网上翻阅相关内容,答复是根据实际情况来,有人JS用的顺手,就在JS;或者有人要求在CS中,那就放CS中。

3、后期作者的方向或者开源的分支,是什么样的?

        针对这个问题,我和作者沟通,这个是随缘的。每人对美好完美的定义不一样,可能后面会有很多分支,也希望这个框架后面的分支能够越来越好。

结论:相关技术,无论哪种语言,哪种结构,哪种框架,在完成特定事项前,在思考用什么技术和框架时,是根据我们个人的能力、认知、技术掌握水平、实现复杂度,综合考虑选择的。(当然在大厂的学生及大神,似乎不在此范围内。) 基于此,我在想,使用这个框架,应当是能够降低使用人的技术门槛。比如说,用网页做调用硬件设备数据,其难度应当高于掌握这个框架的难度。

       后面的日至,再往下下,就是我自己的项目了,正好以前也在CS中用WebBowser的方式实现过有经验,也是给大家分享下。

二、项目简单介绍。   

       总需求:目前有些设备支持COM232,比如天平,需要将信息获取并按业务流程进行汇总。

       其他要求1:本来按CS,这个功能比较简单实现,但在业务流程中,需要读取其他信息系统的数据并判断。受限于其他信息系统比较老,没有API接口,也无法输出XML做接口,更不能升级完成需求,只能通过网页形式读取并筛选信息。

       其他要求2:远程升级维护,满足甲方随时样式、页面、统计数据方法界面的更新。

       其他要求3:数据保存到服务器上,不能本地保存。   

       功能设计预想:考虑通过CS读取COM口数据,放到页面上;

                                建web服务器读取其他信息系统数据;

                                建web页面将CS获取数据和web服务器获取数据进行业务呈现;

                                 将web页面嵌入到CS中,并进行数据交互;

                                 更新网页,CS刷新或者每次打开CS进行更新。

三、尝试CS与BS的交互。   

之前的四章日至,已经通过winformium,实现了嵌入页面能够在CS中展示出来。

如图:本次尝试用winformium中的方法,和页面互动。

     上次CS中建立的页面以及简单代码:

        

在index.html中,增加1个按钮,点击让CS执行messagebox。

     index.html页面:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>HELLO</title>
</head>
<body>
    <h1>Hello NanUI!阮第五章-3.1.1</h1>
    <button name="test1" onClick="test1()">点击CS会答复,尝试发送消息</button>


</body>
</html>
<script type="text/javascript">

    function test1() {
        alert("3.1.1页面的JS跑起来了");
        formium.postMessage("bbb", "说是支持各种类型");
    }
</script>

    CS中,窗体的类的那个.cs程序中,作者有案例:

   (1)发送消息:   // 注册前端消息处理器,比如这里注册bbb,那么在前端调用 formium.postMessage("bbb", "[任意数据类型/字符/数字/数组/对象]")来向这个处理器发送消息。
      RegisterJavaScriptMessagHandler("bbb", args =>
      {
          MessageBox.Show("前端点击后,进入CS,这是CS弹出的3.1.1测试");
      });

总结:今天的实际代码尝试比较少,只是尝试了下,点击JS按钮,发送CS,然后CS弹出个messagebox。

这样看来,CS中messagebox执行后,确实弹出了框。说明方法跑通了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值