.Net Framework

Gogs + Drone 实现CI/CD(CD)

孤人 提交于 2020-11-29 16:12:37
前文 已经实现CI部分,本文继续以Asp.Net Core实现CD部分。    创建gogs仓库   首先在gogs创建一个空项目drone-ci-demo,本地新建一个asp.net core项目,并且在与.csproj同级目录中创建Dockerfile,Dockerfile内容如下: FROM microsoft/dotnet: 2.2 -aspnetcore- runtime WORKDIR / app COPY . . EXPOSE 29029 ENTRYPOINT [ " dotnet " , " drone-ci-demo.dll " ] 编写.drone.yml   在项目根目录创建.drone.yml文件,内容如下: kind: pipeline type: docker name: deployment steps: - name: build image: microsoft / dotnet commands: - dotnet restore - dotnet build - c Release - echo 项目生成成功 - name: publish 2 harbor image: plugins / docker settings: dockerfile: drone -ci-demo/ Dockerfile tags: latest insecure

.NET5发布,这个微软“全家桶”会是.NET的春天吗?

只愿长相守 提交于 2020-11-29 15:35:01
在全面开源的步伐下,微软也逐步跟上了脚步,作为微软最早迈向开源的重要软件之一,.NET 5的发布对微软及其使用者都具有重要意义。 微软未来目标是将所有的 .NET 组件整合到一个产品下,然后用户可以根据需求使用 .NET 的某个部分,而不是单独下载或安装所有内容。 对于Visual Studio用户,需要Visual Studio 16.8或更高的版本才能在Windows上使用.NET 5.0,在MacOS上使用最新版本的Visual Studio for Mac)。Visual Studio Code的C#扩展也已经支持.NET5.0和C#9。 NET 5.0是.NET统一之旅的第一个版本。微软希望 .NET Framework 开发者能够迁移他们的代码和应用到 .NET 5.0 上,为明年发布的 .NET 6.0 将 Xamarin 开发者过渡到统一平台奠定基础。 版本发布时间轴: .NET Core 3.0 已于2019/09推出 .NET Core 3.1 已于 2019/12推出,为 LTS (Long Term Support,长期支援版),之后.NET Core 将更名.NET,固定每年释出新版,并定义双数版号为LTS版,单数版号为Current版。 .NET 5.0 2020/11 .NET 6.0 LTS 2021/11 .NET 7.0 2022/11 .NET

系列终章

99封情书 提交于 2020-11-29 13:47:07
Blazor 是一个 Web UI 框架,可通过 WebAssembly 在任意浏览器中运行 .Net 。 Blazor 旨在简化快速的单页面 .Net 浏览器应用的构建过程,它虽然使用了诸如 CSS 和 HTML 之类的 Web 技术,但它使用 C#语言和 Razor 语法代替 JavaScript 来构建可组合的 Web UI 。通过提供用于编译到 Web 的大小和高效加载的格式,WebAssembly 可让 .Net 在浏览器中运行。 本次系列课程共7次,最后一期将分享 .NET 5 带来的新特性。本次课程有更多惊喜在等你,快来报名参与吧! 上课时间: 2020年11月28日 周六 14:00 - 16:00 上课方式: 点击下方 立即报名 ,报名后在 “上课方式” 中查看 分享嘉宾 · 张善友 微软 SWAT 特派专家,友浩达科技有限公司 CEO & CTO,.NET 技术专家,连续15年被评为微软 MVP 陈超超 Ant Design Blazor 项目贡献者 拥有十多年从业经验,长期基于.Net技术栈进行架构与开发产品的工作,Ant Design Blazor 项目贡献者,现就职于正泰集团 往期回顾 · 第一期 初识Blazor 张善友 介绍WebAssembly的发展历程和最新进展,以及基于Wasm技术的.NET 前端框架Blazor 的发展历程和发展前景

.NET5发布,这个微软“全家桶”会是.NET的春天吗?

别说谁变了你拦得住时间么 提交于 2020-11-29 13:45:03
在全面开源的步伐下,微软也逐步跟上了脚步,作为微软最早迈向开源的重要软件之一,.NET 5的发布对微软及其使用者都具有重要意义。 微软未来目标是将所有的 .NET 组件整合到一个产品下,然后用户可以根据需求使用 .NET 的某个部分,而不是单独下载或安装所有内容。 对于Visual Studio用户,需要Visual Studio 16.8或更高的版本才能在Windows上使用.NET 5.0,在MacOS上使用最新版本的Visual Studio for Mac)。Visual Studio Code的C#扩展也已经支持.NET5.0和C#9。 NET 5.0是.NET统一之旅的第一个版本。微软希望 .NET Framework 开发者能够迁移他们的代码和应用到 .NET 5.0 上,为明年发布的 .NET 6.0 将 Xamarin 开发者过渡到统一平台奠定基础。 版本发布时间轴: .NET Core 3.0 已于2019/09推出 .NET Core 3.1 已于 2019/12推出,为 LTS (Long Term Support,长期支援版),之后.NET Core 将更名.NET,固定每年释出新版,并定义双数版号为LTS版,单数版号为Current版。 .NET 5.0 2020/11 .NET 6.0 LTS 2021/11 .NET 7.0 2022/11 .NET

Windows UI自动化测试的XPATH实现

点点圈 提交于 2020-11-29 04:50:20
https://segmentfault.com/a/1190000010339021 从事Windows 桌面应用自动化测试也有一些年了,现在谈这个话题并不流行。因为除了企业级应用,很少有公司会只选择Windows桌面作为目标用户平台,一般都会考虑跨平台的浏览器解决方案,桌面应用的地位渐渐下降,这是事实。 当年初入测试行业时就被外包公司看上了,在微软的圈子里一待就是4年,时间真快。不得不说,一个大学刚毕业的毛头小子看到微软里各种技术和工具真像极了刘姥姥进大观园,那时候还没有iPhone,也没有Android,微软一统天下。 本文主要介绍一下我对Windows UI自动化的一些看法以及WPATH的实现和应用,如果你还在从事Windows桌面应用的自动化测试,应该能有一些帮助。 为何发明WPATH Windows UI 自动化,顾名思义就是在Windows平台实现软件的界面自动化,比如自动打开Excel填入一些数据,输入公式,获取结果。正经的用途就是软件自动化测试,避免重复的手工操作;不正经的用途就是写外挂,各种投机取巧的工具等等。 最简单粗暴的实现方案就是录制回放,优点很明显,简单快速;缺点也一样明显,不可靠因素太多。主要的代表就是QTP,来自HP公司,这应该是很多同学都听过的一款测试工具。 进阶的方案就是使用微软提供的自动化工具集: UI Automation 。UI

.NETCore Docker实现容器化与私有镜像仓库管理

此生再无相见时 提交于 2020-11-29 04:50:05
一、Docker介绍 Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖。相较于虚拟机而言,Docker共享的是宿主机的硬件资源,使用容器来提供独立的运行环境来运行应用。虚拟机则是基于Supervisor(虚拟机管理程序)使用虚拟化技术来提供隔离的虚拟机,在虚拟机的操作系统上提供运行环境!虽然两者都提供了很好的资源隔离,但很明显Docker的虚拟化开销更低! Docker涉及了三个核心概念:Register、Image、Container。 1. Registry:仓库。用来存储Docker镜像,比如Docker官方的Docker Hub就是一个公开的仓库,在上面我们可以下载我们需要的镜像。 2. Image:镜像。开发人员创建一个应用程序或服务,并将它及其依赖关系打包到一个容器镜像中。镜像是应用程序的配置及其依赖关系的静态形式。 3. Container:容器。Container是镜像的运行实例,它是一个隔离的、资源受控的可移植的运行时环境,其中包含操作系统、需要运行的程序、运行程序的相关依赖、环境变量等。 它们三者的相互作用关系是: 当我们执行Docker pull或Docker run命令时,若本地无所需的镜像,那么将会从仓库(一般为DockerHub)下载

学会思考,而不只是编程

余生颓废 提交于 2020-11-28 14:32:28
中国人常说“授之以鱼不如授之以渔”。如果说教授编程是授之以鱼,那么教授计算机科学就是授之以渔。为什么说学习计算机科学比学会编程要重要得多?来听听Yevgeniy Brikman的解释。 现如今,似乎每个人都在学习编程:Bill Gates、Mark Zuckerberg和Chris Bosh这些名人在Code.org网站上告诉人们每个人都拥有编程的能力;CoderDojo项目在世界各地大张旗鼓;英国已经把编程作为小学官方课程。 不过,我认为这样有点误入歧途了。但请不要误会——我也确实认为代码能够让世界变得更美好——但编程本身并不是我们的目的。计算机和程序只是工具,它们是我们通向终点的桥梁。 我们真正的目标应该是教会人们如何思考。换句话说,我们应该教人们计算机科学,而不只是编程。在这篇文章里,我将会解释这两者之间的区别,以及为什么在这两者当中选择正确的一方对于迈向成功来说如此重要。 我们不妨先问自己一个问题:为什么我们要关心编程或计算机科学? 欢迎来到真实的世界 或许你正在使用Chrome或Firefox阅读这篇文章,这些浏览器可能运行在Windows或macOS上,而你可能正在使用笔记本或台式机。你今天可能花了一些时间阅读电子邮件、查看朋友圈的状态,或者在视频网站上看了一些视频。我们的生活在很大程度上依赖了计算机:我们的医疗记录保存在数据库里;我们的简历可能放在了LinkedIn上

(10)ASP.NET Core 中的环境(Environments:dev, stage, prod)

|▌冷眼眸甩不掉的悲伤 提交于 2020-11-28 09:51:09
1.环境变量配置 ASP.NET Core在应用程序启动时读取环境变量(Properties\launchSettings.json)ASPNETCORE_ENVIRONMENT,并将该值存储在IHostingEnvironment.EnvironmentName中。ASPNETCORE_ENVIRONMENT可设置为任意值,但框架只支持三个值:Development(开发)、Staging (分阶段)和 Production(生产)。如果未设置ASPNETCORE_ENVIRONMENT,则默认为 Production。 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } if (env.IsProduction() || env.IsStaging() || env.IsEnvironment( " Staging_2 " )) { app.UseExceptionHandler( " /Error " ); } } Properties/launchSettings.json里面的配置如下: ●当ASPNETCORE

深度剖析,为何C语言在开发领域的地位如此稳固

心不动则不痛 提交于 2020-11-27 20:52:55
C语言 在这过去的五十年间, 已经 逐渐发展 成为 极其 重要的软件开发语言。这里 简要讲述一下在现在, 它 将 如何与C++、Java、C#、Go、Rust和Python进行竞争 并保持一定优势 。 对于计算机编程语言来说,没有什么技术能 沿 用 半个世纪 年,除非它比其他的都好用。C语言于 上世纪七十年代初 年面世,如今在软件世界仍保持着底层 基础 开发的主流语言的地位。 有时 , 一个技术能被长久的流传使用,是因为人们还没有找到一个更好的替代品。在过去的几十年,涌现了大量的语言—— 甚至出现 专门为了挑战C语言的统治地位而设计 的新语言 。 C真的很难被替代。编程语言调查和软件开发实例都印证了可以用远比 使用 C 语言更好 的方式来做 开发 。但C的地位仍岿然不动, 因为 它的背后是几十年的 积淀和进步 。几乎没有语言可以在性能 、 逻辑、 或者普遍性上打败它。 C vs. C++ 很自然地, 人们会拿 C与C++做对比, 顾名思义 出,C++是从C发展而来的。两者之间的不同就在于易扩展性,或者易用性。 语法和方式上,C++与C语言比较接近,但C++提供了很多原生C没有的有用特性:命名空间、模板、异常、内存管理。项目如果对于性能比较敏感,例如数据库和机器学习,通常使用C++编写 会对提供 系统提高性能 更有帮助 。 除此之外,C++比C更容易扩展。C+