V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
imes
V2EX  ›  程序员

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

  •  1
     
  •   imes · 8 天前 · 4022 次点击

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

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

    截图预览

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

    clipboard_20250706142650.png

    主界面示例

    clipboard_20250706142707.png

    系统托盘图标示例

    clipboard_20250706142724.png

    设置窗口示例

    clipboard_20250706142747.png

    第 1 条附言  ·  8 天前
    上传到 GitHub 了,需要的可以自取
    https://github.com/uselibrary/GotifyClient
    20 条回复    2025-07-08 09:01:50 +08:00
    wangweitung
        1
    wangweitung  
       8 天前 via Android
    这个厉害,哪里下载?
    imes
        2
    imes  
    OP
       8 天前
    @wangweitung 1#
    上传到 GitHub 了,需要的可以自取
    https://github.com/uselibrary/GotifyClient
    Mithril
        3
    Mithril  
       8 天前   ❤️ 4
    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
        4
    8820670  
       8 天前
    很棒!之前一直在用 winify ,感觉一般般。等试试 op 的
    NoOneNoBody
        5
    NoOneNoBody  
       8 天前   ❤️ 1
    纯个人见解
    windows 的通知,调用系统通知 api 比较好,因为人不在电脑旁或者运行全屏事务错过了,也能在通知栏找到
    oneisall8955
        6
    oneisall8955  
       8 天前
    催更,来个验证码自动复制到粘贴板
    imes
        7
    imes  
    OP
       8 天前
    @NoOneNoBody 5#
    考虑过这个逻辑,即使是在任务栏,也可能会因为过多而错过。所以直接钉死在屏幕右上角,绝对不会错过提醒。
    imes
        8
    imes  
    OP
       8 天前
    @oneisall8955 6#
    等我有空了,我来看看怎么实现。太久没有写 Windows GUI 了,很多东西要边翻文档边写。
    a33291
        9
    a33291  
       8 天前
    @imes #8 Clipboard 直接操作剪贴板就行

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


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

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

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

    一开始用的 go+fyne ,可能自己是个 go 新手,发现 fyne 想实现一个简单的消息列表都很困难,甚至简单的文字排版效果都无法实现,最后只好换 webview 了。
    levelworm
        19
    levelworm  
       7 天前
    Delphi/Lazarus 据说也不错
    alleluya
        20
    alleluya  
       7 天前
    @Mithril #3 不管是开发还是客户 都不能既要又要😂
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3866 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:13 · PVG 12:13 · LAX 21:13 · JFK 00:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.