
使用 C#和.NET 构建 CLI 应用程序
文章平均质量分 95
akluse
失业老程序员求打赏买包子
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用 C#和.NET 构建 CLI 应用程序:13 命令行应用程序的安全考量
在此强调这一点(或提醒)很重要,因为我仍会遇到一些客户,他们在应用程序生命周期的后期(通常在应用程序开发完成并发布到生产环境后)才引入安全性,期望安全专业人员创造奇迹,在对应用程序进行最小修改或不做修改的情况下确保其安全,这显然是不现实的。本章中,我们探讨了安全性的多种表现形式,了解到它不仅限于应用程序代码的安全,而是涵盖了整个生命周期的广泛领域。有趣的是,在许多项目中,开发团队往往认为只要实施了防止应用程序代码遭受 SQL 注入、XSS 攻击或类似威胁的措施,他们的应用程序就是安全的。原创 2025-07-08 08:35:05 · 675 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:12 性能优化与调优
虽然我们在这里对一个命令进行基准测试,但重要的是要注意,基准测试不仅适用于命令,还适用于所有可能影响应用程序性能的代码组件,包括服务。了解帮助我们检测应用程序性能的工具固然重要,但同样关键的是要明白在何处使用这些工具,换句话说,如何识别那些可能适合进行性能优化的代码区域。在本章中,我们并未实现所有性能优化的机会,可能还遗漏了一些(这是故意的吗?在本章中,我们探讨了性能优化的多个方面,学习了识别性能热点和关键路径的技术,并了解了如何提升它们的性能,最终目标是为用户提供一个高效出色、让他们爱不释手的应用程序。原创 2025-07-08 08:28:23 · 549 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:11 打包与部署
因此,如果我们想分发新版本,可以用不同的版本号来标记新镜像。在本章中,我们学习了如何将 Bookmarkr 打包并部署到不同平台,以便分发给全球用户,无论他们选择的是 Windows、Linux 还是 macOS 平台。将我们的应用程序打包并分发为 Docker 容器,可以让用户通过减少应用程序在其环境(即操作系统和数据 )上的占用空间来安装和使用我们的应用。通过将我们的应用程序打包并分发为 WinGet 包,用户可以使用微软的包管理器 WinGet 来安装它,就像安装其他应用程序一样。原创 2025-07-08 08:21:09 · 748 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:10 测试命令行界面应用程序
现在,运行您的测试,您会注意到测试失败了。首先,如果您的应用程序由多个组件构成,且每个组件都有各自的 Visual Studio 项目,那么您需要为每个组件创建独立的单元测试项目,同时保留一个统一的集成测试项目。仅检查列表中元素的数量是不够的,因为如果代码中存在重复插入元素或插入不适当元素的错误,计数可能符合预期值,但列表可能不包含适当的元素。如前所述,我们可以自行编写模拟真实依赖项行为的伪实现,但这种方法的主要缺点在于:当真实依赖项的行为发生变化时 ,我们必须维护(甚至可能需要重写)这些实现。原创 2025-07-08 08:09:17 · 679 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:9 使用外部 API 和服务
你在想开发自己的日志引擎似乎没那么复杂,也许你是对的。我们探讨了与外部依赖通信的最佳实践,包括处理响应数据、状态码和错误,并以不会在外部依赖与应用程序之间产生强耦合的方式设计这种集成,从而在未来需要时能够轻松替换该依赖。服务代理模式将 HTTP 通信细节抽象到一个专用服务中,使得其他服务(在我们的例子中是命令)能够与外部系统交互,而无需直接处理 HTTP 请求和响应。虽然一个自主运行的应用程序能为用户提供巨大价值,但通过整合外部 API 和服务,将应用功能与其他应用程序相结合,能为用户创造更大的价值!原创 2025-07-08 07:59:02 · 1456 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:8 构建模块化且可扩展的 CLI 应用程序
每位团队成员都可以专注于自己的指令,仅影响一小部分代码工件,并且在大多数情况下,他们不会修改相同的文件,从而减少了将代码推入源代码控制时可能发生的合并冲突数量。接下来,我们将对根命令的每个子命令重复此操作(即显示帮助菜单),然后对每个子命令的子命令继续执行此操作,然后对... 好了,你应该明白这个思路了!依赖注入在简单应用中可能会带来一些额外开销,因为它需要额外的设置和配置,比如添加额外的接口、类和间接层,这对于依赖关系较少的简单项目可能是不必要的。为此,让我们添加一个专门用于选项的区域,并将。原创 2025-07-08 07:52:02 · 525 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:7 交互式命令行应用
我们了解到,这些新增功能与文本着色相结合,有助于使我们的命令行界面(CLI)应用程序更具吸引力且使用起来更有趣,并证明了 CLI 应用程序在图形用户界面(GUI)应用程序面前毫不逊色。想必您已经注意到——我相信您确实注意到了😉——我们已经创建了一些辅助方法,用于在不同场景下以不同颜色显示文本:绿色表示成功消息,黄色表示警告,红色表示错误。不过,正如我之前提到的,我相信您很聪明,所以您不会想重复造轮子,而是会选择使用适合的现有库😊.。现在,我们的导出操作更加用户友好(说实话,用起来也更有趣😊)。原创 2025-07-07 21:51:32 · 797 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:6 错误处理与日志记录
日志记录和错误处理是构建任何应用程序时都需要考虑(并实现)的两个重要概念,命令行界面(CLI)应用程序也不例外。错误处理能确保应用程序在遇到意外事件时保持优雅行为,而日志记录则提供了对应用程序运行时行为的关键洞察,有助于故障排查和调试工作。正因如此,本章将首先从错误处理开始,涵盖这两个概念。具体而言, 本章将讨论以下主要主题:本章代码可在此书配套的 GitHub 仓库中找到:https://github.com/PacktPublishing/Building-CLI-Applications-with-C原创 2025-07-07 21:46:37 · 953 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:5 输入/输出与文件处理
在本章中,我们改进了 CLI 应用程序 Bookmarkr,通过以下方式增强了对命令选项输入值的控制:明确标识必填选项、在适当位置设置默认值、设计验证器确保输入值符合预期的类型、格式或取值范围,并启用自动补全功能以简化用户操作。好的,让我们回顾一下。在实际应用中,你会发现刚开始使用 CLI 应用程序的用户会依赖长格式选项,随着对 CLI 应用的熟悉程度提高,他们会逐渐转向使用短格式。这种情况下,命令行应用程序的最佳实践是为用户提供选项,让他们选择是合并这些现有链接,还是直接丢弃并不导入它们。原创 2025-07-07 21:42:00 · 943 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:4 命令行解析
我们从控制台应用程序开始(因为要记住,“每个 CLI 应用程序的核心都是一个控制台应用程序”),然后引入了一个库来解析其命令行参数,包括命令、子命令和选项,这样我们就不需要重复造轮子了。在上一章中,我们创建了一个控制台应用程序,并学习了如何向它传递参数,在需要时将这些参数转换为预期的数据类型(请注意,传递给控制台应用程序的参数是。现在,如果我们运行应用程序,就会得到预期的结果。执行时,应用程序将调用相应的命令(此处由于未向执行中的应用程序传递参数,故调用根命令),该命令随后会调用其处理方法(原创 2025-07-07 10:21:30 · 567 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:3 .NET 中控制台应用程序的基本概念
不过,由于我们使用的是 Visual Studio Code,运行命令最简单的方式是使用 VS Code 内置的集成终端。因此,通过探索控制台应用的创建、运行及交互方式,我们将初步掌握 CLI 应用的操作方法,并学会如何利用.NET SDK 提供的控制台应用模板进行开发。用于修改终端窗口的标题。我们了解了如何执行控制台应用程序,通过输入参数提供值,并解析这些输入参数的值以将其转换为程序预期的数据类型。因此,如果你的 CLI 应用程序需要与外部资源或服务交互(正如我们将在后续章节中实现的那样),你应该利用。原创 2025-07-07 10:11:19 · 917 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:2 搭建开发环境
Visual Studio Code 是微软推出的开源、免费、跨平台且功能强大的代码编辑器,支持包括.NET 在内的多种技术栈开发。其真正的强大之处在于丰富的扩展生态——无论是微软官方、第三方开发者还是社区贡献的扩展,都能显著增强其功能,使之成为独一无二的代码编辑器。只需记住,安装的扩展越多,Visual Studio Code 消耗的计算机资源就越多。最后,点击扩展名称下方的。从我们的角度来看,由于我们将处理托管在 GitHub 上的代码仓库,因此需要使用 Git(因此需要在我们的开发工作站上安装它)。原创 2025-07-07 09:59:09 · 961 阅读 · 0 评论 -
使用 C#和.NET 构建 CLI 应用程序:1 命令行应用程序简介
这意味着即使安装的是图形应用程序(如 Microsoft Office 套件、网页浏览器和 Adobe 套件),我们也是依赖它们自带的命令行工具来完成安装。这些脚本存储在文件共享中,用户根据其角色拥有相应访问权限(例如,如果你是分析师,就无法访问开发者配置文件, 以此类推 )。),甚至可能每天都在使用。通过使用 CLI 应用程序,所有键入执行的命令都发生在同一个终端内,因此我们能更好地保持专注,从而事半功倍。没错,这些图形应用程序都提供了相应的命令行工具,允许我们安装(有时还能配置) 这些应用程序。原创 2025-07-07 09:54:59 · 1094 阅读 · 0 评论