知乎上有一个帖子非常热闹:特斯拉为何使用.NET Core技术框架?为何不用Java/Go等?

可能有很多人对.NET的印象还停留在2016年之前,认为“.NET是闭源的”“.NET就只能用Windows”,但其实.NET已经开源并实现跨平台好多年了!

Linus Torvalds也因Microsoft的改变而公开宣称接纳Microsoft!

有特斯拉的内部员工也针对这个问题给出了回复。

其实,.NET在国外非常流行,Facebook有很多.NET岗位,全球大部分车厂也有用.NET,比如BMW、德国大众、Daimler AG等。在很多行业,.NET一直是领导地位。

平心而论,.NET Core的优势不容小觑!

跨平台: 可以在 Windows、macOS 和 Linux 操作系统上运行。

跨体系结构保持一致: 在多个体系结构(包括 x64、x86 和 ARM)上以相同的行为运行代码。

命令行工具: 包括可用于本地开发和持续集成方案中的易于使用的命令行工具。

部署灵活:可以包含在应用或已安装的并行(用户或系统范围安装)中,可搭配 Docker 容器使用。

兼容性:.NET Core 通过 .NET Standard与 .NET Framework、Xamarin 和 Mono 兼容。

开放源代码: .NET Core 平台是开放源代码,使用 MIT 和 Apache 2 许可证。.NET Core 是一个 .NET Foundation 项目。

由 Microsoft 支持: .NET Core 由 Microsoft 依据 .NET Core 支持提供支持。

相信,国内.NET的春风也许会迟到,但绝不会缺席!

目前,还没有哪个技术平台像 .NET Core 这样提供了如此完备的技术栈,桌面、Web、云、移动、游戏、IoT 和 AI 相关开发都可以在这个平台上完成。

在列出的这七大领域中,面向应用的Web 开发依然占据了市场的半壁江山,为其提供支撑的 ASP.NET Core 的重要性就毋庸置疑了。

Web 应用可以采用不同的开发模式,如 MVC、gRPC、Actor Model、GraphQL、Pub/Sub 等,它们都有对应的开发框架予以支持。

虽然编程模式千差万别,开发框架也琳琅满目,但是底层都需要解决一个核心问题,那就是请求的接收、处理和响应,而这个基础功能就是在 ASP.NET Core 中实现的。

从这个角度来讲,ASP.NET Core 是介于 .NET 基础框架和各种 Web 开发框架之间的中间框架。

在前 .NET 时代( .NET Core 诞生之前),计算机图书市场存在一系列介绍 ASP.NET Web Forms、ASP.NET MVC、ASP.NET Web API 的图书。但是找不到一本专门介绍 ASP.NET 自身框架的图书。

上述这些Web 开发框架都是建立在 ASP.NET 框架之上的,底层的 ASP.NET 框架才是根基所在。

很多资深的 ASP.NET 开发人员可能都对 ASP.NET 框架都没有进行更深入的了解。

领域旗帜性专家蒋金楠老师在出版了《ASP.NET MVC 5 框架揭秘》之后,紧跟版本再续神作,基于.NET开发20年的经验,终于为大家带来了《ASP.NET Core 6框架揭秘(上下册)》两册千页著作,助你挑战高薪,无惧裁员!

内容简介

本书只关注 ASP.NET Core 框架最核心的部分,即由一个服务器和若干中间件构建的管道,除了“第 1 章 编程体验”,其他章节基本上都不会涉及上层的编程框架。

本书共分为以下 5 篇内容。

● 初始编程

第 1 章提供了 20 个极简的 Hello World 应用程序,带领读者感受一下 ASP.NET Core 的编程体验。这些演示实例涉及基于命令行的应用创建和 Minimal API 的编程模式,还涉及多种中间件的定义及配置选项和诊断日志的应用。第 1 章还演示了如何利用路由、MVC 和 gRPC 开发 Web 应用和 API,4 种针对 Dapr 的应用开发模型也包含在这 20 个演示实例中。

● 基础框架

ASP.NET Core 建立在一系列基础框架之上,这些独立的框架在日常的应用开发中同样被广泛地使用。第 2 篇提供的若干章节对这些基础框架进行了系统而详细的介绍,其中包括“第 2~3 章 依赖注入”“第 4 章 文件系统”“第 5~6 章 配置选项”“第 7~9 章 诊断日志”“第 10 章 对象池”“第 11 章 缓存”“第 12 章 HTTP 调用”“第 13 章 数据保护”。

