用 .net 写了一个 gotify 客户端, Windows GUI 开发还是天下无敌

62 天前
 imes

gotify 哪里都好,就是没有没有 Windows 客户端,其实要求也不高,有消息了就弹窗提醒即可,也不需要数据库之类的。只可惜一直没有官方客户端,那就自己写一个。手里拿着锤子,看什么都像是钉子

上次写 Windows GUI 程序,还是 visual basic 年代。第一反应是用顺手的 Golang + Fyne ,但是由于没有跨平台的需求,所以还是用 C#/.net ,选择了 winforms 进行原生开发。不得不说,C#/.net 在 Windows GUI 开发还是天下无敌。只可惜微软脑子转不过来,现在跨平台 GUI 已经没有 C#/.net 什么事情了。

截图预览

自定义弹窗通知示例,右上角显示。

主界面示例

系统托盘图标示例

设置窗口示例

4608 次点击
所在节点    程序员
20 条回复
wangweitung
62 天前
这个厉害,哪里下载?
imes
62 天前
@wangweitung 1#
上传到 GitHub 了,需要的可以自取
https://github.com/uselibrary/GotifyClient
Mithril
62 天前
WinForms 非常适合随手弄个小 GUI 程序做点简单的事。
不需要考虑什么缩放,布局;也没有很高的性能需求时,这就是最简单的解决方案。

关于 GUI 这东西,包括 Native 和 Web ,我用过尝试过很多技术。MFC ,WinForms ,WPF ,WinUI ,ASP WebForms ,MVC ,Avalonia ,QT ,Angular.js ,Angular 2+,Vue ,React ,还有 Python 的 Gradio ,Java 的 Swing 。

一堆东西用下来,简单做点小程序最方便的还是 WinForms 拖一拖完事。但凡有显示性能,排版设计等需求,都倾向于用 Web 套壳方便。无论是哪种框架,找个合适的组件库就行。设计风格统一,对于各种问题解决方案也多。

而就个人喜好而言,WPF 在它那个年代绝对是先行者。MVVM 架构放到现在也不过时。

至于程序本身的性能需求,反正我做有需求让我上 Web 框架的程序时根本不考虑这个。给我省的时间比在客户那多耗的那点性能对我来说值钱多了。Electron 顶多占你点硬盘,但能给我节省大量设计,实现的精力。

除非客户有需求,那也好说,谁要的谁就加钱。加够了给你改原生方案,绝对体积小+秒开。
8820670
62 天前
很棒!之前一直在用 winify ,感觉一般般。等试试 op 的
NoOneNoBody
62 天前
纯个人见解
windows 的通知,调用系统通知 api 比较好,因为人不在电脑旁或者运行全屏事务错过了,也能在通知栏找到
oneisall8955
62 天前
催更,来个验证码自动复制到粘贴板
imes
62 天前
@NoOneNoBody 5#
考虑过这个逻辑,即使是在任务栏,也可能会因为过多而错过。所以直接钉死在屏幕右上角,绝对不会错过提醒。
imes
62 天前
@oneisall8955 6#
等我有空了,我来看看怎么实现。太久没有写 Windows GUI 了,很多东西要边翻文档边写。
a33291
62 天前
@imes #8 Clipboard 直接操作剪贴板就行

主要是验证码识别,一个 \d{6,}识别到数字就复制一下


顺便问下,这个 gotify 一般哪些场景用?
liuliuliuliu
62 天前
跨平台 GUI 也很厉害啊,了解一下 avalonia
dcsuibian
62 天前
微软总是反复横跳、砍产品、改名,跨平台技术真的信不过。没什么凝聚力,怀疑内部是部门斗争状态。
oneisall8955
62 天前
@a33291 #9 webhook 通知的,别的地方完成了什么任务或者告警,需要通知一下(前提是你这个系统有配置 webhook 通知入口)

就可以搭建 gotify 服务端接受消息。客户端(安卓,网页版)就收到提醒查看消息

类似的有:bark (苹果生态),plush+(微信等)
bxb100
62 天前
推一个 raycast gotify 插件 https://www.raycast.com/Lemon/gotify
wtks1
62 天前
不错不错,楼主厉害了
xctcc
61 天前
支持一下
thfurior
61 天前
winform 虽然难看,但做起来是无敌快
huangliu
61 天前
建议了解下 Avalonia ,用法和 WPF 很像😂
yafoo
61 天前
我也有个简单版的 windows 通知客户端: https://github.com/yafoo/pushme-client

一开始用的 go+fyne ,可能自己是个 go 新手,发现 fyne 想实现一个简单的消息列表都很困难,甚至简单的文字排版效果都无法实现,最后只好换 webview 了。
levelworm
60 天前
Delphi/Lazarus 据说也不错
alleluya
60 天前
@Mithril #3 不管是开发还是客户 都不能既要又要😂

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

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

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

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

© 2021 V2EX