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#网站并实现持续集成?【华为云技术分享】的更多相关文章

  1. 用 Serverless 快速搭建个人相册网站

    日常生活中我们经常会拍摄一些视频.照片等,这些文件会占用比较多的存储空间.本文将介绍一种方法:利用 ThumbsUp 工具,结合 Serverless Framework 的 component 快速 ...

  2. Docker: 快速搭建LNMP网站平台

    快速搭建LNMP网站平台 步骤: 1.自定义网络(这里建立一个自定义网络,名字叫 lnmp, 让LNMP网站的服务,都加入这个自定义网络)docker network create lnmp2.创建M ...

  3. 华为云实战开发】5.如何快速创建免费Git代码仓库【华为云技术分享】

    1 文章目的 本文主要帮助已经掌握或者想要掌握Git的开发者,如何更好的应用Git,以及更好的将Git与DevCloud结合应用. 2 概述 2.1 版本控制系统介绍 从狭义上来说,版本控制系统是软件 ...

  4. 【华为云实战开发】10.经典的C++项目怎么在云端开发?【华为云技术分享】

    1 概述 1.1 文章目的 本文主要想为研发C++项目的企业或个人提供上云指导,通过本文中的示例项目 “音频解析器”,为开发者提供包括项目管理,代码托管,代码检查,编译构建,测试管理的操作指导,覆盖软 ...

  5. 通过与Quickbuild和Mist.io的持续集成实现云管理和使用监控

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 这篇文章由巴拉克·梅里莫维奇撰写. 总结我自己有关Openstack的各种骚操作先告一段落.这一次我想谈谈有关监控云服务的使用情况. 我个人使用 ...

  6. 基于容器微服务的PaaS云平台设计(一) 实现容器微服务和持续集成

    版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://www.cnblogs.com/SuperXJ/ 前言:关于什么是容器微服务PaaS和容器微服务PaaS的 ...

  7. 【华为云实战开发】9.如何进行PHP项目的快速搭建并实现CICD?【华为云技术分享】

    1 概述 1.1 文章目的 本文主要想为研发PHP项目的企业或个人提供上云指导,通过本文中的示例项目 “workerman-todpole”,为开发者提供包括项目管理,代码托管,代码检查,编译构建,测 ...

  8. Eclipse使用struts2开发web应用快速搭建

    eclipse 下载javaEE版,这里用4.5(Mars). Tomcat8解压,设置好JAVA_HOME环境变量. 下载struts2官网上的lib包,struts-2.3.24-lib.zip, ...

  9. Linux下快速搭建测试网站DVWA

    DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者更好的理解Web ...

随机推荐

  1. 中国爬虫违法违规案例汇总github项目介绍

    中国爬虫违法违规案例汇总github项目介绍 GitHub - 本项目用来整理所有中国大陆爬虫开发者涉诉与违规相关的新闻.资料与法律法规.致力于帮助在中国大陆工作的爬虫行业从业者了解我国相关法律,避免 ...

  2. java--正则校验

    java--正则校验 // boolearn matches(String regex):判断当前字符串是否匹配指定的正则表达式true/false demo: String qq = "1 ...

  3. ios 开发学习步骤

    https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/RoadMapiOSCh/Wher ...

  4. 物联网通信 - RESTDemo示例程序(Java版本)

    源码下载  -> 提取码  QQ:505645074 Netty的Restful API实现 Get: http://127.0.0.1:8662/test Post http://127.0. ...

  5. bootstrap搜索栏

    /*进行样式预习设置,body预留导航栏位置50px,mylogo样式是给把图表显示出来*/ <style> body{margin-top: 50px; } .my-logo{ disp ...

  6. Ubuntu下搭建Kubernetes集群(4)--部署K8S Dashboard

    K8S Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态.K8S集群安装好后默认没有包含Dashboard,我们需要额外创建它. 首先我们执行命令: wg ...

  7. node小爬虫

    这一章主利用node的http模块制作一个网页的小爬虫来爬去网页信息,其中对于后端html的节点的获取采用了cheerio模块,这 /** * Created by Administrator on ...

  8. VIJOS-P1234 口袋的天空

    洛谷 P1195 口袋的天空 https://www.luogu.org/problemnew/show/P1195 JDOJ 1374: VIJOS-P1234 口袋的天空 https://neoo ...

  9. VIJOS-P1450 包裹快递

    洛谷 P1542 包裹快递 https://www.luogu.org/problem/P1542 JDOJ 1527: VIJOS-P1450 包裹快递 https://neooj.com/oldo ...

  10. 使用hangfire在xunit中

    框架为:abp hangfire配置连接:https://aspnetboilerplate.com/Pages/Documents/Hangfire-Integration 在单元测试中如何配置呢? ...