【华为云实战开发】8.如何快速搭建C#网站并实现持续集成?
1 概述
1.1 文章目的
本文通过一个实例介绍如何使用软件开发服务DevCloud完成一个C#Web项目的开发。
1.2 项目详情
1. 项目名称:超级冷笑话网站
2. 项目简介:一个Web网站,包含用户登录注册以及浏览笑话等功能的网站。
3. 开发程序语言:ASP.NET MVC5(C#)
4. 项目类型:基于ASP.NET的B/S架构的Web项目
5. 部署环境:Windows + IIS + MySql
6. 部署方式:模板部署
典型的B/S架构系统,用户通过互联网访问系统,客户端处理用户操作及向数据库读取或写入数据。
1.3 主干流程
本文的主干流程为:代码托管、编译构建、发布(软件发布库)、部署。
开发者在本地开发后通过代码托管服务进行版本管理。项目开发到一定程度后可以进行编译构建操作,构建出软件包,通过发布服务进行归档管理。再将软件包部署到服务器上,即可通过外部进行访问。
1.4 前提条件
注册华为云账号:华为云官网注册华为云账号,此账号适用于所有华为云产品。
弹性云服务器:部署将使用带有公网IP的ECS(Windows Sever 2012)。
2 项目管理
2.1 创建项目
新建项目的开发流程包含两种类型:scrum流程、看板流程。Scrum流程是标准的敏捷开发流程,工作项层级为传统的scrum划分方法Epic->Feature->Story->Task&Bug,本项目为把工作划分的层级更清晰,选择了scrum流程。
2.2 创建迭代
本项目研发周期短,只有一次release,划分成三个迭代,迭代周期为一周。
2.3 梳理产品需求清单
项目规划是以思维导图的形式将工作项的层级结构展示出来,更直观的看到父子关系,在项目规划中新建工作项后,会自动生成到后面的Epic,Feature,Backlog和迭代页面,在迭代开始前,项目经理将从客户获取的所有需求信息,逐一落实到项目规划中,分解成story,并为工作项设置优先级。
3 代码托管
3.1 创建仓库
Ø 新建代码仓库时,选择“模板新建”,在搜索框中输入已经被公开为示例模板的仓库名称,选择该模板。(此处搜索“superjokes”,编程语言选择ASP.NET)
Ø 输入新的仓库名称(可以和模板仓库同名),即可创建代码仓
数据库密码修改:(必做,否则将不会部署成功)
修改在superjokes/src/Joke.Web/App_Data目录下的appsettings.config。将数据库配置处的密码(第33行Password=)改为将要部署的主机上的数据库密码。
4 编译构建
4.1 创建构建任务
Ø 新建任务,在“选择构建模板”界面勾选msbuild,点击确定完成任务模板的创建。跳转至“编译构建任务”界面。
Ø 输入构建详细信息
任务描述、源码仓库分支等自行选择。
Ø Msbuild构建
Msbuild构建流程,使用镜像msbuild15-all
5 发布
本项目中发布服务可以将构建生成的可执行文件上传到发布仓库,便于软件包管理。
Ø 版本归档
Msbuild构建过程中已经写了对应的压缩指令。
在“上传软件包到发布库(Windows环境)”步骤写明构建包路径、发布版本号及包名后,可以将构建生成的软件包上传到发布仓库,自动进行软件版本管理。
6 部署
部署任务的目的是将构建完成的软件包部署到一个可供我们访问的服务器上,部署成功之后即可通过浏览器访问该地址。
部署任务一共分为四部分,分别是主机授信,编写部署脚本,任务配置,和执行部署。
此时需要一台可供访问的服务器,由于此次部署的Web工程是C#语言编写的,所以服务器需要是一台具有弹性ip地址的Windows服务器。
在主机授信前,需要先对主机环境进行相应配置。
6.1 主机环境配置
1. 安装MySQL。
2. 通过数据库配置脚本在服务器上生成MySQL数据库,数据库配置脚本为位于代码仓库根目录的superjokes.sql。
6.2 主机授信
将服务器主机授信到DevCloud里,用于部署网站。
点击“设置-通用设置-主机组管理”,将服务器以主机组的形式授信到项目当中。
新建主机组:
在主机组中添加主机:
6.3 模板部署任务
Ø 新建模板部署任务。
Ø 填写部署任务名称,不使用模板直接创建。
Ø 添加以下部署步骤:选择部署来源、解压文件、删除文件、执行PowerShell脚本
(1) 选择部署来源:(将软件包传到云主机上)
(2) 解压文件:(将传输完毕的软件包解压到指定路径)
(3) 删除文件:(将传输到主机的软件包删除)
(4) 执行PowerShell脚本:(PowerShell脚本位于解压目录即superjokes路径的根目录下)
PowerShell参数详解:(按顺序依次,中间以空格分开)
注:下图为web.ps1中的参数定义部分代码片段。PowerShell脚本参数中,Windows系统下路径的“\”需要以“\\”替换。
1.sitePort: 网站端口(提供一个目标主机上可访问的端口号)
2.SiteName: 网站名称,启动IIS服务时为该网站命名
3.SiteAppPoolsModel: Integrated 不必修改
4.managedRuntimeVersion: v4.0 不必修改
5.WebSitePath: IIS服务中网站源文件路径
6.IISLogFile: IIS服务中的日志存储路径
Ø 保存部署任务,并执行该任务。
6.4 查看部署效果
部署任务执行完成后就可以用http://ip:端口/默认页 访问网站了
到此,我们完成了C# web项目在DevCloud上的搭建。
华为云DevCloud,5人以下额度范围内,可以免费使用,并且可以预约免费的产品演示和技术交流,详情查看华为云官网
【华为云实战开发】8.如何快速搭建C#网站并实现持续集成?相关推荐
- 【华为云实战开发】14.如何使用Node爬虫利器Puppteer进行自动化测试
文:华为云DevCloud 乐少 1.背景 1.1 前端自动化测试较少 前端浏览器众多导致页面兼容性问题比较多,另外界面变化比较快,一个月内可能页面改版两三次,这样导致对前端自动化测试较少,大家也不是 ...
- 【华为云实战开发】13.如何在云端快速搭建python网站
1 概述 1.1 文章目的 本文主要想为研发Python项目的企业或个人提供上云指导,通过本文中的示例项目 "AI物体检测",为开发者提供包括项目管理,代码托管,代码检查,编译构建 ...
- 【华为云实战开发】9.如何进行PHP项目的快速搭建并实现CICD?
1 概述 1.1 文章目的 本文主要想为研发PHP项目的企业或个人提供上云指导,通过本文中的示例项目 "workerman-todpole",为开发者提供包括项目管理,代码托管,代 ...
- 【华为云实战开发】11.如何快速开展嵌入式开发项目?
1 概述 1.1 文章目的 本文主要想为研发嵌入式项目的企业或个人提供上云指导,通过本文中的示例项目 "智能显示器",为开发者提供包括项目管理,代码托管,编译构建,部署等操作指导, ...
- 【华为云实战开发】12.如何在云端快速开展Swagger接口测试
1 Swagger简介 1.1 概要 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务. 总体目标是使客户端和文件系统作为服务器以同样的速度来 ...
- 【华为云实战开发】16.DevOps交付模式下的软件测试
文:华为云DevCloud 兵东 众所周知,近10年IT领域有两个关键的风向转变,传统IT向云计算转变,传统瀑布和迭代开发模式向敏捷开发模式转变.这两个转变促成了DevOps产品交付模式的出现.互联 ...
- 【华为云实战开发】2.Docker镜像部署怎么玩才酷炫?
1 文章目的 本文主要帮助想要或者正在使用容器部署服务的用户,如何将他们的应用部署通过DevCloud部署在华为云上. 2 概述 2.1 Docker Docker是一个开源的引擎,可以轻松的为任何应 ...
- 【华为云实战开发】10.经典的C++项目怎么在云端开发?
1 概述 1.1 文章目的 本文主要想为研发C++项目的企业或个人提供上云指导,通过本文中的示例项目 "音频解析器",为开发者提供包括项目管理,代码托管,代码检查,编译构建,测试管 ...
- 【华为云实战开发】6.Cocos游戏项目如何在云端开发
1 概述 1.1 文章目的 本文帮助想要或者正在将Cocos项目迁移到华为软件开发服务DevCloud中的用户,把本地Cocos在Android平台下的项目迁移到云上. 1.2 项目详情 1. 项目名 ...
最新文章
- 用于检测AC电压的无接触电压检测器
- hbase java 端口_HBase远程Java客户端尝试通过随机端口进行身份验证
- C#中的类型~存储~变量
- asp获取mysql数据报错_ASP.NET在删除掉数据库文件后报错处理
- 四大必看亮点,2019黄石工业互联网创新发展大会精彩前瞻
- HDU - 2122 Ice_cream’s world III
- Linux下实现一个网卡绑定多个IP地址
- ThreadLocal线程本地存储
- POP Animation 和 layoutSubviews 的冲突
- Linux系统CentOS7破解密码
- 小偷涂鸦 java_用Java做一个涂鸦板
- mysql查看当前有哪些库_MySQL查看当前数据库库
- 别人总结归纳很全的三方库
- 圣地亚哥分校 计算机,美国加州大学圣地亚哥分校计算机科学专业.pdf
- 广和通实现基于5G R16模组的FWA Open CPU方案技术突破
- 大二课设,采用 bootstrap + express + mysql 实现电影售票系统(附带源码)
- 如何将CentOS Stream退回为CentOS 8.5
- STOCHRSI 指标理解
- 从技术专家到总经理,在不确定中探索和成长
- 【C/C++】用C语言编写爬虫—爬虫程序优化要点
热门文章
- 加州大学欧文分校 计算机专业,加州大学欧文分校计算机科学排名第36(2020年TFE美国排名)...
- 利用openpyxl模块来操作Excel
- Oracle删除重复数据并且只留其中一条数据
- 基于vue2.0打造移动商城页面实践 vue实现商城购物车功能 基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果...
- win和mac系统Sublime Text 3配置编译c和c++
- ubuntu配置硬盘开机自动挂载
- 萌龙大乱斗 合成表 持续更新
- linux中的基础正则表达式
- gitlab搭建之互备模式
- Tableview最后一行无法显示或者显示不全的问题IOS