文档章节

C# on DevCloud

 透明的鱼
发布于 2018/12/12 16:08
字数 1602
阅读 1
收藏 0

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. 部署方式:Ansible部署 + playbook脚本

 

 

典型的B/S架构系统,用户通过互联网访问系统,客户端处理用户操作及向数据库读取或写入数据。

1.3 主干流程

本文的主干流程为:代码托管、编译构建、发布(软件发布库)、部署。

开发者在本地开发后通过代码托管服务进行版本管理。项目开发到一定程度后可以进行编译构建操作,构建出软件包,通过发布服务进行归档管理。再将软件包部署到服务器上,即可通过外部进行访问。

 
 

1.4 前提条件

 1.注册华为云账号:华为云官网注册华为云账号,此账号适用于所有华为云产品。

 2.弹性云服务器:部署将使用带有公网IP的ECS(Windows Sever 2012)。

项目管理

2.1 创建项目

新建项目的开发流程包含两种类型:scrum流程、看板流程。Scrum流程是标准的敏捷开发流程,工作项层级为传统的scrum划分方法Epic->Feature->Story->Task&Bug,本项目为把工作划分的层级更清晰,选择了scrum流程。

 
 

2.2 创建迭代

本项目研发周期短,只有一次release,划分成三个迭代,迭代周期为一周。

 

 
 

2.3 梳理产品需求清单

项目规划是以思维导图的形式将工作项的层级结构展示出来,更直观的看到父子关系,在项目规划中新建工作项后,会自动生成到后面的Epic,Feature,Backlog和迭代页面,在迭代开始前,项目经理将从客户获取的所有需求信息,逐一落实到项目规划中,分解成story,并为工作项设置优先级。

 

 
 

代码托管

3.1 创建仓库

Ø 新建代码仓库时,选择“模板新建”,在搜索框中输入已经被公开为示例模板的仓库名称,选择该模板。(此处搜索“superjokes”,编程语言选择ASP.NET)

 
 

Ø 输入新的仓库名称(可以和模板仓库同名),即可创建代码仓

 
 

数据库密码修改:(必做,否则将不会部署成功)

修改在superjokes/src/Joke.Web/App_Data目录下的appsettings.config。将数据库配置处的密码(第33行Password=)改为将要部署的主机上的数据库密码。

 

编译构建

4.1 创建构建任务

Ø 新建任务,在“选择构建模板”界面勾选msbuild,点击确定完成任务模板的创建。跳转至“编译构建任务”界面。

 

 

Ø 输入构建详细信息

任务描述、源码仓库分支等自行选择。

 

Ø Msbuild构建

Msbuild构建流程,使用镜像msbuild15-all

 

输入命令:

 

命令注解:

由于本代码工程的sln文件路径位于/src目录下,故在命令行中先执行cd src命令。

 
 

发布

本项目中发布服务可以将构建生成的可执行文件上传到发布仓库,便于软件包管理。

Ø 版本归档

Msbuild构建过程中已经写了对应的压缩指令。

在“上传软件包到发布库(Windows环境)”步骤写明构建包路径、发布版本号及包名后,可以将构建生成的软件包上传到发布仓库,自动进行软件版本管理。

 
 

部署

部署任务的目的是将构建完成的软件包部署到一个可供我们访问的服务器上,部署成功之后即可通过浏览器访问该地址。

部署任务一共分为四部分,分别是主机授信,编写部署脚本,任务配置,和执行部署。

 
 

此时需要一台可供访问的服务器,由于此次部署的Web工程是C#语言编写的,所以服务器需要是一台具有弹性ip地址的Windows服务器。

在主机授信前,需要先对主机环境进行相应配置。

6.1 主机环境配置

1. 安装MySQL。

2. 通过数据库配置脚本在服务器上生成MySQL数据库,数据库配置脚本为位于代码仓库根目录的superjokes.sql。

 

 
 

6.2 主机授信

将服务器主机授信到DevCloud里,用于部署网站。

6.3 部署脚本

通过playbook脚本执行powershell命令将项目部署到服务器的IIS服务上。

Ø 获取部署脚本

从代码仓库根目录获取playbook脚本IIS-windows-1.0.zip后上传至DevCloud的playbook管理中。

6.4 任务配置

Ø 新建非模板部署任务。