● 承载系统

ASP.NET Core 应用作为一个后台服务寄宿于服务承载系统中,“第 14 章 服务承载”主要对该承载系统进行了详细介绍。ASP.NET Core 应用的承载是本书最核心的部分,“第 15~17 章 应用承载(上、中、下)”不仅对 ASP.NET Core 请求处理管道的构建和应用承载的内部流程进行了详细介绍,还对 Minimal API 的编程模型和底层的实现原理进行了详细介绍。

● 服务器概述

本书所有内容都围绕着 ASP.NET Core 请求处理管道,该管道由一个服务器和若干中间件构建。第 18 章主要对服务器的系统进行了介绍,不仅会详细介绍 Kestrel 服务器的使用和实现原理,还会介绍基于 IIS 的两种部署模式和 HTTP.SYS 的使用,以及如何自定义服务器类型。

● 中间件

服务器接收的请求会分发给中间件管道进行处理。本篇对大部分中间件的使用和实现原理进行了介绍,其中包括“第 19 章 静态文件”“第 20 章 路由”“第 21 章 异常处理”“第 22 章 响应缓存”“第 23 章 会话”“第 24 章 HTTPS 策略”“第 25 章 重定向”“第 26 章 限流”“第 27 章 认证”“第 28 章 授权”“第 29 章 跨域资源共享”“第 30 章 健康检查”。

写作特点

本书的写作风格可以概括为“体验先行、设计贯通、应用扩展”12 个字。

大部分章节开头都会提供一些简单的演示实例,旨在让读者对 ASP.NET Core 的基本功能特性和编程模式有一个大致的了解。

在此之后,会提供背后的故事,即编程模型的设计和原理。将开头实例和架构设计融会贯通之后,读者基本上能够将学到的知识正确地应用到事件中,对应章节对此会提供一些最佳实践。

秉承“对扩展开放,对改变关闭”的“开闭原则”,每个功能模块都提供了相应的扩展点,能够精准地找到并运用适合的扩展来解决真实项目开发中的问题才是终极的目标,对应章节会介绍可用的扩展点,并提供一些解决方案和演示实例。

本书综合运用“文字”“图表”“编程”这 3 种不同的“语言”来介绍每个技术主题。

一图胜千言,每章都精心设计了很多图表,这些具象的图表能够帮助读者理解技术模块的总体设计、执行流程和交互方式。

除了利用编程语言描述应用编程接口(API),本书还提供了 200 多个实例,这些实例具有不同的作用,有的是为了演示某个实用的编程技巧或者最佳实践,有的是为了强调一些容易忽视但很重要的技术细节,有的是为了探测和证明所述的论点。

本书在很多地方展示了一些类型的代码,但是绝大部分代码和真正的源代码是有差异的,两者的差异有以下几个原因:

第一,源代码在版本更替中一直在发生改变;

第二,由于篇幅的限制,删除了一些细枝末节的代码,如针对参数的验证、诊断日志的输出和异常处理等;

第三,很多源代码其实都具有优化的空间。本书提供的代码片段旨在揭示设计原理和实现逻辑,不是为了向读者展示源代码。

目标读者

虽然本书关注的是 ASP.NET Core 自身框架提供的请求处理管道,而不是具体某个应用编程框架,但是本书适合大多数 .NET 技术从业人员阅读。

任何好的设计都应该是简单的,唯有简单的设计才能应对后续版本更替中出现的复杂问题。

ASP.NET Core 框架就是好的设计,因为自正式推出的那一刻起,该框架的总体设计基本上没有发生改变。

既然设计是简单的,对大部分从业人员来说,对框架的学习也就没有什么门槛。

本书采用渐进式的写作方式,对于完全没有接触过 ASP.NET Core 的开发人员也可以通过学习本书内容深入、系统地掌握这门技术。

由于本书提供的大部分内容都是独一无二的,即使是资深的 .NET 开发人员,也能在书中找到很多不甚了解的盲点。

扫码了解本书详情

