Visual Studio容器项目工程化心得

引言  

  关注博主的网友会看到我使用ASP.NET Core 容器化部署企业级项目的过程, 回想到开发过程中,鄙人有一些工程化心得, 分享给同学们。

项目工程化

  因为本项目涉及单元测试Project、容器化部署、本地化的sqlite数据库,nlog日志, 因此有必要给出我的Visual Studio 2019 解决方案目录:

需要理解几点:

① 建立container文件夹

  该专门存放容器化部署相关的文件, 将开发内容和部署内容分开是一种DevOps实践, 同时也为我们以后实现CI/CD做些许铺垫。

  小技巧:  在使用Visual Studio的时候,可建立与以上文件件同名的解决方案文件夹, 这样便于开发人员编写部署脚本。

640?wx_fmt=png

② 编写git ignore 文件

  网上很多大牛分享过git的操作技巧,add, commit, push, checkout、merge 相信很多开发人员烂熟如心。

但是作为企业级工程,多少会涉及一些不需要代码仓库管理的文件(密钥文件、临时文件、 本地数据库文件、 日志文件), 这就涉及git ignore的用法,更丰富的官方文档在这里: https://git-scm.com/docs/gitignore

这个操作很多时候是由架构师一次性配置完成, 很多开发同学没有实操过, 今天我们也来玩弄一下。

