简明 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,一经查实,立即删除!

相关文章

【模拟】【递归】电子表格(jzoj 2127)

电子表格 题目大意: 有一个Excel文档,有4中操作:input输入一个格子的值,output输出一个格子的值,sum某个格子等于一块矩形中的总值(矩形中的总值改变,这个格子也要改变)&#xff0…

nssl1477-赛【对顶堆,贪心】

正题 题目大意 nnn个物品,有两个人,每个人有一些喜欢的物品。 选mmm个物品,至少选择kkk个第一个人喜欢的和kkk个第二个人喜欢的物品 解题思路 首先我们必定是选最小的 我们从小到大枚举选择多少两个人都喜欢的物品iii,然后每人选…

洛谷-P1903 数颜色 分块 bitset

题目 题目链接 题意 给你一个数列代表不同的颜色(可以修改)。 询问一段区间内有多少种颜色。 题解 很容易想到的就是线段树来维护bitset。 这里为了练习,使用分块维护bitset。 * 事实上线段树可以看成是无限分块。* 修改的时候直接暴…

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

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

2019.01.27【NOIP普及组】模拟赛C组总结

总结 这次比赛的得分是:1001001000300 这次比赛第一题推了一会,推出了公式,马上A掉了,第二题之前做过,当做复习,写了大概半小时,第三题打了一下表,又写了个01背包,A掉&a…

nssl1478-题【dp】

正题 题目大意 nnn个苹果,依次来mmm个人会在两个苹果(ui,vi)(u_i,v_i)(ui​,vi​)中选择一个吃(如果都没了就不吃了) 求有多少对苹果可以同时存活 解题思路 设gi,jg_{i,j}gi,j​表示iii不吃时jjj是否必吃,我们从后到前枚举边&…

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…

洛谷-P2801 教主的魔法 分块

题目 题目链接 题意 修改:将一个区间内所有的数C。查询:查询一个区间内>C的数字有多少个。 题解 很经典的分快算法题目。 将数列分块以后,对块内的元素进行排序。 当我们要做修改操作的时候:遇到要修改的完整的块的时候…

【枚举】数列(jzoj 1507)

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

AT4352-[ARC101C] Ribbons on Tree【dp,容斥】

正题 题目链接: https://www.luogu.com.cn/problem/AT4352 https://atcoder.jp/contests/arc101/tasks/arc101_c 题目大意 nnn个点之间两两配对,要求配对点之间的路径覆盖整棵树,求方案数 解题思路 考虑容斥,我们钦定有lll条边没有路径覆盖…

洛谷-P3203 弹飞绵羊 分块

题目 题目链接 题意 据说这道题要用一道叫做LCT的数据结构,然而我不会。。。 一排有n个弹簧装置,从第ii个可一往后跳k[i]" role="presentation" style="position: relative;">k[i]k[i]步。 修改:修改某个位…

【模拟】蚂蚁(jzoj 1508)

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

P3302-[SDOI2013]森林【主席树,LCA,启发式合并】

正题 题目链接:https://www.luogu.com.cn/problem/P3302 题目大意 nnn个点的一个森林,要求支持以下操作 连接两个不连通的点询问两个点之间最短路径上第kkk大的数 解题思路 需要支持查询第kkk大,是必定使用主席树的,所以考虑如何合并两棵树…

codeforces gym-101741 Cover the Paths LCA、离线询问

题目 题目链接 题意 给出一棵树。 给出一堆路径,找出最少一个最少的点的集合,使得所有的路径都经过集合中的至少一个点。 题解 考虑一个路径的两个端点,从下往上最后一个能被经过的点就是这两点的LCA。 因此我们做整棵树dfs&#xff0…

【结论】单元格(jzoj 1509)

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

nssl1487-图

正题 题目大意 nnn个点nnn条边的图,每条边的边权为两个连接节点的权值和,给出所有边权,求每个节点权值(保证唯一的环为奇环) 解题思路 首先并查集找到环上相邻的两个点,然后可以发现这两个点之间有两个关系…

codeforces gym-101741 Subsequence Sum Queries 分治+离线

题目 这里写链接内容 题意 给出一个最长为200000200000数列 给出一堆最多为200000200000个询问区间,问从这些区间中取出一些数使得数字之和是m的倍数,有多少种方案。其中保证1≤m≤201≤m≤20。 题解 最容易想到的方法就是倍增dp来做。 定义f[i][…

【DP】剪草(jzoj 1510)

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

nssl1488-上升子序列【贪心,dp】

正题 题目大意 长度为nnn的序列&#xff0c;分割成两个上升子序列要求长度差最小 解题思路 我们对于i<j,ai≥aji<j,a_i\geq a_ji<j,ai​≥aj​的点之间连边&#xff0c;然后可以对于一个联通块进行二分图染色&#xff0c;我们可以发现&#xff0c;如果我们先固定一个…

经典题:poj2104-区间第k小 整体二分学习

写在前面 区间第k小 可以说是一个很经典的数据结构题了&#xff0c;这道题有很多种解法比如莫队离线、主席树、整体二分等等。 之前用莫队和主席树写过这道题&#xff0c;今天来学习一个以前不会的算法——整体二分。 因为最近遇到一个类似于整体二分的题目&#xff0c;就是…