I work in the company to develop tool-based software, desktop version, our company has a variety of tools and software needs. Now I can't remember how much I have produced. I believe that a period of time, maybe a few months, maybe a year later, I will not remember what has been developed before, perhaps a certain category of impressions, but the specific is what, the operation will look like now can not remember the development of the software as before, are not clear.
These tools do not have complete statistical functions, or perhaps only single-machine statistics, but most of their core functions need to be networked.
I am not aware of the use of the tool user, unable to issue a report on usage, I only know that I do this thing, someone has used, or has mentioned a bug.
I believe that many of the desktop tool software friends have encountered and I have the same problem, and some tools life cycle is not long, but chipped again, the source has disappeared, come again.
So I wondered if we could build a software hosting platform of this type, or call the App Store to manage what we've developed. So I started.
In this article I have finished the shop for a long time, the basic skills can be complete, but the statistical function is not very perfect. The store, like any other tool, sank slowly over time. I don't want everything I've ever created to go through this ending.
So I write down my build process and I think it can help friends who have the same needs as I do.
Talk about the development environment. vs 15+, C #
Service side: Aspnetcore 1, Efcore, MSSQLServer
Client: WinForm
First
Client Main interface:
Service-side interface
Database
Graduation for many years, come out to do development perhaps for many years, usually write code, do not speak, the ability to express degraded, if the expression is poor or incoherent please understand.
Server-side features include the following:
Admin: Audit registered users, review new app or new version, app shelf
Developer: App upload, app history version management
Client vs Solution
Appeventlib Operation Report API encapsulation
App.launcher app launcher, app is the tool software I said above
Appinstaller App Installer, responsible for downloading and installing apps
Applib app needs to refer to the library to get its own configuration or startup information, equivalent to the app development SDK
The Appzip App Packaging tool is used to automatically package apps and their dependent DLLs, configuration files, etc. as a zip package when the app development process is compiled. Developers can upload to the App store after they've packaged.
Tinyutil in my own package, the usual use of an auxiliary class library.
Uachelper handles Windows UAC libraries, which are used to make Windows standard rights, such as requiring access to the registry or writing critical locations to make UAC confirmations to users.
Update app for updating apps
Building the App Store for C # applications (i)