Demo客户端相关规范 v1.0

目录
更新日志
| 更新时间 | 更新日志 | 更新人员 |
|---|---|---|
| 2019/08/09 | 完成v1.0版本文档 | CraigTaylor |
开发环境
开发工具
| 组件名 | 描述 | 可选版本 | 推荐版本 |
|---|---|---|---|
| Visual Studio Community | 社区免费版 | For Visual Studio 2017 | For Visual Studio 2019 |
| Visual Studio Professional | 专家收费版 | For Visual Studio 2017 | For Visual Studio 2019 |
| Visual Studio Enterprise | 企业收费版 | For Visual Studio 2017 | For Visual Studio 2019 |
| Visual Studio Preview | 预览免费版 | For Visual Studio Community | For Visual Studio Enterprise |
| Visual Studio Code | 推荐编辑器 | For Visual Studio Code Insider | For Visual Studio Code Stable |
| Visual Studio Installer Projects | 打包扩展插件 | For Visual Studio 2017 | For Visual Studio 2019 |
| .NET Core Runtime | 运行时依赖 | For .NET Core 3.0 | For .NET Core 2.2 |
| .NET Core SDK | 集成包依赖 | For .NET Core 3.0 | For .NET Core 2.2 |
| Runtime & Hosting Bundle | 可选(IIS用) | For .NET Core 3.0 | For .NET Core 2.2 |
代码管理
项目代码
| 项目名称 | 项目简介 | 代码位置 |
|---|---|---|
| Demo.Client | 标准版项目 | Github For Demo.Client |
分支管理
| 分支名称 | 分支简介 | 备注 |
|---|---|---|
| Develop | 起到了Master分支的作用,作为最终上线代码 | 发起并入需要审核 |
| CustomBranch | 私人分支,基于最新代码新建,修改后合并进入Develop |
名称管理
分支名称建议采用"用户名-版本标记-发布模式-创建年月日"格式
例如:
- Taylor-CN-Develop-20190701
- Taylor-US-Develop-20190901
Tag名称建议采用"版本标记-发布模式-创建年月日-版本号"格式
例如:
- CN-Release-20191001-v1.0.0.0
- US-Release-20191001-v1.0.0.0
打包管理
存储路径
| 项目名 | 测试版 | 正式版 |
|---|---|---|
| 标准版 | \共享存储\Demo\Demo.Client\测试版 |
\共享存储\Demo\Demo.Client\正式版 |
存储结构
测试包
| 文件名 | 文件描述 | 文件举例 |
|---|---|---|
发布模式-版本号-版本名称.zip |
解压即用的程序集(必须) | Test-v1.0.0.0-标准版.zip |
发布模式-版本号-版本名称-更新日志.docx |
指定版本的更新日志(建议) | Test-v1.0.0.0-标准版-更新日志.docx |
正式包
| 文件名 | 文件描述 | 文件举例 |
|---|---|---|
Demo-版本号.msi |
全新安装的安装包 | Demo1.0.0.0.msi |
发布模式-版本号.zip |
升级更新的升级包 | Release-v1.0.0.0.zip |
名称管理
压缩包名建议采用"发布模式-版本号-版本名称.zip"格式
例如:
- Develop-v1.0.0.0-标准版.zip
- Test-v1.0.0.0-标准版.zip
- Preview-v1.0.0.0-标准版.zip
- Release-v1.0.0.0-标准版.zip
更新日志建议采用"发布模式-版本号-版本名称-更新日志.docx"格式
例如:
- Develop-v1.0.0.0-标准版-更新日志.docx
- Test-v1.0.0.0-标准版-更新日志.docx
- Preview-v1.0.0.0-标准版-更新日志.docx
- Release-v1.0.0.0-标准版-更新日志.docx
依赖组件
内部组件
| 组件名 | 描述 | 推荐版本 |
|---|---|---|
| Demo.Core | 内部代码框架 | 1.0.0.0 |
外部组件
| 组件名 | 描述 | 推荐版本 |
|---|---|---|
| Autofac | 自动注册框架 | 4.8.1 |
| AutoMapper | 自动映射框架 | 8.0.0 |
| MvvmLight | MVVM绑定框架 | 5.4.1.1 |
| MvvmLightLibs | MVVM绑定框架 | 5.4.1.1 |
| Newtonsoft.Json | JSON解析框架 | 12.0.1 |
| Google.Protobuf | Google二进制协议 | 3.7.0 |
| log4net | 本地日志记录 | 2.0.8 |
| WPFLocalizeExtension | 多语言扩展 | 3.3.1 |
解决方案结构
解决方案命名
| 标准版项目 |
|---|
| Demo.Client |
解决方案文件夹
| 描述 | 标准版 |
|---|---|
| 基础层 | 0.Demo.Client.Infrastructure |
| 领域层 | 1.Demo.Client.Domain |
| 应用层 | 2.Demo.Client.Application |
| 测试集 | DemoTestProject |
| 主要程序 | Demo |
| 升级程序 | DemoAutoUpdater |
| 打包项目 | Setup1 |
项目文件夹
0.Demo.Client.Infrastructure
| 项目名称 | 项目描述 |
|---|---|
| Demo.Client.DataBaseAccess | 操作本地数据库 |
| Demo.Client.DataContract | 接口涉及的数据模型 |
| Demo.Client.Domain.Query | 领域查询 |
| Demo.Client.Infrastructure.IQuery | 基础框架之接口定义 |
| Demo.Client.Infrastructure.Utility | 基础框架之全局帮助类 |
1.Demo.Client.Domain
| 项目名称 | 项目描述 |
|---|---|
| Demo.Client.DomainModel | 领域模型 |
2.Demo.Client.Application
| 项目名称 | 项目描述 |
|---|---|
| Demo.Client.Application.Imp | 接口实现层 - 应用服务(包括第三方) |
| Demo.Client.IApplication | 接口定义层 - 应用服务 |
| Demo.Client.IRemotingService | 接口定义层 - 第三方 |
DemoTestProject
| 项目名称 | 项目描述 |
|---|---|
| Infrastructure.ConsoleTest | N/A |
命名规范
文件目录
| 目录 | 描述 |
|---|---|
\Demo\Views\ |
存放界面 |
\Demo\Views\UserControls\ |
存放自定义控件 |
\Demo\ViewModels\ |
存放绑定 |
\Demo\TemplateSettings\ |
存放打印模板 |
\Demo\Styles\ |
存放样式文件 |
\Demo\Models\ |
存放主程序用的模型 |
\Demo\Languages\ |
存放多语言字典 |
\Demo\Converter\ |
存放界面转换器 |
\Demo\Controls\ |
存放基础控件 |
\Demo\Common\ |
存放主程序非业务帮助类 |
\Demo\BusinessCommon\ |
存放主程序业务帮助类 |
\Demo\ClientEnum\ |
存放主程序枚举 |
\Demo\Update\ |
存放主程序升级检查 |
文件命名
| 文件 | 描述 | 举例 |
|---|---|---|
业务名称.cs |
领域模型(数据库用) | LearnCore.cs |
业务名称Item.cs |
领域模型(列表子项) | LearnCoreItem.cs |
业务名称Dto.cs |
数据模型(接口服务用) | LearnCoreDto.cs |
业务名称DtoFor分组名称.cs |
数据模型(分组拆分) | LearnCoreDtoForPrice.cs |
业务名称ItemDto.cs |
数据模型(列表子项) | LearnCoreItemDto.cs |
业务名称ViewDto.cs |
绑定模型(界面绑定) | LearnCoreViewDto.cs |
业务名称ViewDtoFor分组名称.cs |
绑定模型(分组拆分) | LearnCoreViewDtoForPrice.cs |
业务名称Page.xaml |
界面定义 | MainPage.xaml |
业务名称Control.xaml |
控件定义 | MainControl.xaml |
业务名称ViewModel.cs |
绑定定义(数据绑定) | MainViewModel.cs |
业务名称ViewModelFor分组名称.cs |
绑定定义(分组拆分) | MainViewModelForLearnCore.cs |
代码命名
| 业务 | 描述 | 举例 |
|---|---|---|
I 业务名 RemotingService |
接口定义 - 学习API服务 | ILearnCoreRemotingService |
业务名 RemotingService |
接口实现 - 学习API服务 | LearnCoreRemotingService |
I 业务名 Service |
接口定义 - 学习服务 | ILearnCoreService |
业务名 Service |
接口实现 - 学习服务 | LearnCoreService |
I 数据表名 QueryService |
接口定义 - 学习查询数据 | ILearnCoreQueryService |
数据表名 QueryService |
接口实现 - 学习查询数据 | LearnCoreQueryService |
辅助调试
附加自动策略
添加位置
\App_Data\LocalConfigs\PublishMode.json
配置说明
PublishMode
描述发布模式
| 枚举名 | 含义 | 数值 |
|---|---|---|
| Release | 正式上线-正式环境 | 1 |
| Preview | 发布预览-正式环境 | 2 |
| Test | 测试使用-测试环境 | 3 |
| Develop | 开发自用-测试环境 | 4 |
AutomaticType
描述自动操作
| 枚举名 | 含义 | 数值 |
|---|---|---|
| AutoLogin | 自动登录 | 1 |
| MainFullScreen | 主界面全屏 | 2 |
| ViceSizeScreen | 自定义副屏尺寸 | 3 |
配置举例
{
"PublishMode": 4,
"PublishName": "开发自用-测试环境",
"AutomaticConfigs":[
{
"AutomaticType": 1,
"AutomaticName": "自动登录,XXX家的账号",
"AutomaticValues":[ "username","@userSuffix","password"]
},
{
"AutomaticType": 2,
"AutomaticName": "主界面全屏",
"AutomaticValues":[ false ]
},
{
"AutomaticType": 3,
"AutomaticName": "缩小副屏",
"AutomaticValues":[ 1024,600]
}
]
}
{
"PublishMode": 3,
"PublishName": "测试使用-测试环境",
"AutomaticConfigs":[
{
"AutomaticType": 1,
"AutomaticName": "自动登录,XXX家的账号",
"AutomaticValues":[ "username","@userSuffix","password"]
},
{
"AutomaticType": 2,
"AutomaticName": "主界面全屏",
"AutomaticValues":[ false ]
},
{
"AutomaticType": 3,
"AutomaticName": "缩小副屏",
"AutomaticValues":[ 1024,600]
}
]
}
公共资源
.Net Core
- .Net Core 2.2:https://dotnet.microsoft.com/download
- .Net Core 3.0:https://dotnet.microsoft.com/download/dotnet-core/3.0
Demo客户端相关规范 v1.0的更多相关文章
- Linux系统部署规范v1.0
Linux系统部署规范v1.0 目的: 1.尽可能减少线上操作: 2.尽可能实现自动化部署: 3.尽可能减少安装服务和启动的服务: 4.尽可能使用安全协议提供服务: 5.尽可能让业务系统单一: 6.尽 ...
- arcconf工具相关命令V1.0
arcconf工具相关命令V1.0 清除当前所有raid配置 Arcconf delete 1 array all #删除所有逻辑盘 Arcconf uninit 1 all ...
- Python代码项目目录规范v1.0
程序目录规范:bin # 存放可执行程序 xxxx.py # 程序主程序(入口文件)config # 存放配置信息 settings.py # 全局配置文件(可能暂时未应用)db # 存放数据文件 c ...
- 【iCore4 双核心板】DEMO V1.0 测试程序发布
iCore4 Demo V1.0程序说明 一.概要 本资料包含5个文件夹: 1.“arm”里是iCore4上arm的程序包,开发环境为KEIL5.17: 2.“fpga”里是iCore4上FPGA的程 ...
- 【iCore1S 双核心板】DEMO V1.0 测试程序发布
iCore1S Demo V1.0程序说明 一.概要 本资料包含5个文件夹: 1.“ARM”里是iCore1S上ARM的程序包,开发环境为KEIL5.17: 2.“FPGA”里是iCore1S上FPG ...
- 安卓开发开发规范手册V1.0
安卓开发开发规范手册V1.0 之前发布过一份Web安全开发规范手册V1.0,看到收藏文章的读者挺多,发现整理这些文档还挺有意义. 最近周末抽了些时间把之前收集关于安卓安全开发的资料也整理了一下,整理出 ...
- [iOS UI进阶 - 2.0] 彩票Demo v1.0
A.需求 1.模仿“网易彩票”做出有5个导航页面和相应功能的Demo 2.v1.0 版本搭建基本框架 code source:https://github.com/hellovoidworld/H ...
- MingQQ v1.0高仿版开源了,使用WebQQ协议实现了QQ客户端基本的聊天功能...
MingQQ v1.0高仿版开源了,使用WebQQ协议实现了QQ客户端基本的聊天功能... MingQQ目前支持的功能如下:1.支持普通方式登录.验证码方式登录.注销.保持在线.改变在线状态.2.支持 ...
- Rookey.Frame v1.0快速开发平台-用户登录
上一次介绍的了Rookey.Frame v1.0快速开发平台的整体功能,接下来会对各个功能点进行解析说明,今天给大家介绍下系统登录功能. 用户登录 系统中基本上所有功能页面都是从后台代码拼接后返回的, ...
随机推荐
- Educational Codeforces Round 76 (Rated for Div. 2) D题
题意: 给你n个关卡,每个关卡有一个怪物,怪物的攻击力为a[i],你有n个英雄,每个英雄有一个攻击力,和疲劳值,只要英雄的攻击力比怪物的高就算打过了,同时疲劳减一,一天只能出战一个英雄,一个英雄可以打 ...
- MongoDB 副本集节点添加与删除
replica set多服务器主从,添加,删除节点,肯定会经常遇到的.下面详细说明一下,添加,删除节点的2种方法. 一,利用rs.reconfig,来添加,删除节点 1,添加节点 查看复制打印 rep ...
- 四十二.部署MongoDB服务 、 MongoDB基本使用
1. 部署MongoDB服务 192.168.4.50 创建服务工作目录 ]# mkdir /usr/local/mongodb ]# cd /usr/local/mongodb/ ]# mkdir ...
- link cut tree 洞穴勘测
/*[bzoj2049][Sdoi2008]Cave 洞穴勘测 2014年7月30日1,06923Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区 . ...
- linux系列(二十四):du命令
1.命令格式 du [选项][文件] 2.命令功能 显示每个文件和目录的磁盘使用空间. 3.命令参数 -a或-all 显示目录中个别文件的大小. -b或-bytes 显示目录或文件大小时,以byte为 ...
- 【概率论】5-1:分布介绍(Special Distribution Introduction)
title: [概率论]5-1:分布介绍(Special Distribution Introduction) categories: - Mathematic - Probability keywo ...
- CF891C Envy【最小生成树】
题目链接 我们知道,根据Kruskal的贪心,对于最小生成树,每一种权值的边数是一样的,而且如果将\(\leq x\)的边做最小生成树,合法方案的联通性是一样的.所以我们可以对于所有边分开考虑. 对于 ...
- s-w-i-p-e-r做一个-老-唬-机-抽-蒋
<template> <div class="selfLotteryBox"> <div class="row"> < ...
- 1821:【00NOIP提高组】乘积最大
//dp QAQ #include<bits/stdc++.h> using namespace std; ][],f[][]; long long s; int main() { int ...
- cesium地下模式(地表透明)4
这篇博客主要罗列一下解决地下模式(地表透明)的相关资源 1.Cesium的Github仓库地下模式issue 有人提了这个问题,但是cesium官方没有解决这个问题,持续跟踪一下问题说不定哪天官方就解 ...