与Tim Corey一起构建Postman Clone
在本节课中,我们深入了解了如何通过仔细建立应用程序的基础来构建一个Postman克隆。 Tim Corey 在课程的第二节中解释了这个过程,其中重点完全是项目设置而不是功能或API逻辑。 在这个阶段的目标是确保应用程序的结构从一开始就设计正确,而不是创建请求、处理响应或使用REST API。
Tim介绍了这节课,作为一个完整课程的一部分,展示了如何从头开始构建您自己的Postman式工具。 他解释说,这个项目旨在帮助用户理解一个应用程序的生命周期,从设置到增强,最终成为一个可能类似于真正的Postman替代品的东西。这一课对初学者友好,故意慢节奏,以便用户可以跟随并理解每个决策的原因。
通过观看此视频 - "Setting up Our Project: Build a Postman Clone Course",Tim帮助观众理解如何正确设置一个Windows Forms应用程序,将其连接到支持类库,并为未来的API开发准备好解决方案。
课程概述和目的
Tim首先解释说,这一课是关于建立一个Postman克隆所需的初始结构。 他明确地指出,重点不是现在就进行API请求或处理JSON响应,而是创建项目、正确配置它们,并准备好一切工作。
他解释说,本课程旨在帮助用户理解像Postman这样的真实工具如何被构建为一个简单的Windows应用程序。 虽然最终的应用程序不会取代Postman,但它会演示核心概念,如REST请求、响应和UI设计。 Tim还解释说,虽然该项目可以激发作品集的灵感,但用户不应直接复制。 相反,他们应该增强和修改它,以创造出属于自己的独特作品。
为Postman Clone创建类库
在此时,Tim打开了Visual Studio 2022并开始了设置过程。 他解释说,他使用的是录制时可用的最新版,并首先创建了一个新项目。 在这一课中,他选择首先创建类库。
Tim解释说,这个类库最终将保存UI将引用的共享代码。 这种方法有助于分离关注点并保持应用程序的组织。 他还解释说,虽然项目创建的顺序通常并不重要,但是从图书馆开始可以让他演示开发人员在设置过程中可能遇到的一个常见问题。
他搜索了一个C#类库,强调它必须是一个现代.NET项目,而不是旧的.NET Framework。 Tim选择了一个.NET 8类库,指出较新的版本如.NET 9或更高版本也可以工作。 他解释说,版本之间的差异是开发中的正常组成部分,学习如何适应是一个重要的技能。
正确命名解决方案和项目
Tim花时间解释他是如何命名解决方案和项目的。 他将该解决方案命名为Postman克隆应用程序,将该库命名为Postman克隆库。 他解释说,包含"Library"这个词可以非常清楚地说明哪个项目包含共享逻辑,哪个项目包含UI。
这种命名方法在以后处理参考时很有帮助。 Tim解释说,引用应该始终从UI流向库,而不是反过来。 这种设计选择支持更清晰的代码和更好的长期开发过程。
他还解释了他不将解决方案和项目放在同一目录的原因。 因为这个应用程序将包含多个项目,分开它们可以使导航更轻松,并避免随着解决方案的增长而产生混乱。
添加Windows Forms UI项目
库创建好后,Tim向解决方案中添加了第二个项目。 这次,他选择了一个Windows Forms应用程序。 他解释说,这个项目将作为Postman克隆的UI,最终允许用户输入URL、查询参数并查看响应。
他将项目命名为Postman clone UI,并再次确认它正在使用.NET 8。Tim简要提到了由于显示缩放而引起的与DPI相关的消息。 他解释说,这对于本课来说并不重要,DPI处理可以在需要时稍后进行探索。
在这一阶段,解决方案中现在包含两个项目:一个库和一个Windows Forms UI。 这个结构为在Windows上构建类似Postman工具打下了基础。
修复启动项目问题
Tim展示了因为类库首先创建而发生的一个问题。当他尝试运行解决方案时,Visual Studio显示错误,称类库不能直接启动。
Tim解释说这是一个常见的设置问题,并强调仔细阅读错误消息的重要性。 他解释说,错误消息通常会准确地告诉您是什么问题以及如何修复它。
他展示了两种解决方法:使用上下文菜单将UI项目设置为启动项目,或从运行按钮附近的启动项目下拉菜单中选择它。 一旦完成,Windows Forms界面便正确启动。
将项目添加到Git和GitHub
在解决方案结构到位后,Tim进入了源代码控制。 他打开了Git更改窗口,解释尚未启用版本控制。 他直接从Visual Studio创建了一个Git存储库。
Tim解释了.gitignore文件的用途,指出编译文件等生成输出不应被包括在源代码控制中。 因为这些文件可以被重新创建,故不属于GitHub代码库。

他还讨论了许可,并解释选择不使用许可意味着保留对代码的所有权利。 Tim添加了一个README文件,并解释了它在解释项目中的重要性,尤其是如果它将被共享或用作作品集的一部分。
Tim为GitHub仓库命名,添加了明确的描述,解释说这是Postman的Windows Forms重新创造,并选择保持仓库私有以便用户专注于学习而不是复制代码。
理解源代码控制指标
将代码推送到GitHub后,Tim解释了在解决方案资源管理器中显示的锁图标。 这些图标表明文件受源代码控制跟踪并且未被修改。
他解释了当文件被添加或更新时这些指标如何改变,帮助开发人员了解哪些更改将被提交。 随着项目的增长和功能的增加,这种视觉反馈变得非常有用。
保留Class1并添加一个引用
Tim解释为啥默认的Class1文件暂时被保留在库中。 如果没有至少一个类,库将不具备命名空间,使得无法从UI中引用。
然后他将库添加为UI项目的依赖项。 Tim演示了将库拖到UI依赖项上和使用添加项目引用选项。 这个步骤允许UI访问共享代码,这是构建结构化Postman克隆的关键。
将Form1重命名为Dashboard
Tim将默认的Form1重命名为Dashboard,解释这个表单代表着应用程序的主界面。 当这个表格关闭时,应用程序也关闭。

他确保所有引用都得到正确更新,包括附带代码文件和Program.cs。 Tim还将Program.cs中的命名空间更改为文件作用域命名空间,解释这为未来的更改提供了更多空间和更清晰的格式。
调整UI属性和字体设置
Tim在Dashboard表单中打开了属性窗口。 他解释了开发人员如何可以在Visual Studio中重新定位窗口以匹配他们的工作流程。
他将表单标题更改为明确标识为Postman克隆应用程序,并将默认字体大小从9增加到18。Tim解释说,尽早设置字体大小可以确保为以后的UI添加的所有控制项保持一致的大小。
提交初始设置
当所有设置更改完成后,Tim提交修改过的文件并创建了一个提交。 他解释说,提交信息不必完美,但要清楚地描述设置更改。
他提交并将代码与GitHub同步,确保代码库已完全更新并为持续开发做好准备。
为建立Postman克隆的下一步做好准备
在结束视频视频时,Tim解释说项目设置已经完成。 在下节课中,将重点转移到构建UI上,并创建一种简单的方式来向API发送GET请求并显示响应。
他鼓励观众在观看下一步视频之前尝试自己进行下一步。 目标是创建一个简单的界面,可以发送请求、接收数据和显示格式化的JSON响应。 这种方法帮助用户更好地理解流程,并为他们准备好逐步增强应用程序。
Tim 结束时提醒观众这个项目旨在增长。 从简单的设置开始,允许开发人员建立信心,了解工作流程,并逐步将项目转变为有意义的 Postman 样式工具。

