我在就职的公司开发工具型软件,桌面版的,我们公司有各种工具软件的需求。现在我已经记不清我生产了多少了。我相信再过一段时间,也许几个月,也许一年后,我也会记不住之前开发过什么,或许有一定的类别的印象,但是具体是什么,运行的样子就会像现在记不起以前开发的软件一样,都记不清了。
这些工具没有完整的统计功能,也或许只有单机的统计,但他们核心功能大多是需要联网的。
我无法得知工具用户的使用情况,无法向上级出具有关使用情况的报告,我只知道我做个这个东西,有人曾经用过,或者曾经提过bug。
我相信很多做桌面工具类软件的朋友都遇到过和我一样的问题,并且有些工具的生命周期本来就不长,但是年深日久后又再提起,源码已经不见了,再来一次吧。
于是我想,是否可以构建一个这样类型的工具软件托管平台,也或者叫应用商店来管理我们开发的东西。于是我开始了。
著此文时我已经写完商店很久了,基本功能完整,但是统计功能还不是很完善。这个商店也和其他工具一样,随着时间慢慢沉下。我不想我曾创造的东西都经历这样的结局。
所以我把我的构建过程写下来,我觉得它能够帮助和我有一样需求的朋友。
说说开发环境。vs 15+ ,C#
服务端:aspnetcore 1, efcore, mssqlserver
客户端:winform
初见
客户端主界面:
服务端界面
数据库
毕业好多年,出来做开发也许多年了,平时就写代码,不怎么说话,表达能力有所退化,若表述欠佳或语无伦次请理解。
服务端功能有以下这些:
管理员:审核注册用户,审核新上App或新上版本,app下架
开发者:app上传,app历史版本管理
客户端vs解决方案
AppEventLib 操作报告api封装
App.Launcher App启动器,App就是我上面说的工具类软件
AppInstaller App安装器,负责下载和安装app
AppLib App需要引用的库,用来获取自身配置或启动信息,相当于app开发SDK
AppZip App打包工具,用于在App开发过程编译时自动打包app和其依赖dll、配置文件等为一个zip包。开发者打包完可以上传到应用商店。
TinyUtil 我自己封装的,平时用的一个辅助类库。
UacHelper 处理windows uac的库,用来做windows标准提权,比如需要访问注册表或者写关键位置就需求弹给用户做uac确认。
Update 用来更新app的应用