DotNET Core与 DevOps敏捷实现概述Word下载.docx
- 文档编号:13454796
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:9
- 大小:428.79KB
DotNET Core与 DevOps敏捷实现概述Word下载.docx
《DotNET Core与 DevOps敏捷实现概述Word下载.docx》由会员分享,可在线阅读,更多相关《DotNET Core与 DevOps敏捷实现概述Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
∙.NETCore是开源的,是基于DevOps构思和构建的。
∙.NETCoreCLI和RoslynAPI让整个交付流程变得更加开放,且具有更强的适应性强。
∙自动化是DevOps的重要组成部分,.NETCore从一开始就支持自动化构建和部署。
随着.NET
Core2.0的发布(最初发布于2016年),微软拥有了一个通用、模块化、跨平台和开源的平台最新主要版本。
.NET
Core在当前版本的.NET
Framework中提供了很多API。
它最初是作为下一代ASP.NET解决方案而创建的,但现在成为很多其他场景的基础,包括物联网、云计算和下一代移动解决方案。
在这篇文章中,我们将探讨.NET
Core的更多优势,以及它如何在为传统的.NET开发人员带来好处的同时,还能让所有需要为市场带来强大、高性能和经济的解决方案的技术人员受益。
从.NET
1.0推出测试版开始,我就在开发软件。
我还记得当时使用.NET感觉就像在作弊一样。
我当时想,“这不是应该很难吗?
我的malloc在哪里?
我不需要转换指针了吗?
这个框架类库用来做什么的?
”
快进到2018年,我们仍然很乐意在.NET
Framework上编写代码,不必为内存分配问题而烦恼。
System.Thread为我们处理线程问题,然后是BackgroundWorker,现在是Task。
原先不是线程安全的FCL类现在被标记为线程安全的。
想开发一个Web应用程序?
它就是一个完整的框架,包含了所有必需的组件。
.NET为我们提供了很多原本需要手动完成的东西。
作为开发人员,我们把更多的时间花在编写业务逻辑代码上。
汇编/C/C++拥护者可能会唏嘘现在的一般开发人员都不需要硬核系统编程知识,但我不会这么抱怨!
从第一个Beta版开始,.NET经历了多次迭代,其中包括了四个主要版本。
最近的迭代.NET
Core是最重要的。
.NETCore带来了真正的跨平台、现代CLI、构建系统和开源库,等等。
这些东西都很重要,但.NETCore的承诺不止于此,它还涉及了软件的开发和交付方式。
我开发软件已经有二十多年了,所以我还记得源码控制是为“大型”团队而保留的。
“自动化”并没有真正出现在我们的词典中——除了我们为客户自动化业务流程。
说得具体一点,就是构建/编译软件是由人类完成的。
“构建经历”会在她自己的计算机上生成二进制文件(所以生成的文件在她自己的计算机上总能正常运行)!
将软件部署到它要运行的环境中是一个脆弱的拜占庭式过程,因为需要共享驱动器、FTP和进行手动文件复制粘贴。
整合开发团队的工作是一场悲惨的死亡游行,一次又一次的回退就像玩打地鼠游戏一样。
是否可以投入生产?
谁知道呢?
软件正在迅速建立起对世界的兴趣,但开发、部署和运营基于软件的系统的过程却停留在图灵和Hopper时代。
2008年左右发生了一场革命,这场革命被称为DevOps。
从那时起到现在,这些年我们已经看到一场运动的兴起。
DevOps非常重要,它包含并可能取代之前出现的敏捷运动。
我在2014年开始接触DevOps,当时我在一次大会上拿到了《凤凰项目》这本书。
当我开始如饥似渴地阅读那本书时,我的会议计划被我抛到脑后。
这本书讲的东西太多了。
如果你正处在IT行业,即使是很短的时间,你也一定扮演过那些角色。
你可以试着自己代入角色。
从那以后,DevOps成了我职业生涯的焦点。
DevOps通常被认为有三个主要的“支柱”:
文化、流程和技术。
本文是关于DevOps的技术部分。
具体地说,是关于.NET
Core为现代DevOps实践带来的技术。
.NETCore是在DevOps兴起期间构思出来的。
微软显然有明确的目标,就是让.NET
Core成为DevOps时代的平台。
本文将介绍.NET
Core和DevOps的三个主要主题:
∙.NETCore框架和SDK;
∙构建自动化;
∙应用程序监控。
2..NETCore框架和SDK
DevOps并不是孤立存在的。
用于生成和交付基于软件的系统的技术可能可以支持或者阻碍DevOps实践。
无论你的技术栈是怎样的,DevOps都是值得一试的。
话虽如此,你选择的技术栈将对你的DevOps实践产生重大影响。
闭源、专有构建系统对DevOps来说并不友好。
.NETCore是完全开源的,用于表示项目和解决方案的文件格式也有完整的文档化。
现代语言和框架(如Node/JavaScript、Ruby和Python)已经具有一些常见特性:
∙紧凑的开源框架;
∙命令行界面(CLI);
∙记录良好的开放式构建系统;
∙支持所有主要操作系统。
这些特性和其他更多功能在DevOps时代变得越来越流行,因为它们具有很强的适用性和自动化能力。
Core的CLI命令dotnet是.NET
Core应用程序构建过程的单一入口点。
无论是什么平台,开发人员都可以在工作站上使用dotnet,用于构建代理。
也就是说:
我将在后续展示的所有本地开发工作都可以在MacBookPro上进行。
试着想象一下,这在三年前是不可能的事情!
使用.NET
Core的第一步是下载它。
你可以在这里下载SDK。
在我的MBP上有171MB。
安装完毕后,打开你最喜欢的终端窗口(在Windows上我偏爱Powershell,但在Mac上我使用iTerm2)。
如果你已经很熟悉.NET开发,那么可能已经习惯了安装大型框架。
你习惯使用VisualStudio来完成开发工作。
如果你是.NET
Core新手,可能会觉得有点奇怪。
在使用IDE之前,我们可以使用这171兆字节的东西完成很多事情。
执行:
dotnet
这是一个新的CLI命令,用于与.NET
CoreSDK发生交互。
让我们来看一下。
dotnethelp
这将列出CLI支持的所有命令,这个清单并不长,也没必要很长。
你可能在查找哪些是与.NET
Core框架构建过程进行交互所需的,从一个新项目到已部署的应用程序。
第一步是创建一个新的应用程序。
让我们来看看我们的选项。
dotnetnew
输出的信息将列出可用的模板。
在VisualStudio中你可以单击File-NewProject来创建项目,但在这里我们使用命令行。
我们有很多模板可选择。
我偏爱Angular,所以让我们从那里开始吧。
dotnetnewangular-odotnet-angular
这将在新目录dotnet-angular中创建一个新的Angular项目。
如果你愿意,可以手动创建目录,只是在执行dotnetnew之前不要忘记更改目录,否则将在当前目录中创建项目。
如果你已经做过Angular开发,那么可能已经安装了Node。
如果没有,请花点时间下载并安装它。
如果确实需要安装Node,请在安装后关闭并重新打开终端。
dotnetrun
这个命令将编译并运行应用程序(也可以通过执行dotnetbuild直接完成编译,而无需运行应用程序来)。
这可能需要一两分钟时间,然后你将得到一些包含URL的输出:
Contentrootpath:
/Users/dswersky/dotnet-angularNowlisteningon:
https:
//localhost:
5001
将URL复制到Web浏览器中,然后等一会儿。
你现在应该能看到一个在后台运行ASP.NET
Core、在前端运行Angular的简单应用程序。
那么,这种体验与昔日的.NET开发体验有何不同?
你在几分钟内就创建并运行了一个.NET
Core应用程序(即使包括安装.NET
Core和Node),你可能会想到这几个问题:
2.1.我的IDE呢
到目前为止,我们还不需要IDE,对吗?
很显然,如果你想编辑这段代码,你需要使用某些工具。
你可能希望使用与.NET和Angular相关的工具。
“没问题”,你可能会想,“我启动VisualStudioProfessional就可以了”。
你可以这样做…或者你也可以下载VisualStudioCode,它提供了很多功能,而且是免费的。
你可以使用VisualStudioCommunity,它也是免费的。
关键在于,不再需要花费数百美元就可以开始基于.NET
Core的开发。
2.2.使用IIS
这是“遗留”.NET
Web应用程序开发和ASP.NET
Core之间的主要区别。
你可以在IIS中运行ASP.NET
Core应用程序,但也可不必这么做。
.NETCore是跨平台的,所以将ASP.NET
Core与IIS分离也是显而易见的。
我在这里列出的命令,包括dotnetrun,在Windows、Mac和Linux上同样运行良好,且效果完全相同(甚至还有一个可以在RaspberryPi上运行的ARM构建命令)。
这个Angular应用程序是“编写一次,到处运行”的一个很好的示例。
不使用IIS来托管.NET应用程序已经有一段时间了。
.NETOpenWebInterface(OWIN)多年来一直支持“自托管”ASP.NET应用程序。
这是通过代码和基础设施(通常称为“ProjectKatana”)来实现的。
.NETCore使用了一个叫作Kestrel的HTTPS服务器。
Kestrel是一款用于.NET应用程序的快速、高性能、开源的HTTPS服务器。
Kestrel为ASP.NET
Core网站和RESTful服务提供HTTPS,让它们可以运行在任何地方,包括Windows、Linux和容器协调器。
Kestrel使ASP.NET
Core应用程序变得完全独立,在基于Windows的HTTPS服务器上没有外部依赖性。
2.3.这与DevOps有什么关系
自动化是DevOps的核心原则和实践。
.NETCore提供的可移植性、CLI和开源构建系统对于DevOps实践来说至关重要。
最重要的是,它们可以轻松实现构建和部署过程的自动化。
可以通过编写CLI脚本来实现自动化,也可以通过编程方式直接自动化构建系统。
.NETCore的这些功能使其不仅可以实现自动化,而且可以相对轻松地自动执行复杂的构建过程。
我们因此能够建立自动化和持续集成。
3..NETCore构建自动化
回到VisualSourceSafe时代,团队提交到存储库的代码就在那里,随时准备好进行编译。
我的脑海里浮现出一个想法——“为什么我要在我的系统上构建部署,因为构建原本可以在存储库中进行?
”我不是唯一一个有这种想法的人,但却没有对此采取什么行动。
真正采取行动的是那些开始着手
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DotNET Core与 DevOps敏捷实现概述 Core DevOps 敏捷 实现 概述