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

2019-12-20 10:30:07 +08:00
 kyoma

是这样的,我刚进入工作不久,目前正在着手的项目是一个 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 文件,连接上读写器之后也能成功的返回设备号信息。 我是想用我熟悉的知识,把这个项目用平常做网页的形式来生成,不过只连接本地端口,做成一个网页的单机版,但是又觉得有点邪门,所以诚心请教一下各位前辈,这么做可以吗,十分感谢

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

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

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

而且感觉你提到的需求里,除了本地读取 dll,好像还有跟服务端数据库之类的交互?
kyoma
2019-12-20 16:22:32 +08:00
@lower 是的,就是记录住户的一些信息,电费,联系方式等等,这边提供一个抄表功能和增删改查之类的
murmur
2019-12-20 16:24:43 +08:00
虽然说 java 开发桌面端不清凉,但是说还得配环境的,惊了,你难道不知道现在 jre、jdk 都可以内置么,自己用 c 写个壳子就行了,要不 matlab 这些东西是怎么跑起来的
Tompes
2019-12-20 17:42:53 +08:00
常规操作啊,不少学校的圈存机就是 web 的
kop1989
2019-12-20 17:46:41 +08:00
可以,但没必要。
1、java 也有窗口实现方式。
2、c#的 winform 开发并不是很难,从头熟悉的困难没那么大。
建议可以先用你熟悉的技术手段救场,然后有机会的话,再去重构成最理想的形态。
arthas2234
2019-12-20 17:56:14 +08:00
用 java 开发还要安装 jre。。。已经不轻量了
再说 java 做的那些界面,丑的一笔。我读书的时候老师都已经不教了,让我们有兴趣的自学去。。。
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#开发相对容易一些。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/630749

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX