摘要:
前言 上一篇,我只实现了一键检测代码变化,本篇才是真正的实现了一键打包发布 效果图 客户端打包待发布文件 /// <summary> /// 把多个文件添加到压缩包 (保留文件夹层级关系) /// </summary> public static async Task<ZipFileResult> 阅读全文
摘要:
前言 很抱歉没有实现上一篇的目标:一键发布,因为工作量超出了预期,本次只实现了 Git 代码变化检测 已完成的功能 解决方案的项目发现与配置 首次发布需要手动处理 自动检测代码变化并解析出待发布的文件 简要说明 只需要填写解决方案的 Git 仓储路径即可自动发现项目 (通过查找 .csproj 文件 阅读全文
摘要:
前言 上一篇,我们实现了基于 DotNetty 的通信基础模块的搭建,本篇,主要实现待发布 Web 项目的集成。 创建待发布项目 为了测试, 我创建了一个基于 .NET 4.8 的 Web 项目 OpenDeploy.TestWebProject 我本机的代码仓储路径是: D:\Projects\B 阅读全文
摘要:
基于 DotNetty 实现通信 DotNetty : 是微软的 Azure 团队,使用 C#实现的 Netty 的版本发布。是.NET 平台的优秀网络库。 项目介绍 OpenDeploy.Communication 类库项目,是通信相关基础设施层 Codec 模块实现编码解码 Convention 阅读全文
摘要:
故事背景 小公司,单体项目,接口和页面都在一起,生产和测试环境都是 Windows 服务器和 IIS, 本地编译完成,把相关的页面和程序集拷贝到服务器上,尤其是涉及到多个页面,一个个页面找到对应的位置,再到服务器上找到对应的位置拷贝进去,甚至还有备份等操作,不胜其烦,因为历史遗留原因,项目是基于.n 阅读全文
摘要:
示例 我们先来看一段结构体的代码 (基于 VS2022 + .NET 8.0) public struct MyStruct(int number) { public int Number = number; public void SetNumber(int number) => Number = 阅读全文
摘要:
前言 看过不少关于 await 的原理的文章,也知道背后是编译器给转成了状态机实现的,但是具体是怎么完成的,回调又是如何衔接的,一直都没有搞清楚,这次下定决心把源码自己跑了下,终于豁然开朗了 本文的演示代码基于 VS2022 + .NET 6 示例 public class Program { st 阅读全文
摘要:
本文的项目环境为 .net 6.0 (.net 5.0 以上都支持) 在 .net 中获取字符串的 MD5 相信是非常容易的事情吧, 但是随便在网上搜一搜发现流传的版本还不少呢,比如: StringBuilder 版本(应该算是官方版本了,使用的人最多,我发现在 ABP 中也是使用的这个) BitC 阅读全文
摘要:
系列文章汇总 前言: 最近看到ABP官网的一本电子书,感觉写的很好,翻译出来,一起学习下 Implementing Domain Driven Design 实现领域驱动设计 - 使用ABP框架 - 什么是领域驱动设计? 实现领域驱动设计 - 使用ABP框架 - 解决方案概览 实现领域驱动设计 - 阅读全文
摘要:
最近看了大量的预言, 不论是国内的还是国外的, 基本都指明中国会出一个紫薇圣人 比如刘伯温的烧饼歌: 未来教主临下凡,不落宰府共官员, 不在皇宫为太子,不在僧门与道院, 降在寒门草堂内,燕南赵北把金散。 又比如推背图的第47象: 偃武修文 紫薇星明 匹夫有责 一言为君 无王无帝定乾坤 来自田间第一人 阅读全文
摘要:
介绍 一个源代码生成器,用于向 C#项目添加一组用户定义的 Win32 P/Invoke 方法和相关的类型。 链接地址: https://github.com/microsoft/CsWin32 还在手动添加平台调用的代码或者增加无用的程序集?微软的官方解决方案来了! 特色 快速将 P/Invoke 阅读全文