构建用于C#应用程序的应用商店(一)

我在就职的公司开发工具型软件,桌面版的,我们公司有各种工具软件的需求。现在我已经记不清我生产了多少了。我相信再过一段时间,也许几个月,也许一年后,我也会记不住之前开发过什么,或许有一定的类别的印象,但是具体是什么,运行的样子就会像现在记不起以前开发的软件一样,都记不清了。

这些工具没有完整的统计功能,也或许只有单机的统计,但他们核心功能大多是需要联网的。

我无法得知工具用户的使用情况,无法向上级出具有关使用情况的报告,我只知道我做个这个东西,有人曾经用过,或者曾经提过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的应用

时间: 2024-10-25 13:08:29

构建用于C#应用程序的应用商店(一)的相关文章

用 Sencha Touch 构建移动 web 应用程序

Sencha Touch 是一个使用 HTML5.CSS3 和 JavaScript 语言构建的移动 web 应用程序框架,在本文中,学习如何应用您当前的 web 开发技能进行移动 web 开发.下载和建立 Sencha Touch,通过一个样例应用程序探究基本原理.学习开始使用 Sencha Touch 框架所需的一切 2012 年 3 月 19 日 内容 概述 Sencha Touch 准备开始 UI components 结束语 参考资料 评论 概述 在软件开发领域中,有两个重要的趋势越来

用Gradle 构建你的android程序

用Gradle 构建你的android程序 前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目的用户指南全部看完, 让不会用gradle 的人也用gradle构建android项目,让打包(注意,打包和构建是两码事)多版本android不再痛苦.最后,题外话:珍惜生命,远离ant.... Gradle build android 历史 Androi

spring(5)构建 spring web 应用程序

[0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  "spring(5)构建 spring web 应用程序" 的相关知识: [1]spring mvc 起步 [1.1]跟踪spring mvc的请求 1)请求时一个十分繁忙的家伙,下图展示了请求使用spring mvc所经历的 站点: 对以上调用过程的分析(Analysis):(不能再干货--请求使用spring mvc 所经历的调用过程) step

为什么要使用智能合约来构建区块链应用程序?

为什么要使用智能合约来构建区块链应用程序? 人们需要了解为什么以及何时使用智能合约来开发区块链应用程序. 区块链技术最关键的特征之一就是它的去中心化性质.这意味着其信息由网络的所有各方共享.因此,它消除了中间人或中间机构来促进运营的需要.此功能特别有用,因为它可以避免黑客和欺诈活动的可能性.区块链技术提供了功能丰富.快速.廉价和高效的交易模式.因此,政府和银行部门中的大多数组织已开始采用这种一流的技术. 以下将探讨智能合约在市场上创建区块链应用的重要性和需求. 什么是智能合约? 智能合约是一种计

cordova构建和运行应用程序(安卓)

要构建和运行应用程序,需要为要定位的每个平台安装sdk. 检查您是否满足构建平台的要求的命令: cordova requirements 1.安卓平台指南: cordova for Android需要安装在OSX,Linux或Windows上的Android SDK. 安装要求: 1.java开发工具包(JDK) 下载安装好JDK之后,在终端输入JAVAC,如果跳出如下提示,说明JAVA环境已经配置好了 2.Android SDK 在这里,我选择安装Android Studio,以便于运行和调试

Selenium也是一个用于Web应用程序测试的工具

Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Mozilla Suite等.这个工具的主要功能包括:测试与浏览器的兼容性--测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上.测试系统功能--创建衰退测试检验软件功能和用户需求.支持自动录制动作和自动生成.Net.Java.Perl等不同语言的测试脚本.Selenium 是ThoughtWorks专门为Web

可变变量常用用于在写程序的时候不确定需要用哪个变量去处理数据的情形

可变变量常用用于在写程序的时候不确定需要用哪个变量去处理数据的情形.$gif = “logo.gif”;$jpg = “logo.jpg”;$png = “logo.png”;假设用户可以填写一个表单,以决定其想要什么类型的logo图片,$f1 = $_GET[‘fileType’]; //用户选择所需要的图片类型的后缀,可以是“gif”,“jpg”,“png”sendFile( $$f1 ); //假设sendFile()可以发送文件,

MonoRail MVC应用(2)-构建多层结构的应用程序

习惯了分层结构的.NET开发了,当然也是分层有优势,所以在使用MonoRail进行网站构建时,首先考虑到的问题就是MonoRail如何应对分层的结构.问题1:MonoRail在WEB层没有根目录,必须有一个Views的目录MonoRail MVC没有根目录的结构,也就是只能访问一个二级目录,如http://www.pumaboyd.com/Views\/*,然后其他所有内容都在Views这个目录下面.起初我认为这是一个很严重的问题,这样的限制很约束.后来在firstyi文章介绍可以配置到根目录,

构建ExtJS 6.x程序

构建ExtJS 6.x程序 ExtJS也有自己的打包工具 SenchaCmd,它用来生成构建ExtJS前端组织架构,最后打包发布生产,操控着前端整个开发生命周期,SenchaCmd依赖于JDK,所以要先安装JDK文件 ,安装步骤自行百度,安装完并配置好JDK环境变量后去sencha官网下载SenchaCmd工具..本文用的版本 ExtJS SDK 6.6  Sencha cmd 6.6 下载完后打开一路安装. 和JDK一样在系统变量里面配置 Sencha Cmd配置好环境变量后打开Cmd命令,输