Ø 填写部署任务名称,“部署设置”选择“Ansible部署”,模板选择“自定义playbook”并选择自己上传的playbook脚本。

 

 

然后选择部署的服务器,设置端口,选择要部署的软件包及设置网站的默认页面。

 

 

playbook参数详解:

webapps_path: 软件包部署路径,在目标主机上的路径

app_filename:部署采用的软件包名称

sitePort: 网站端口(提供一个目标主机上可访问的端口号)

SiteName: 网站名称,启动IIS服务时为该网站命名

SiteAppPoolsModel: Integrated 不必修改

managedRuntimeVersion: v4.0 不必修改

WebSitePath:  IIS服务中网站源文件路径

IISLogFile:  IIS服务中的日志存储路径

win_curl_path: 不必修改

6.5 查看部署效果

部署任务执行完成后就可以用http://ip:端口/默认页 访问网站了

 

 

到此,我们完成了C# web项目在DevCloud上的搭建。

© 著作权归作者所有

粉丝 0
博文 91
码字总数 146537
作品 0
私信 提问
使用SourceTree克隆git项目

一直以来,使用git都是使用SourceTree的客户端。最近在码云上面开了几个项目,也想使用SourceTree客户端,找了一下配置方法,亲自试验了。可行。记录一下。 SourceTree配置码云 不同的是,我...

ChinaHYF
2018/10/13
0
0
TortoiseGit on 华为云DevCloud

1文档目的 本文档主要帮助习惯使用图形化工具提交代码的开发者,如何更好的应用TortoiseGit,以及更好的将TortoiseGit与Devcloud结合应用。 对于版本管理系统的介绍和git bash的安装使用,请...

程序员的那点事
2018/05/17
0
0
降低DevCloud门槛 华为云对开发者送3大福利

  【IT168 资讯】对软件开发者而言,虽然目前网上基于敏捷、DevOps的开发工具有很多,但大都比较分散单一,一站式软件开发平台却比较少。也许,不少开发者可能已经知道了华为云软件开发云(...

it168网站
2017/11/24
0
0
华为云和 Sonatype 联合发布中国官方 Maven 中央仓

近期,华为云与 Sonatype 签署了有关 Maven 中央仓的合作协议,华为云将作为中国唯一 Maven 中央仓的官方镜像节点,为国内广大开发者提供便捷的加速服务。 华为云是领先的云服务提供商,致力...

局长
2018/03/23
8.1K
37
DevCloud如何实现敏捷和Devops开发?

  【IT168 评论】“人类生存于一个虚拟的、数字化的生存活动空间,在这个空间里人们应用数字技术从事信息传播、交流、学习、工作等活动,这便是数字化生存。”--尼葛洛庞帝!   21年前,尼...

it168网站
2017/03/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Taro ScrollView 组件的 scrollTop 属性是个坑

官方issue:ScrollView设置scrollTop没效果 同样的,设置 scrollTop=0 并不能实现置顶,官方回复早就修复了,我的 Taro 版本已经是最新的,然而并未修复。 万能的评论区,给出了失效的原因。...

dkvirus
19分钟前
1
0
Qt那些事0.0.21

这次还是关于PRO文件中QMAKE_POST_LINK的故事。 平时都是使用VS2015作为编译器,恰巧想用MinGW编一版程序,结果偏偏出现了错误。话说测试的这个项目可是在Linux下(fodera 20)可以正确编译通...

Ev4n
29分钟前
0
0
OSChina 周六乱弹 —— 抖音外放 亲妈下葬。

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :一直没想明白黎明是怎么混进「四大天王」的,直到最近网易云音乐心动模式开启之后 #今日歌曲推荐# 《那有一天不想你》- 黎明 手机...

小小编辑
59分钟前
301
8
Linux使用源码包安装软件

前言: 最近整理一些以前的学习笔记。 过去都是存储在本地,此次传到网络留待备用。 源码包 Linux软件多数免费、开源,是开发人员编写的,具有很强可读性的一组相关代码文本。 源码包 --> 编...

迷失De挣扎
今天
6
0
IPv4如何转换为IPv6?

ipv6已经逐渐在应用,现在已经有很多的运营商支持ipv6,前天我们也发布了如何让电脑使用ipv6地址?有很多朋友在问?ipv6有什么作用,它的表示方式是什么,今天我们来一起来详细了解下ipv6相关计...

xiangyunyan
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部