V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kyoma
V2EX  ›  问与答

用网页写轻量型的单机程序可行吗?

  •  
  •   kyoma · 2019-12-20 10:30:07 +08:00 · 1874 次点击
    这是一个创建于 1804 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是这样的,我刚进入工作不久,目前正在着手的项目是一个 IC 卡的读写器控制程序,需求是能完成管理员和用户的权限控制,刷卡时对电费以及档案等的管理。 原来的项目是用的 c#开发的,由于年代久远,现在 win10 用起来会经常出问题,所以现在经理就让我再重做一下。 确实 c#的 wpf 或者 winform 比较适合开发桌面端程序,但是楼主在学校只学了 java。。框架也只是对 springboot 和 mybatis 比较熟悉,没有接触过桌面端程序。 目前尝试了一下用 <dependency> <groupid>net.java.dev.jna</groupid> <artifactid>jna</artifactid> <version>5.4.0</version> </dependency> 这个 JNA 依赖成功读取了公司提供的 DLL 文件,连接上读写器之后也能成功的返回设备号信息。 我是想用我熟悉的知识,把这个项目用平常做网页的形式来生成,不过只连接本地端口,做成一个网页的单机版,但是又觉得有点邪门,所以诚心请教一下各位前辈,这么做可以吗,十分感谢

    12 条回复    2019-12-21 10:52:18 +08:00
    wysnylc
        1
    wysnylc  
       2019-12-20 10:41:29 +08:00
    可以,还能吹一波 "免客户端,实时更新,跨平台,移动办公"
    imn1
        2
    imn1  
       2019-12-20 10:50:30 +08:00
    java 做出来的 win 工具,我评价一直就一个字:丑
    我不知道是作者(好多个项目都是)问题,还是 java 本身的界面控件问题

    另外,如果要额外安装 java sdk/jdk 之类,并不是个个都熟知,如果 C#用.net4,win 已经自带
    luckyrayyy
        3
    luckyrayyy  
       2019-12-20 10:52:56 +08:00
    Java 可以写 gui,JavaFX 了解一下。另外 JavaFX 中有 webview,你完全可以写成网页的形式。
    当然,Windows 上写 gui 永远都是 c#第一选择。
    whypool
        4
    whypool  
       2019-12-20 10:56:00 +08:00
    想太多,也就只能自己玩玩
    别人跑你程序还得装一套 java 还得配置环境
    Chieh
        5
    Chieh  
       2019-12-20 11:24:39 +08:00
    你会 js 的话可以试试 electron

    .net 不是可以拖控件的吗,做一个简单的应该很快
    lower
        6
    lower  
       2019-12-20 14:08:36 +08:00
    没什么邪门的,好多软件都是在本地安装后开启 web 服务;
    但是就是安装部署环境依赖什么的,自己搞还是挺麻烦的。说不定最后搞出来的安装包体积巨大;

    而且感觉你提到的需求里,除了本地读取 dll,好像还有跟服务端数据库之类的交互?
    kyoma
        7
    kyoma  
    OP
       2019-12-20 16:22:32 +08:00
    @lower 是的,就是记录住户的一些信息,电费,联系方式等等,这边提供一个抄表功能和增删改查之类的
    murmur
        8
    murmur  
       2019-12-20 16:24:43 +08:00
    虽然说 java 开发桌面端不清凉,但是说还得配环境的,惊了,你难道不知道现在 jre、jdk 都可以内置么,自己用 c 写个壳子就行了,要不 matlab 这些东西是怎么跑起来的
    Tompes
        9
    Tompes  
       2019-12-20 17:42:53 +08:00 via Android
    常规操作啊,不少学校的圈存机就是 web 的
    kop1989
        10
    kop1989  
       2019-12-20 17:46:41 +08:00
    可以,但没必要。
    1、java 也有窗口实现方式。
    2、c#的 winform 开发并不是很难,从头熟悉的困难没那么大。
    建议可以先用你熟悉的技术手段救场,然后有机会的话,再去重构成最理想的形态。
    arthas2234
        11
    arthas2234  
       2019-12-20 17:56:14 +08:00
    用 java 开发还要安装 jre。。。已经不轻量了
    再说 java 做的那些界面,丑的一笔。我读书的时候老师都已经不教了,让我们有兴趣的自学去。。。
    lower
        12
    lower  
       2019-12-21 10:52:18 +08:00
    @kyoma 我之前参与的一个项目,场景跟你这类似,客户端与服务端就是一般的 Java web 的 B/S 结构,在客户端由于涉及到 RFID 卡读取,用的是 c# + webbrowser 控件。
    webbrowser 控件加载远程 web 页面,c#实现读取 dll 等相关功能,然后桥接的方式给 web 控件中的 html 页面提供接口调用。( web 页面中的 js 调用 c# 提供的方法)这种通信方式。
    虽然各种组合怪异,但是在当时的业务和团队能力情况下,这种折中方式还算合理吧。
    在实际的场景中,也有一些好处,比如跟本地调用无关的功能更新部署简单,涉及本地调用的功能用 c#开发相对容易一些。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5911 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 01:55 · PVG 09:55 · LAX 17:55 · JFK 20:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.