特斯拉为何使用.NET Core技术框架?相关推荐

  1. XBodhi(技术框架)——序

    XBodhi 的起源 是由本人2013年编写,名字经过 OOEF,System等等变更,在代码急剧缩减和优化最后经过4年时间确定了名字为 QiaoHY.XBodhi 随着时间的关系并没有进行完善,也只 ...

  2. ASP.NET Core技术研究-全面认识Web服务器Kestrel

    因为IIS不支持跨平台的原因,我们在升级到ASP.NET Core后,会接触到一个新的Web服务器Kestrel.相信大家刚接触这个Kestrel时,会有各种各样的疑问. 今天我们全面认识一下ASP. ...

  3. .NET Core技术研究-主机

    前一段时间,和大家分享了 ASP.NET Core技术研究-探秘Host主机启动过程 但是没有深入说明主机的设计.今天整理了一下主机的一些知识,结合先前的博文,完整地介绍一下.NET Core的主机的 ...

  4. 基于Kebernetes 构建.NET Core技术中台

    今天下午在腾讯云+社区社区分享了<基于Kubernetes 构建.NET Core技术中台>,下面是演讲内容的文字实录. 我们为什么需要中台 我们现在处于企业信息化的新时代.为什么这样说呢 ...

  5. .Net Core应用框架Util介绍(二)

    Util的开源地址 https://github.com/dotnetcore/util Util的开源协议 Util以MIT协议开源,这是目前最宽松的开源协议,你不仅可以用于商业项目,还能把Util ...

  6. Magicodes.Admin.Core开源框架总体介绍

    框架说明 Magicodes.Admin.Core框架在ABP以及ASP.NET ZERO的基础上进行了封装和完善,目前基于.NET Core 2.0+(Framework版本),由于部分组件在.NE ...

  7. 基于Kubernetes 构建.NET Core技术中台

    今天下午在腾讯云+社区社区分享了<基于Kubernetes 构建.NET Core技术中台>,下面是演讲内容的文字实录. 我们为什么需要中台 我们现在处于企业信息化的新时代.为什么这样说呢 ...

  8. (非常重要).Net Core应用框架Util介绍(学习Util)

    转载地址https://blog.csdn.net/sD7O95O/article/details/82598545(看看!) 不过Util作者本人的博客地址在https://www.cnblogs. ...

  9. .NET平台常见技术框架整理汇总

    使用.NET平台开发有段时间了,在网上资料的基础上做了进一步整理,汇集了.NET平台常见的技术框架. 参考资料: 基于.NET平台常用的框架整理 .NET开源框架列表 1.知识网络 2.分类清单 2. ...

最新文章

  1. 实验台通用继电器接口
  2. java远程线程注入_系统权限远程线程注入到Explorer.exe
  3. js,jquery 根据对象某一属性进行排序
  4. 调研Redis高可用两种方案
  5. 找出数组中被其他元素整除的元素_「每日一题」数组中重复的数字
  6. PostgreSQL在何处处理 sql查询之四
  7. mysql检索整数_MyBatis从MySql DB中检索整数为Enum
  8. android 无法添加依赖关系,Android无法添加aop库依赖
  9. Perl语言程序设计_输入与输出
  10. 计算机体系结构课后答案
  11. pyserial安装失败
  12. 计算机应用基础与操作,计算机应用基础与操作
  13. 华章教育pdf计算机,AB-PLC华章培训全集.pdf
  14. python小欢喜(八)俄罗斯方块 (3) 组合对象的旋转
  15. 感谢牛健老师为《Spring Boot实战派》开源Fadmin
  16. PyQt5自定义无边框窗口
  17. 第三章 国外信托公司业务
  18. 让商家“二选一“,唯品会选错了自救道路?
  19. jQuery 效果 - 淡入淡出
  20. 联想x3850x6从u盘引导,联想ThinkPad X280 BIOS设置u盘启动教程

热门文章

  1. Python实战:如何隐藏自己的爬虫身份
  2. 同步传输与异步传输【转载】
  3. java实况足球2014,有趣的足球题材游戏有哪些
  4. LOB variable no longer valid after subsequent fetch
  5. 手把手带你实现西瓜视频的责任链埋点框架
  6. 东邪西毒经典对白,程序员版
  7. Leetcode 递归题目总结
  8. 3月16日—3月20日三年级课程
  9. apache httpd.conf配置文件详解
  10. matlab的magic函数,python实现类似于Matlab中的magic函数