返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 全新正版像C#高手一样编程9787512436886北京航空航天大学出版社
    • 作者: Jort Rodenburg著 | Jort Rodenburg编 | Jort Rodenburg译 | Jort Rodenburg绘
    • 出版社: 北京航空航天大学出版社
    • 出版时间:2022-06-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    如梦图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品参数
    • 作者: Jort Rodenburg著| Jort Rodenburg编| Jort Rodenburg译| Jort Rodenburg绘
    • 出版社:北京航空航天大学出版社
    • 出版时间:2022-06-01
    • 页数:384
    • 开本:16开
    • ISBN:9787512436886
    • 版权提供:北京航空航天大学出版社
    • 作者:Jort Rodenburg
    • 著:Jort Rodenburg
    • 装帧:平装-胶订
    • 印次:暂无
    • 定价:129.00
    • ISBN:9787512436886
    • 出版社:北京航空航天大学出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2022-06-01
    • 页数:384
    • 外部编号:31500349
    • 版次:暂无
    • 成品尺寸:暂无


    部分使用C#和 .NET章C#和.NET相关概念及使用说明3

    1.1 C#的优势4

    1.1.1 C#的经济5

    1.1.2 C#的可维护5

    1.1.3C#的易于操作6

    1.2为什么有时不使用C#7

    1.2.1操作系统开发7

    1.2.2嵌入式开发7

    1..数值计算8

    1.3C#使用入门8

    1.4本书涉及C#的主要内容10

    1.5本书不涉及的C#的内容11

    1.6总结12

    第2章.NET及其编译13

    2.1.NET框架14

    2.2.NET514

    .兼容CLI的语言的编译15

    ..1C#代码(高级语言)的编译17

    ..2通用中间语言(汇编层)的编译19

    ..本地代码(处理器层)的处理26

    2.4练习27

    2.5总结28

    第2部分现有代码库第3章这个代码有多糟糕33

    3.1飞翔荷兰人航空公司简介34

    3.2应用代码库的基本要求35

    3.2.1映对象关系35

    3.2.2GET/iht 终端地址——检索所有航班的信息36

    3..GET/iht/ 终端地址——获取特定航班信息37

    3.2.4POST/booking/终端地址——预定航班38

    3.3保存部分现有代码40

    3.3.1评估现有数据库架构及数据表40

    3.3.2现有代码库的网络服务配置文件41

    3.3.3查看现有代码库中的模型和视图47

    3.4总结54

    第4章非托管资源管理55

    4.1FlightController——GET/iht56

    4.1.1GET/iht终端地址以及它的功能56

    4.1.2方法签名——响应类型的含义和typeof58

    4.1.3使用集合收集航班信息60

    4.1.4使用连接字符串的弊端61

    4.1.5使用isposable释放托管资源61

    4.1.6使用SqlCommand查询数据库63

    4.2FlightController: GET/iht/ihtNumber66

    4.3FlightController: POST/iht69

    4.4The FlightController: DELETE/iht/ihtNumber74

    4.5练习75

    4.6总结76

    5.1创建.NET5解决方案和项目80

    5.2设置和配置网络服务84

    5.2.1配置一个.NET5网络服务84

    5.2.2创建和使用HostBuilder86

    5..创建Sru文件89

    5.2.4使用存储/服务模式作为网络服务架构92

    5.3构建数据库访问层93

    5.3.1Entity Framework Core和逆向94

    5.3.2DbSet和Entity Framework Core工作流程96

    5.3.3配置方法和环境变量97

    5.3.4Windows中环境变量设置98

    5.3.5macOS中环境变量设置99

    5.3.6通过代码检索运行环境变量99

    5.4练习102

    5.5总结103

    第4部分存储层第6章测试驱动开发和依赖注入107

    6.1测试驱动开发108

    6.2CreateCustomer方法112

    6.2.1验输入参数113

    6.2.2使用arrange、act和assert流程编写单元测试114

    6..无效字符的验115

    6.2.4具有\[DataRow\]属的内联测试117

    6.2.5对象初始化器和自动生成代码118

    6.2.6构器、和异步编程120

    6.2.7lock锁、mutex互斥锁和semaphore信号量122

    6.2.8同步执行转换到异步执行1

    6.2.9Entity Framework Core测试124

    6.2.10依赖注入控制依赖关系的使用126

    6.3练习132

    6.4总结133

    第7章对象比较134

    7.1GetCustomerByName方法135

    7.1.1可空类型及其应用137

    7.1.2LIN和扩展方法137

    7.2C#的由来142

    7.2.1应用EqualityComparer创建“比较器”类144

    7.2.2覆盖Equals测试等价146

    7..重载等价运算符147

    7.3练习150

    7.4总结151

    第8章stub泛型和耦合153

    8.1Booking存储库的实现154

    8.2关注点分离与耦合156

    8.3对象初始化器的使用160

    8.4stub单元测试的使用163

    8.5泛型编程的使用167

    8.6使用可选参数提供默认参数169

    8.7条件语句、Func和switch表达式171

    8.7.1三元条件运算符171

    8.7.2使用函数数组进行分支172

    8.7.3switch语句和表达式173

    8.7.4Entity Framework Core中的待处理更改查询174

    8.8练习177

    8.9总结179

    第9章扩展方法、流和抽象类181

    9.1Airport存储库的实现182

    9.2Airport对象的获取——通过机场数据库183

    9.3Airport输入参数的验185

    9.4输出流186

    9.5Airport对象的获取——通过数据库查询191

    9.6Flight存储库的实现199

    9.6.1IsPositive扩展方法和“魔法数字”201

    9.6.2数据库中航班的获取206

    9.7练习209

    9.8总结210

    第5部分服务层0章反和模拟213

    10.1回顾存储/服务模式214

    10.1.1服务类的用途是什么?215

    10.2实现CustomerService216

    10.2.1为成功做准备——创建类骨架216

    10.2.2删除自己代码的方法217

    10.3BookingService的实现219

    10.3.1跨架构层的单元测试2

    10.3.2stub和mock的区别224

    10.3.3Moq库模拟类的使用225

    10.3.4存储库调用1

    10.4练习

    10.5总结

    1章运行类型检查回顾和错误处理

    11.1验服务层方法的输入参数

    11.1.1is和as运算符的运行类型检查241

    11.1.2is运算符的类型检查242

    11.1.3as运算符的类型检查243

    11.1.4验服务层方法总结244

    11.2BookingServiceTests类清理244

    11.3服务类中的外键约束247

    11.3.1Flight存储库的调用248

    11.4练习260

    11.5总结261

    2章IAsynEuerable和yield return的使用262

    12.1程序需要AirportService类吗?263

    12.2FlightService类的实现264

    12.2.1通过FlightRepository获取特定航班信息264

    12.2.2数据流视图组合268

    12..trycatch代码块与yield return使用276

    12.2.4GetFlightByFlightNumber的实现281

    1.练习287

    12.4总结288

    第6部分控制器层3章中间件、HTTP路由以及其响应293

    13.1存储/服务模式中的控制器类294

    13.2决定实的控制器类别296

    13.3FlightController的实现297

    13.3.1HTTP响应(GetFlights)的返回298

    13.3.2使用中间件将依赖项注入控制器301

    13.3.3GET/Flight/FlightNumber终端地址实现310

    13.4将HTTP请求路由至控制器和方法314

    13.5练习319

    13.6总结320

    4章 JSON序列化/反序列化以及自定义模型的绑定321

    14.1BookingController类的实现322

    14.1.1数据反序列化简介3

    14.1.2使用\[FromBody\]特反序列化传入的HTTP数据327

    14.1.3自定义模型绑定器及其对应方法特的使328

    14.1.4CreateBooking终端地址方法逻辑的实现332

    14.2验收测试及添加Swagger中间件337

    14.2.1OpenAPI的手动验收测试338

    14.2.2生成OpenAPI规范342

    14.3结束语348

    14.4总结348

    附录A练习349

    附录B整洁代码检查表355

    附录C安装指南357

    附录DOpenAPI360

    附录E阅读列表363


    【前言】


    Jort Rodenburg是一名专门从事C#的软件,他为许多领域的应用构建软件。同时,Jort还是一名教授,他指导并教授面向对象编程的课程,以帮开发人员掌握C#和.NET。




    【内容简介】


    如果你已经精通一些类似于Go、C、JavaScript、Python或些主编程语言,通过认真学习本书内容,你将能够编写完整、地道的C#代码,如果你已经使用过C#,本书将会“提升”你的C#技能。 无论你是在构建面向用户的业务应用程序,还是在编写数据密集型的后端服务,本书中基于经验的实用技术都将把你的C#技能提升到一个新的水平。

    本书将教你如何编写适合企业应用程序的、简洁的C#代码。在本书中,你将应用的C#技术重构旧的代码库,你还将探索Entity Framework Core等工具,学习依赖项注入等技术,测试代码等实际应用。

    主要知识点

    单元测试和测试驱动开发

    重构代码库

    代码简洁之道

    使用LIN和Entity Framework Core查询和操作数据库


    这本书内容是基于现有的编程技能,又可帮大家进一步提高编程实践技能,或者帮您从对Java或面向对象的编程语言认知过渡到对C#认知。本书将教您学习如何编写对于企业开发至关重要、地道的C#代码。书中会讨论一些重要的后端方面的技,以在典型情形(重构一个代码库,以确保其安全、整洁和可读)中如何练习并应用这些技能。在完成书中这些练习之后,您将对C#语言具有更深刻的理解,并且具有学习更高水平内容的基础。

    本书中并不会介绍“Hello,World!”或者计算机基础,而是会引导大家通过重构一个过时的代码库来进行学习,教您尝试采用新技术、新工具和实现方式将这个代码库升级到现代C#的标准。在本书中,我们将以一个现有的(.NET框架下编写的)代码库为例,使用简化的API将其重构为.NET5框架。

    本书读者群体

    如果您是一名精通面向对象编程语言的开发人员,无论您会的是Java、Dart、C ,还是语言,本书都可以帮您快速掌握C#和 .NET。您之前拥有的知识完全可以应用上,不必花费时间重新学习编写一个if语句

    同样,如果您精通一些类似于Go、C、JavaScript、Python或些主编程语言,通过认真学习本书内容,您将能够编写完整、地道的C#代码。如果您想要学习一些有关面向对象的设计知识,学习C#也没有坏处(提示一点,如果您之前使用的是Go语言,请在使用接口时一定要特别小心,因为它们的工作方式并不相同)。

    还有一种情况,如果您已经使用过C#,并且想要知道如何“提升”您的C#知识,这本书会很适合您,本书中有很多学习高级C#的知识,本书将会帮您想要弥补的知识。

    本书主要结构

    与普通技术书籍相比,本书的结构有些规。大部分的技术书籍都属于参考书,读者可以以任何顺序来阅读,而这本书并不是参考书,需要按照顺序阅读。如图01所示,本书围绕以下6个部分构成:

    (1) “C#和 .NET”,在章中会讨论这本书是什么样的书,这本书会教什么,不教什么。第2章主要是对C#语言和.NET生态的简单回顾,重点介绍.NET的优越,以及C#是如何编译的。

    (2) “现有代码仓库”,在这部分,会指导探索我们目前已有的代码库。这部分介绍现有代码库,并讨论代码库的设计缺陷和潜在改进方案。

    (3) “数据库访问层”,这部分开始重写整个服务。在第3部分中,将专注于介绍创建全新的 .NET Core项目,并教大家学习如何使用Entity Framework Core连接到云(或本地)数据库。另外,本部分讨论的内容还包括存储/服务(repository/service)模式、虚方法(virtual method)、属(property)和密封类(sealed class)。

    (4) “存储层”,在第4部分,将教大家进一步了解存储/服务模式,如何实现五个存储库类。您将了解到依赖注入(dependency injection)、多线程(包括lcok锁、mutex互斥锁和semaphore信号量)、自定义相等比较(custom equality comparison)、测试驱动开发(testdriven development)、泛型(generic)、扩展方法(extension method)和LIN这些知识。

    (5) “服务层”,就是实现服务层的类。在这部分中,将介绍从头开始时编写的服务层,讨论反(reflection)、模拟(mocking)、耦合(coupling)、运行时断言(runtime assertion)、类型检查(type check)、错误处理(error handling)、结构体(struct)和生成式返回(yield return)。

    (6) “控制器层”,第6部分是重写代码仓库的步。在这部分中,将介绍如何编写两个控制器类,以及执行验收测试。除了这些内容,还将介绍 ASP.NET Core中间件(middleware)、HTTP路由、自定义数据绑定、数据序列化和反序列化,以及在运行时生成的OpenAPI说明书。

    本书的很多章节(包括章节中的很多小节)中,都包含了测试您知识水平的练,这些练习可以很快地完成。我真诚建议您完成这些练习时,同时记得复习您觉得自己理解不透彻的知识点。

    图1流程图(全书)图1为建议阅读本书的流程图。按照这个流程图阅读本书,认真学习,可以达到理想的阅读效果。该流程图的灵感来自The Art of Computer Programming series(Donald Knuth)一书。

    本书主要情况简介像C#高手一样编程本书中介绍的相关代码

    在编写代码的时候,可以将.NET分为3个主要分支:.NET框架4.x,.NET Core3.x和.NET5。除了第3章和第4章(阅读之后您会明白为什么),本书均以.NET5为对象进行编写。

    本书以C#语言版本中C#3和C#9为例进行讲解(如您使用的是C#8也是可以的)。C#语言是向下兼容的,您只要安装版本的C#(在撰写本书时,版本为C#8或C#9预览版)对照学习就可以。介绍源代码的章有第2章、第3和4(合并)章、第5章、第6章、第7章、第8章、第9章、0章、1章、2章、3章和4章。

    如要练习运行这些源代码,需要安装高于3.5版本的.NET框架(如果想要运行第3章和第4章的代码)和.NET5。如果想要“本地运行”本书中所提到的数据库,或是在实际安装时遇到困难,可以参考附录C(“安装指南”)中的安装说明。本书主要使用Visual Studio作为E,但是您也可以使用任何自己喜欢的、支持C#语言的E。Visual Studio 2019有一个免费的社区版本供我们使用,当必须使用Visual Studio的情况时,本书会有提示。代码和.NET5应当在Windows、macOS或Linux上运行。本书中尽可能使用命令行(对于macOS用户来说是终端),以避免大家依赖于任何特定的E或操作系统。

    本书中有很多源代码示例,它们有可能是带有编号的代码示例,也有可能是与常规文本混合在一起的,这两种情况,源代码都采用了固定宽度字体,以将其与普通文本区分开。有时代码名称还会加粗,以突出显示在之前步骤基础上发生修改的代码,比如将新功能添加至现有代码行时,会将新功能名称加粗。

    在很多情况下,源代码已经被重新格式化,添加了换行符并修改了缩进,这是为了以尽可能符合书籍的排版。还有些处理得仍然还不够好,代码示例中还会包含行延续标记()。本书中很多代码示例中都包含了代码注释,用以强调重要的概念。另外,请大家注意,新代码块的大括号通常被放置在前一行上,这并不符合C#在实际应用中的习惯,但是在本书中,这样做可以有效节约空间,本书提供的源代码本身并不会使用这一形式。

    与本书相关的论坛

    Manning出版社仅为读者提供一个环境平台,让读者与读者,读者与作者能够方便沟通。对于论坛,作者并没有承诺在论坛中的参与程度,其对论坛的贡献是自愿和无偿的。我们希望读者尽可能询问一些具有建设的问题,这样作者也更有兴趣解答。本书一经出版,出版社的论坛和相关资料都可以访问和查询。






    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购