// 在解决方案.sln 同级目录下编写的.gitignore文件:忽略vs user file,nuget package,temp files
*.suo
*.user
packages
.vs
.nuget
container
/app/publish/*
//  在EqidManager项目文件夹下编写.gitignore文件:忽略localdb,logs,temp files
*.suo
*.user
bin
obj
internal-nlog.txt
EqidManager.db
healthchecksdb

640?wx_fmt=jpeg

③  编写WebDeploy Publish Profile

  container文件夹中包含app和nginx的镜像准备文件和对应的Dockerfile,这里我们关注 app/publish文件夹, 里面将会存放本次应用程序的最终可执行文件。

使用WebDeploy部署的时候 ,在该路径生成部署文件,便于统一管理, 产生的FolderPublish.pubxml 如下:

<?xml version="1.0" encoding="utf-8"?>
<!--
此文件由 Web 项目的发布/打包过程使用。可以通过编辑此 MSBuild 文件
自定义此过程的行为。为了解与此相关的更多内容,请访问 https://go.microsoft.com/fwlink/?LinkID=208121。
-->

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<PublishProvider>FileSystem</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<ProjectGuid>1213badd-176e-4c24-af84-bfdb0517b692</ProjectGuid>
<publishUrl>../../container/app/publish</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>


<!--
关注黄色背景行,发布目录使用相对路径(相对于项目文件***.csproj的路径)
-->

  WebDeploy根据此配置会在工程目录container/app/publish下生成部署文件, 准备部署时可直接拷贝container文件夹, 生成镜像并形成容器。
  本文只是粗略分享 Devloper使用Visual Studio开发容器化项目的实践,CI/CD请持续关注。

原文地址:https://www.cnblogs.com/JulianHuang/p/10983973.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 
640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF1223F. Stack Exterminable Arrays

CF1223F. Stack Exterminable Arrays Solution 奇怪的套路增加了。 大概就是[l,r][l,r][l,r]能匹配完可以转化为[1,l−1][1,l-1][1,l−1]匹配后的状态和[1,r][1,r][1,r]匹配后的状态相同&#xff0c;因此hashhashhash判断即可。 Code #include <vector> #include &l…

从严治码-系统集成项目之根本

从4月份开始&#xff0c;由于备考《系统集成项目管理工程师》的原因&#xff0c;博客没有持续更新&#xff0c;在上半年考试结束之后&#xff0c;又对项目进行了一些收尾的工作。下面就这段时间的学习作一个记录和总结吧。在学习的过程中&#xff0c;提炼了一些自己认为比较重点…

CF924D. Contact ATC

CF924D. Contact ATC Solution 第一波转化挺妙的。 令tlitl_itli​表示用−w-w−w的风到原点的时间&#xff0c;tritr_itri​表示用www的风到圆点的时间。 显然(i,j)(i,j)(i,j)有解的条件为(tli−tlj)(tri−trj)<0(tl_i-tl_j)(tr_i-tr_j)<0(tli​−tlj​)(tri​−trj…

Insider Dev Tour 2019 | 以技术之力,展现传承魅力

世界原本是一个漆黑的山洞的大小&#xff0c;一个“胆大妄为”的人燃起火把&#xff1b;世界原本是一个孤岛的轮廓&#xff0c;一个“野心勃勃”的人扬帆起航&#xff1b;如今&#xff0c;世界的版图已经清晰&#xff0c;是什么让我们走出黑暗与闭塞&#xff0c;从未放下对未知…

免费馅饼 逆向dp

传送门 给你n个馅饼&#xff0c;之后给出n个馅饼掉落时间和位置。一共有11个位置从 0 ~ 10&#xff0c;这人初始在第5个位置&#xff0c;让后每一秒最多能移动一个单位&#xff0c;问这个人能最多能拿多少馅饼。 思路&#xff1a; 有点像数字三角形&#xff0c;但是需要逆着推…

CF840D. Destiny

CF840D. Destiny Solution 发现问题只有询问没有修改&#xff0c;且要维护类似众数的东西&#xff0c;瞟了一眼数据范围n,m≤3e5n,m\leq 3e5n,m≤3e5&#xff0c;果断莫队&#xff0c;一点不虚&#xff0c;写到一半发现删除不好直接维护&#xff0c;用setsetset会多一个loglo…

.NET 之 ORM 性能评测

Why你应该总能听到某ORM性能比Dapper高你应该有如下疑问&#xff1a;基准测试是否权威基准测试的方式是否合理基准测试的标准是否能够统一统一基准测试标准/规范如何进行姿势正确的性能测试相信大家对 Dapper 的性能&#xff0c;以及基准测试的权威性是没有疑问的&#xff08;否…

Loj #6089. 小 Y 的背包计数问题

Loj #6089. 小 Y 的背包计数问题 Solution 似乎是比较套路的东西。 我们发现对于i≤ni\leq \sqrt ni≤n​的部分是一个多重背包&#xff0c;而剩下的部分是一个完全背包&#xff0c;因此考虑分开计算之后合并答案。 part one 当i≤ni\leq \sqrt ni≤n​时&#xff0c;令fi…

CF817E Choosing The Commander 01tire 贪心

看到集合和异或&#xff0c;可以想到01tire(但是我没有想到)。 让后就可以对于每次插入和删除一个数&#xff0c;都在01tire树上操作即可。让后记录一下到当前位(当然是从高位到低位啦)有相同前缀的数的个数。例如样例建图出来大概是这样的&#xff1a; 可以看到从编号为2的点开…

不断进化的分支和需求管理

昨天有朋友在公众号私信问我几个关于代码分支管理的问题&#xff0c;这几个问题是我去年写的《在团队中使用GitLab中的Merge Request工作模式》一文结尾时抛出的几个问题&#xff1a;如果系统上线后有紧急Bug需要处理&#xff0c;这个流程应该怎样去调整&#xff1f;每个任务都…

Loj #6077. 「2017 山东一轮集训 Day7」逆序对

Loj #6077. 「2017 山东一轮集训 Day7」逆序对 Solution 令fi,jf_{i,j}fi,j​表示前iii个数产生jjj个逆序对的方案数&#xff0c;每次考虑把i1i1i1加入&#xff0c;有i1i1i1个插入位置分别产生0..i0..i0..i个新的逆序对。 因此fnf_{n}fn​的生成函数为(1x)(1xx2)…(1x…xn−…

CF56E Domino Principle 树状数组 + 简单dp

一个比较简单的题&#xff0c;但是我还是没做出来(哭。 很容易想到从后往前做&#xff0c;所以我们可以维护一个dp数组f&#xff0c;f(i)表示到第i个牌倒下能达到的最远距离。 f直接倒着跑&#xff0c;每次取[x,xh−1][x,xh-1][x,xh−1]的最大值即可&#xff0c;可以用线段树比…

基于Docker的Consul服务发现集群搭建

在去年的.NET Core微服务系列文章中&#xff0c;初步学习了一下Consul服务发现&#xff0c;总结了两篇文章。本次基于Docker部署的方式&#xff0c;以一个Demo示例来搭建一个Consul的示例集群&#xff0c;最后给出一个HA的架构示范&#xff0c;也会更加贴近于实际应用环境。一、…

Hills And Valleys CodeForces - 1467B 思维

给你一个数组&#xff0c;最多可以修改一个数&#xff0c;问最少的山峰和山谷数量之和。 小菜鸡做了一年。 一上来想猜个结论&#xff0c;让每个数等于其相邻的两个数&#xff0c;看了题解之后也证明的正确性&#xff0c;当时直接写就没后面这么多事了。 但是命运让我分情况讨…

2018 ACM-ICPC World Finals Problem D.Gem Island

2018 ACM-ICPC World Finals Problem D.Gem Island Solution 其实就是求x1x2⋯xnnd,xi∈[1,d1]x_1x_2\dots x_nnd,x_i\in[1,d1]x1​x2​⋯xn​nd,xi​∈[1,d1]的前rrr大的xix_ixi​的和的期望&#xff0c;可以发现每一种不同的序列{xi}\{x_i\}{xi​}的出现概率都是一个定值&a…

[译]使用LazZiya.ExpressLocalization开发多语言支持的ASP.NET Core 2.x项目

介绍开发多语言支持的ASP.NET Core 2.x Web应用程序需要大量的基础架构设置&#xff0c;并且耗费时间和精力。这篇文章&#xff0c;我们将使用LazZiya.ExpressLocalization nuget包一步本地化支持。背景大多数网络应用程序都是基于网址的本地化。因此我们可以在网址中看到所选的…

2019 ICPC World Finals Problem B. Beautiful Bridges

2019 ICPC World Finals Problem B. Beautiful Bridges Solution 太菜了&#xff0c;sbsbsb题调了一个下午。 首先有一个显然的O(n3)O(n^3)O(n3)的dpdpdp&#xff0c;令fif_ifi​表示最后一个桥柱在iii的最小代价&#xff0c;枚举上一个桥柱jjj&#xff0c;因为地面超过桥拱…

ac 梦幻布丁 启发式合并

题意&#xff1a;中文题。 对于每种颜色&#xff0c;我们都可以看成一个集合。让后把一种颜色变成另一种颜色就转换成了把两个集合的合并问题。显然我们有一个复杂度为O(NlogN)O(NlogN)O(NlogN)的启发式合并能完美的解决这个问题。 解决合并问题了&#xff0c;现在需要解决如何…

VS Code 1.35 发布!全新 logo 来临,远程开发进入稳定版

近期&#xff08; 北京时间 2019 年 6 月 6 日 &#xff09;&#xff0c;微软发布了 Visual Studio Code 1.35 版本&#xff0c;带来了众多更新。全新的 logo全新的图标来啦~ 这一次的图标更新历时两个月&#xff0c;VS Code 团队倾听了用户们的反馈。大家对新图标还喜欢吗&…

P2617 Dynamic Rankings 整体二分

树套树板子题&#xff0c;但是整体二分不管是时间复杂度还是空间复杂度都表现更优秀&#xff0c;所以用整体二分来水一波。 普通的整体二分是没有修改操作的。然鹅我们处理修改操作也比较容易&#xff0c;直接减上这个数&#xff0c;让后加上修改之后的数即可。这样按照时间戳来…