摘要: 《ASP.NET Core应用开发入门教程》与《ASP.NET Core 应用开发项目实战》于2020年1月正式出版。本书的特点,我觉得注重实践:“实践出真知”,不断地在具体应用中进行实践是学习ASP.NET Core相关的知识,实践是进行学习的最有效的手段。通过将所学的ASP.NET Core 知识应用到一个真正的应用之中,才能确保我们掌握的知识的正确性。实践不但可以巩固我们的所学,还会让我们意识到不足。《ASP.NET Core应用开发入门教程》和《ASP.NET Core 应用开发项目实战》在每一章节都会提供一系列的实例,供读者进行实践。 阅读全文
posted @ 2020-02-06 21:08 DotNet菜园 阅读(1937) 评论(9) 推荐(2) 编辑
摘要: abp(net core)+easyui+efcore实现仓储管理系统目录 阅读全文
posted @ 2019-07-30 14:18 DotNet菜园 阅读(10186) 评论(6) 推荐(17) 编辑
摘要: 经过前面八篇文章,五次的重构,对于这个充电宝计费项目的重构基本上已经完成。今天是这一系列的最后一篇文章,我们来讲讲如何对条件表达式进行重构,对于条件表达式的重构比较多的一种重构方式就是利用类的多态性进行重构。接下来我们就要使用该规则对PowerBank类中的GetAmount()与GetFrequentRenterPoints()函数进行重构。 阅读全文
posted @ 2021-08-31 17:30 DotNet菜园 阅读(341) 评论(0) 推荐(1) 编辑
摘要: 通过“代码重构与单元测试——“提取方法”重构(三) ”至“代码重构与单元测试——使用“以查询取代临时变量”再次对Statement()方法进行重构(七) ”这几篇文章的几次重构之后,再次对充电宝计费项目的代码进行全局性的观察与分析,我们发现在Rental类中的GetAmount()与GetFrequentRenterPoints()方法中的代码对PowerBank类有较大的依赖。因为这两个方法都只用到了Rental类中的RentedTime属性,而多次用到了PowerBank中的属性或字段。通过上面的分析,我们认为将这两个方法中的代码移到PowerBank类中显得更为合理。接下来,我们继续进行这两个方法的重构——将该部分代码移动到PowerBank类中。 阅读全文
posted @ 2021-08-19 14:04 DotNet菜园 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 如果我们要将结果以HTML的形式进行组织的话,我们需要将Statement方法里面的代码进行复制,然后修改result变量的文本组织方式即可。这可能就是我们经常做的事情CTRL+C、CTRL+V。我想很多程序是这样来修改代码的,快速方便,使用这种方式修改代码,方法中的好多临时变量也都要被复制一份,这是完全相同的,这样就容易产生重复的代码。在这种情况下,我们需要使用“Replace Temp with Query”(已查询取代临时变量)的重构手法来取出上图所示的红框中的临时变量。 阅读全文
posted @ 2021-08-14 16:03 DotNet菜园 阅读(127) 评论(0) 推荐(2) 编辑
摘要: 经过之前的重构(见文章 代码重构与单元测试——“提取方法”重构(三) 与代码重构与单元测试——对方法的参数进行重构(五) ),我们从Statement()方法中提取了两个方法。观察这两个重构后的方法我们不难看出,这两个封装出来的新方法都只需要一个参数,这个参数就是Rental类的对象。也就是这两个方法都依赖于Rental类,而对该方法所在的当前类不太依赖。之所以会这种情况,是因为这两个方法放错了地方,因为这两个方法放在Customer类中但不依赖与Customer类而依赖于Rental类,那就足以说明这两个方法应该放在Rental类中。 阅读全文
posted @ 2021-08-06 15:33 DotNet菜园 阅读(242) 评论(0) 推荐(1) 编辑
摘要: 重构最重要的思想就是普通程序也能写出优秀的程序。重构一个项目的巨大工作量就是修改变量名、提取方法、抽取接口、修改方法参数等简单的工作。作为一个普通的程序就可以通过这些简单且容易完成的工作目标来提升自己的编码能力,加深自己对项目的认知,从而为最高层次的重构打下基础。在这个过程中发现Bug、修改Bug,这不是重构。优化不是重构。强化异常捕捉、增加预防性代码不是重构。让代码更容易测试不是重构——尽管重构能达到相同的效果。这些所有的事都是有益的。但这些都不是重构。 阅读全文
posted @ 2021-07-28 12:46 DotNet菜园 阅读(404) 评论(0) 推荐(2) 编辑
摘要: 程序开发过程中,写代码是为了实现需求。当我们的代码通过了编译,只是说明它的语法正确,功能能否实现则不能保证。 因此,当我们的某些功能代码完成后,为了检验其是否满足程序的需求。可以通过编写测试代码,模拟程序运行的过程,检验功能代码是否符合预期。单元测试就是开发者编写一小段代码,检验目标代码的功能是否符合预期。通常情况下,单元测试主要面向一些功能单一的模块进行。 阅读全文
posted @ 2021-07-22 12:27 DotNet菜园 阅读(310) 评论(0) 推荐(2) 编辑
摘要: 我们观察 代码重构与单元测试(一)文章中的共享充电宝计费代码中,发现Customer类的Statement ()方法首先需要进行重构。Statement ()方法最大的问题就是这个方法里边做的事情太多,我们第一步就是对其进行拆分。也就是使用重构中的“Extract Method”(提取方法)原则对该方法进行简化和拆分。将Statement ()中可以独立出来的代码进行提取。经过仔细分析后的,我们发现如下图中所框选的代码是一个完整的功能模块,其中框1中的代码是进行单价计算的功能,红框2中的代码是进行积分计算的功能,我们可以将这两块代码分别进行提取并封装成一个新的方法。在封装成新方法时,要给这个新的方法取一个恰当的方法名,见名知意。 阅读全文
posted @ 2021-07-15 14:39 DotNet菜园 阅读(445) 评论(3) 推荐(0) 编辑
摘要: 我们已经创建了充电宝计费项目,做为我们这次重构的遗留系统,为了验证我们每次重构的正确性,我们需要一个测试项目,对我们重构的代码进行测试。接下来我们来创建这个测试项目。遗留系统,程序员们为了快速完成需求和上线而写出了最基本的代码,而在功能的不断扩充过程中,以打补丁的方式对代码进行扩充,中间还会面临着开发人员的变更和离职,代码就会越来越臃肿,渐渐的变得难以维护。做遗留系统维护工作的程序员,清理代码是他们的日常工作之一。首要的任务是为此系统编写单元测试,搭建重构的测试保护网,并能够形成可读与可工作的测试用例文档。在发现遗留系统中代码的坏味道时,及时地对代码进行重构,并保证重构的小步前进,稳妥的对代码进行结构上的调整,每次调整完后都要进行测试,确保功能和以前一样,只是代码上看着不同。重构模式和现代化的 IDE里的重构工具使重构变得容易、安全和代价低廉。 阅读全文
posted @ 2021-07-06 15:48 DotNet菜园 阅读(479) 评论(1) 推荐(1) 编辑
摘要: 遗留系统,程序员们为了快速完成需求和上线而写出了最基本的代码,而在功能的不断扩充过程中,以打补丁的方式对代码进行扩充,中间还会面临着开发人员的变更和离职。逐渐的,代码就会越来越臃肿,渐渐的变得难以维护。程序员,特别是做遗留系统维护工作的程序员,清理代码是他们的日常工作之一。这是基本工作,是必须要做的。首要的任务是为此系统编写单元测试,搭建重构的测试保护网,并能够形成可读与可工作的测试用例文档。在发现遗留系统中代码的坏味道时,及时地对代码进行重构,并保证重构的小步前进,小规模的、独立的、稳妥的对代码进行结构上的调整,每次调整完后都要进行测试,确保你没有改变代码的行为特征——功能和以前一样,只是代码上看着不同。重构模式和现代化的 IDE里的重构工具使重构变得容易、安全和代价低廉。 阅读全文
posted @ 2021-07-02 16:02 DotNet菜园 阅读(593) 评论(0) 推荐(1) 编辑
摘要: 在上篇文章( 在Visual Studio 中使用git——同步到远程服务器-上(十一) )中我们已经在码云上创建了项目并在Visual Studio 2019中设置了码云上的项目地址。在这一篇文章中我们使用Visual Studio 2019(16.9)将项目推送到码云(gitee)上我们创建的项目上去。 阅读全文
posted @ 2021-06-29 14:28 DotNet菜园 阅读(330) 评论(2) 推荐(1) 编辑
摘要: 我们使用Visual Studio 2019(16.9)将项目推送到码云(gitee)上我们创建的项目上去。关于Visual Studio 2015/2017如何与远程服务器同步,请参考网上的相关文章。我所知道的是要安装一个码云插件(Gitee Extension for Visual Studio)。在这篇文章中我们将学习如何在码云(gitee)上创建项目,如何在Visual Studio 2019(16.9)中设置项目的远程仓库地址。 阅读全文
posted @ 2021-06-22 16:19 DotNet菜园 阅读(476) 评论(0) 推荐(1) 编辑
摘要: 我们通过实际的项目来演示如何在Visual Studio 中通过git的可视化版本对Git的进行管理。在本篇文章中,你将会学习如何创建和删除新的标签。主要以Visual Studio 2017为主。 阅读全文
posted @ 2021-06-13 14:45 DotNet菜园 阅读(393) 评论(0) 推荐(1) 编辑
摘要: 我们通过实际的项目来演示如何在Visual Studio 中通过git的可视化版本对Git的进行管理。在git中,分支非常简单易用,建议经常创建分支。另外在bug修复等方面,git的分支功能也非常方便易用。主要介绍了分支的删除与分支的变基功能。主要以Visual Studio 2017为主。 阅读全文
posted @ 2021-06-08 18:08 DotNet菜园 阅读(438) 评论(0) 推荐(3) 编辑
摘要: 我们通过实际的项目来演示如何在Visual Studio 中通过git的可视化版本对Git的进行管理。在git中,分支非常简单易用,建议经常创建分支。比如,你有一个实验性的想法,可以创建一个分支去测试,完全不影响正式的代码。另外在bug修复等方面,git的分支功能也非常方便易用。可以说,分支功能是git最棒的功能之一。主要以Visual Studio 2017为主。 阅读全文
posted @ 2021-06-01 10:37 DotNet菜园 阅读(1098) 评论(0) 推荐(3) 编辑
摘要: 我们通过实际的项目来演示如何在Visual Studio 中通过git的可视化版本对我们提交的文件的历史记录进行管理与查看。主要以Visual Studio 2017为主。 阅读全文
posted @ 2021-05-25 15:37 DotNet菜园 阅读(533) 评论(0) 推荐(3) 编辑
摘要: 我们通过实际的项目来演示如何在Visual Studio 中通过git的可视过版本对文件进行管理,本文主要涉及撤消已提交修改、撤消已提交单个文件修改。主要以Visual Studio 2017为主。 阅读全文
posted @ 2021-05-20 11:55 DotNet菜园 阅读(492) 评论(0) 推荐(2) 编辑
摘要: 我们通过实际的项目来演示如何在Visual Studio 中通过git的可视过版本对文件进行管理,本文主要涉及移动文件 、撤消未提交修改。主要以Visual Studio 2017为主。 阅读全文
posted @ 2021-05-19 10:05 DotNet菜园 阅读(618) 评论(0) 推荐(1) 编辑
摘要: 我们通过实际的项目来演示如何在Visual Studio 中通过git的可视过版本对文件进行管理,本文主要涉及设置忽略文件、删除文件、如何查看被删除文件、如何恢复被删除文件。主要以Visual Studio 2017为主。 阅读全文
posted @ 2021-05-11 16:59 DotNet菜园 阅读(842) 评论(2) 推荐(3) 编辑
摘要: 我们通过创建一个全新的项目,来演示如何在Visual Studio 中可视化操作git版本库,暂时不涉及命令行管理。主要以Visual Studio 2017为主。 阅读全文
posted @ 2021-05-05 17:33 DotNet菜园 阅读(903) 评论(0) 推荐(3) 编辑
摘要: 如果要使用 git 进行版本管理,其实使用 git 命令行工具就完全足够了,图形化工具(无论是 git extentions ,还是TortoiseGit),都只不过是命令行的封装。就功能而言,他们能做的,命令行全部可以做到;但命令行能做的,他们不 一定可以做到。命令行更加原生、本色,跨越平台,以一当十。建议熟悉 git 命令行工具。但图形化工具也有自己的优点,就是直观。 阅读全文
posted @ 2021-04-20 12:40 DotNet菜园 阅读(1894) 评论(0) 推荐(2) 编辑