简明 ASP.NET Core 手册

编者:

在4月份推送过这篇文章 简明 ASP.NET Core 手册 ,今天再次推荐这篇文章,是因为原作者更新到了新版本1.1.0,改动很大,几乎所有章节都有很大程度的调整,这些调整都是根据读者的建议而做,而且对于很多.NET Core的初学者来说,这是一个非常好的教程。

前言

感谢你捧起这本 简明 ASP.NET Core 手册!我写这本小书的目的,是帮助开发者和爱好者了解 ASP.NET Core 2.0,一个崭新的,用于创建 Web应用 和 API 的框架。

这本 简明 ASP.NET Core 手册 内容组织成了一篇教程。你将从零开始,完整地构建一个 待办事项(to-do) 应用,同时了解以下内容:

  • MVC (Model-View-Controller) 模式的基本内容

  • 前端代码(HTML, CSS, JavaScript)怎样与后端代码交互

  • 什么是依赖注入以及它的实用之处

  • 如何进行数据库的读写操作

  • 如何添加 登录、注册功能,以及如何提升安全性

  • 如何部署该应用到网络上

别担心,你可以在 对 ASP.NET Core (以及上面列表的内容)一无所知的状态下开始学习。

开始之前

你将要构建的这个应用,其完整源码位于 GitHub(https://www.github.com/nbarbettini/little-aspnetcore-todo) 。如果需要与你自己的代码做对比,可任意下载。

这本书本身也会由于修订和内容的增加而频繁更新。如果你阅读的是 PDF、电子书,或者打印版,请查阅官网(littleasp.net/book)的版本更新。有关版本信息和更新内容,请查阅本书的最后一页。

选择你的语言阅读

感谢那些多语言的读者,简明 ASP.NET Core 手册 已经被翻译成其它语言:

  • The Little ASP.NET Core Book (English -- original version)

    https://www.recaffeinate.co/book/

  • ASP.NET Core El Kitabı (Turkish)

    https://sahinyanlik.gitbooks.io/kisa-asp-net-core-kitabi/

本书的目标读者

如果你刚开始编程,本书将使你了解构建最新web应用的模式和概念。通过从头开始创建一些东西,你将学习构建一个 web 应用的方法(以及合理组织各模块的方法)。尽管这个手册不能事无巨细地讲解你对编程所需的全部内容,但它将成为你的一个起点,通向更多高级的主题。

如果你已经在使用诸如 Node、Python、Ruby、Go 或者 Java 之类的后端语言写代码,你会注意到很多熟悉的概念,比如 MVC、视图模板和依赖注入。你将使用 C# 进行进行编程,但跟你先前熟知的内容不会差异太大。

如果你是一个 ASP.NET MVC 开发者,你将如鱼得水。 ASP.NET Core 增添了一些新工具并复用(及简化)了你用过的那些东西。我会在后面指出其中的部分差异。

不论你此前在 web 编程方面经验如何,本书都会倾囊相授,足以使你用 ASP.NET Core 创建一个简单但实用的 web 应用。你将学习如何用前后端代码实现设计目标,如何与数据库交互,如何测试并部署应用到真实环境。

什么是 ASP.NET Core?

ASP.NET Core 是一个由微软创建的,用于构建 web 应用、API、微服务 的 web 框架。它使用常见的模式,诸如 MVC(Model-View-Controller)、依赖注入,和一个由中间件构成的请求处理管线。它基于 Apache 2.0 许可证开放源码,就是说,源代码可以自由获取,并且欢迎社区成员以 缺陷修复 和 新功能提交 的方式进行贡献。

ASP.NET Core 运行在微软的 .NET 运行时库上,类似于 Java 的 虚拟机(JVM)或者 Ruby 的解释器。有几种语言(C#,Visual Basic,F#)可以用来编写 ASP.NET Core 程序。C# 是最常见的选择,我在本书中也会采用它。你可以在 Windows、Mac,和 Linux 上构建并运行 ASP.NET Core 应用。

又一个 web 框架,需求何在?

现存的 web 框架选项已经很多了:Node/Express、Spring、Ruby on Rails、Django、Laravel 等等,数不胜数。ASP.NET Core 又有什么可取之处呢?

  • 速度 ASP.NET Core 很快。因为 .NET Core 是编译运行的,执行速度远高于解释执行的语言,比如 JavaScript 或者 Ruby、ASP.NET Core 也已经为多线程和异步任务作了专门的优化。与使用 Node.js 写的代码相比,执行速度高出 5-10 倍是很正常的。

  • 生态 ASP.NET Core 可能初出茅庐,但 .NET 却已久经考验。在 NuGet(.NET 的包管理系统,类似 npm、Ruby gems,或者 Maven)上有成千上万的软件包。有现成的包可用来完成 JSON 反序列化、数据库连接、PDF生成,或者几乎你能想到的任何需求。

  • 安全性 微软的开团队很注重安全性,ASP.NET Core 从创建基础就是安全的。它已经自动处理了 净化输入数据 和 跨域伪造请求(XSRF),你就不用操心这些了。你同时还享有 .NET 编译器的静态类型检测的福利,它像个时刻警惕着,还有些强迫症的审校者。这样,在使用一个变量或者某些数据时,那些无意识的错误就插翅难逃。


.NET Core 和 .NET 标准

贯穿本书,你将学习有关 ASP.NET Core (web 框架)的知识。我会偶尔提及 .NET 运行时(用于运行 .NET 代码的支持库)。

你可能还会听说 .NET Core 和 .NET标准,这些命名有些混乱,所以在此做一简短的释疑:

.NET 标准 是一个平台无关的接口,它定义了 .NET 中具有哪些特性和 API。 .NET 标准并不等同于任何实际的代码或者功能,仅仅是 API 的定义。.NET 标准现存多个不同的“版本”或者说级别,反映出提供 API 的数量(或者说 API 所覆盖的广度)。比如 .NET标准2.0 的 API 数量比 .NET标准1.5 多,后者的 API 又比 .NET标准1.0 多。

.NET Core 是可安装在 Windows、Mac或者Linux上的 .NET 运行时库。它在各个操作系统上,使用对应的平台相关代码实现了定义于 .NET 标准中的 API。你将要把它安装到机器上,用来构建和运行 ASP.NET Core 应用程序。

作为对比,这里要指出, .NET Framework 是另一个 .NET标准 的实现,它只能运行在 Windows 上。在 .NET Core 出现并把 .NET 推向 Mac 和 Linux 之前,它是唯一的 .NET 运行时库。 ASP.NET Core 也可以跑在 Windows 专用的 .NET Framework 上,但我不会过多涉及这个主题。

如果你已经被这些命名搞糊涂了,别发愁!咱们马上就要写代码进行实践了。

ASP.NET 4 开发者注意

如果你从没用过 ASP.NET 以前的版本,直接看下一章去吧!

ASP.NET Core 是对 ASP.NET 彻底的重写,重点关注于让该框架应用新的开发方法,并最终使其与 System.Web、IIS、和 Windows 解耦。你要是还记得 ASP.NET 4 的 OWIN/Katana 那些内容,你就已经学会一半了: Katana 项目成了 ASP.NET 5,而后者的名字最终被改成了 ASP.NET Core。

作为 Katana 的传承, Startup 类成了起始和中心,Application_Start 和 Global.asax 则不复存在了。整个处理管线由中间件驱动,MVC 和 Web API 不再有区别:控制器可以方便的返回视图、状态码,或者数据。依赖注入功能已经内置了,所以,如果你不想费劲的话,完全可以不用再安装并配置一个服务容器了,比如 StructureMap 或者 Ninject。整个框架已经针对速度和运行时效率进行了优化。

好了,前言就到这儿。开始学习 ASP.NET Core 吧。

原文地址:https://windsting.github.io/little-aspnetcore-book/book/ 


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《你必须掌握的Entity Framework 6.x与Core 2.0》正式出版感想

前言借书正式出版之际,完整回顾下从写博客到写书整个历程,也算是对自己近三年在技术上的一个总结,整个历程可通过三个万万没想到来概括,请耐心阅读。写博、写书完整历程回顾从2013年12月注册博客园账号,注册博客园账号…

Entity Framework Core 2.1带来更好的SQL语句生成方案

微软发布了Entity Framework Core2.1,为EF开发者带来了很多期待已久的特性。EF Core 2.1增加了对SQL GROUP BY的支持,支持延迟加载和数据种子等。EF Core 2.1的第一个重要新增特性是将GroupBy操作符翻译成包含GROUP BY子句的SQL。缺乏这种支持被认为是EF…

【枚举】数列(jzoj 1507)

数列 题目大意:给出一个等差数列的初始值和差值还有一个等比数列的处值和比值,问不大于n的数中,问这两个序列中,有多少个数小于n(只要在一个序列中就行了,在两个序列中只记一次) 样例输入 1 …

【模拟】蚂蚁(jzoj 1508)

蚂蚁 题目大意: 有n只蚂蚁,他们各往一个方向走(上北,下南,左西和有东四个方向),他们如果撞到一起就会直接消失,每个单位时间走一格,但有一种情况:两只蚂蚁相…

【结论】单元格(jzoj 1509)

单元格 题目大意: 在一个RC的矩形中选三个点,使他们行列各不同,定义“费用”为,这三个点之间的行列的差值的和(1,2和3,4费用是差值是(3-1)(4-2)224)&#x…

【DP】剪草(jzoj 1510)

剪草 题目大意: 有n棵小草,B某看它们很不顺眼,想让他们的高度总和不大于H,它们一开始各有一个高度,然后它们各有一个固定的生长值,B某每个单位时间可以将一棵草减掉(让他的高度变为0&#xff…

codeforces 962E Byteland, Berland and Disputed Cities 最小生成树变形

题目 题目链接 题意 在OxOx轴上有一堆点,这些点有三种类型R、B、PR、B、P型,现在要求添加一些线段把这些点连起来,使得如果去掉RR类型点,剩下的点都是联通的。如果去掉B" role="presentation" style="position: rela…

P6772-[NOI2020]美食家【矩阵乘法,倍增】

前言 我考场(线上赛)切NOI的题了! 正题 题目链接:https://www.luogu.com.cn/problem/P6772 题目大意 nnn个点mmm条边,每个城市有不同的愉悦值,从111出发,要求经过TTT的时间后回到点111(不能原地停留。 …

在ASP.NET Core中使用brotli压缩

Brotli是一种全新的数据格式,可以提供比Zopfli高20-26%的压缩比。据谷歌研究,Brotli压缩速度同zlib的Deflate实现大致相同,而在Canterbury语料库上的压缩密度比LZMA和bzip2略大。 链接:Google开源Brotli压缩算法 微软使用了一种基…

CUMT--Java复习--文件及IO流

目录 一、文件 1、文件系统和路径 2、File类 3、FilenameFilter接口 二、IO流 1、流的分类 2、流的体系结构 三、字节流 1、InputStream 2、OutputStream 四、字符流 1、Reader 2、Writer 五、过滤流和转换流 1、过滤流 2、转换流 六、序列化 1、对象序列化…

用ASP.NET Core 2.1 建立规范的 REST API -- 翻页/排序/过滤等

本文所需的一些预备知识可以看这里: 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 和 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) 准备项目建立Richardson成熟度2级的POST、GET、PUT、PATCH、DELETE的RESTful API请看这里: 用ASP.NET Core…

用ASP.NET Core 2.1 建立规范的 REST API -- HATEOAS

本文所需的一些预备知识可以看这里: 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 和 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) 准备项目建立Richardson成熟度2级的POST、GET、PUT、PATCH、DELETE的RESTful API请看这里:用ASP.NET Core …

学习手记(2020/8/19~2021/3/19)

文章目录所有集合子集数量和结论证明枚举子集的方法最大匹配模的次数线性基卡特兰数树形dpTipTipTip斯特林数斐波那契幂前缀和hallhallhall定理阿巴阿巴1狄利克雷卷积常用式子组合数学恒等式竞赛图性质一些博弈模型基础反演二项式反演莫比乌斯反演欧拉反演子集反演min-max\text…

奶牛的交叉路(jzoj 1756)

奶牛的交叉路 题目大意&#xff1a; 有两个数轴&#xff0c;之间有n条线分别连接着两个数轴的点各一个&#xff0c;这些线可能会相交&#xff0c;问有多少条线没有和其他点相交 样例输入 4 -3 4 7 8 10 16 3 9样例输出 2数据范围限制 1<N<100000&#xff0c;-1…

.Net Core 环境下构建强大且易用的规则引擎

1. 引言1.1 为什么需要规则引擎在业务的早期时代&#xff0c;也许使用硬编码或者逻辑判断就可以满足要求。但随着业务的发展&#xff0c;越来越多的问题会暴露出来&#xff1a;逻辑复杂度带来的编码挑战&#xff0c;需求变更时改变逻辑可能会引起灾难重复性的需求必须可重用&am…

【最短路】【SPFA】单源最短路径 (luogu 3371)

单源最短路径 luogu 3371 题目大意&#xff1a; 求出一个点到其他点的最短路 原题&#xff1a; 题目背景 本题测试数据为随机数据&#xff0c;在考试中可能会出现构造数据让SPFA不通过&#xff0c;如有需要请移步 P4779。 题目描述 如题&#xff0c;给出一个有向图&…

在Windows 下如何使用 AspNetCore Api 和 consul

一、概念&#xff1a;什么是consul:Consul 是有多个组件组成的一个整体&#xff0c;作用和Eureka,Zookeeper相当&#xff0c;都是用来做服务的发现与治理。 Consul的特性&#xff1a;1、 服务的发现&#xff1a;consul可以把注册到其中的服务提供给使用者&#xff0c;也可以主动…

网络流及建模专题(下)

前言 不断更新中… 专题的(下)篇将介绍网络流的一些奇奇怪怪的应用和费用流有关的一些套路。 本专题暂时包含三道题&#xff1a; 洛谷P1251 餐巾计划问题: 费用流的基本应用 Trade Gym - 100212I: 使用网络流对图论中的边进行调整 codeforces 818G - Four Melodies: 费用…

CentOS 7.4 下 如何部署 AspNetCore 结合 consul

上篇我们讲到consul的概念&#xff0c;以及在WIN下如何使用&#xff1a; 在Windows 下如何使用 AspNetCore Api 和 consul步骤如下&#xff1a;1、安装虚拟机VM 2、下载安装 CentOS 7.4&#xff08;地址就不提供了&#xff09;这是安装示例&#xff1a; VM虚拟机安装CentOS 示例…

【SPFA】最优贸易(luogu 1073)

最优贸易 luogu 1073 题目大意&#xff1a; 有n个城市和m条线路连接着这些城市&#xff08;当编号为1时是有向&#xff0c;2时是无向&#xff09;&#xff0c;从1城市出发到n城市&#xff0c;每个城市都有固定的水晶球价格&#xff08;进价和售价一样&#xff09;&#xff0…