《全栈工程师 Web 开发指南》web
========== ========== ==========
[做者] (意) Dino Esposito
[译者] (中) 李永伦
[出版] 人民邮电出版社
[版次] 2019年03月 第1版
[印次] 2019年03月 第1次 印刷
[订价] 79.00元
========== ========== ==========数据库
【第02章】 【选择支撑架构】 编程
(P018) json
领域模型模式的要点是构建一个彻底体现业务领域的行为和流程的面向对象模型。浏览器
DDD 愿景中的所有持久化问题都委托给领域服务,尤为是仓库。服务器
(P020) 架构
对于领域模型而言,值类型的角色比不少人想象的重要得多。值类型是更精确地建模真实世界的工具。框架
【第03章】 【用户体验驱动设计】 编程语言
(P038) 函数
好的 UI 不必定是好的 UX 。好的 UX 多是有效的,但可能没那么美观。
(P044)
无论物理层、逻辑层、框架、数据库和技术是什么,对于最终用户而言,软件系统惟一重要的是用户界面,确切地说,是这个应用程序的用户体验和感知速度。
【第04章】 【Web 解决方案的架构选项】
(P053)
ASP.NET Core 1.0 最复杂的部分是选择要使用的 .NET CLR 。
DNX 运行时环境 (新的 ASP.NET 运行时) 是一个托管进程,其职责之一就是加载 CLR 。
(P054)
ASP.NET Core 1.0 支持任何版本为 4.5.2 或更新的 .NET Framework 。
(P060)
若是你肯定用 HTTP 做为传输协议,务必弃 WCF 投 ASP.NET Web API 。
(P063)
SPA 的主要目的是给用户带来更流畅的体验,移除全部整页刷新,使交互更像桌面应用程序。
(P064)
SPA 和传统的 ASP.NET 代码很是不一样,它一般包含 JavaScript 代码和客户端数据绑定技术。
编写 SPA 须要很强的 JavaScript 技能,须要开发者能熟练运用选择的 SPA 框架。要构建真正的 SPA ,你须要一个专业的 SPA 框架,如 AngularJS 、 Durandal 或者 Ember 。学习使用任何这些框架都至关于学习一门新的编程语言。或许入门很容易,但精通可能要花必定的时间,而时间就是金钱。
【第05章】 【Web 解决方案的架构选项】
(P067)
业务流程不仅是软件中最重要的东西 —— 它们是惟一重要的东西,没有任何妥协。
(P068)
业务层分解为应用程序层和领域层。这样作是为了整顿灰色地带,使之明确有两种业务逻辑 —— 应用程序和领域。应用程序逻辑精心安排由表现层触发的任何任务。领域逻辑是特定业务的核心逻辑,能够跨越多个表现层重用。
(P069)
在 ASP.NET MVC 中,有几种方式把要整合到结果视图中的数据传给视图引擎。你能够用公共字典 (如 ViewData) 、动态对象 (如 ViewBag) 或者量身定制的包含全部要传递的属性的类。
应用程序层接收输入模型类,并返回视图模型类。
(P070)
在 ASP.NET MVC 解决方案中,你能够直接从控制器经过一些仓库类调用基础设施层。但一般而言,在控制器 (做为表现层的一部分) 和仓库 (做为基础设施层的一部分) 之间有一到两个中间层。
(P071)
任何软件,即便是最简单的数据输入应用程序,都是针对业务领域编写的。每一个业务领域都有本身的规则。规则数量有时候接近零,但做为一名架构师,你应该任什么时候候都为业务规则留下空间。最后,每一个业务领域暴露一种应用程序接口 (API) 。表现层容许终端用户与这种 API 交互的方式 (用例) 决定了应用程序层。
【第06章】 【ASP.NET 的现状】
(P079)
ASP.NET MVC 打破服务器控件的黑盒,下降开发的抽象级别,使之更接近 HTTP 的实际运做方式。
(P080)
大多数响应都使用 JavaScript 和酷炫的框架在客户端上渲染 Web 视图。 AngularJS 是最重要的框架,但 React 是另外一个很不错的选择。
(P081)
技术只是工具,业务才是主角。
【第07章】 【ASP.NET Core 1.0 的前因后果及技术细节】
(P086)
ASP.NET Core 是首个支持 .NET Core 框架的框架。
ASP.NET Core 基于一个支持多个不一样 CLR 的运行时托管环境。这个运行时托管环境也是跨平台的,于是使得 ASP.NET Core 应用程序也能在 IIS 服务器以及 Windows 操做系统以外很好地托管。这个运行时托管环境叫作 DNX ,它是 .NET Execution Environment 的缩写。
(P087)
DNX 提供了运行 ASP.NET Core 应用程序所需的基础设施。 DNX 本质上是一个托管进程,包含必要的逻辑来加载和托管合适的 CLR —— 无论它是完整的 CLR 仍是 CoreCLR 。 DNX 也包含发现代码入口点和实际调用它的逻辑。
(P089)
在 ASP.NET Core 中,托管层主要负责肯定应用程序将会运行在哪一个 Web 服务器上 (不论是 IIS 仍是 Apache) 以及传入请求的 Web 监听器。接着,托管层会肯定启动逻辑并启动应用程序。
在 ASP.NET Core 中,应用程序的入口点是 Startup 类上的 Configure 方法。
ASP.NET Core 应用程序利用一个全新的应用程序通道,意味着传入请求会通过一组配置好的运行时模块,让它们有机会在这个过程当中读取和修改这个请求。在通道的末尾,请求会由应用程序执行。
在 ASP.NET Core 通道中,模块的调用顺序来自 Startup 类的代码而不是 web.config 文件的某个节点。
全部能够从通道中调用的模块构成了应用程序的中间件。在执行各自的任务以后,每一个中间件组件均可以把请求传给下一个组件,或者强制返回响应给调用方。这主要取决于这个中间件组件的做用。
(P090)
ASP.NET 附带一堆预约义的中间件组件,其中一个是异常处理器。你应该在通道较前的地方调用它,以便有更多的机会来捕获异常。
你能够经过调用 UseXxx 、 Run 或者 MapXxx 扩展方法来注册通道模块。大多数中间件组件都以预约义的 UseXxx 扩展方法的形式从 IApplicationBuilder 对象暴露出来,这个对象是 Startup 类从 ASP.NET 托管层接收到的。
(P091)
wwwroot 文件夹的目的是分离代码文件和静态资源文件。
bower.json 文件在概念上至关于只用于客户端文件的 packages.config 。
(P093)
DNX 进程托管一个通用的 ASP.NET Core Web 服务器 (跨平台的) ,它知道如何经过 ASP.NET Core 通道处理请求。这个通用的 Web 服务器叫做 Kestrel 。
(P094)
Startup 类包含两个方法 : Cnfigure 和 ConfigureServices 。这两个方法都从 ASP.NET Core 运行时调用。前者用来配置 HTTP 请求通道,后者用来向 ASP.NET Core 请求栈注入服务。
(P095)
Configure 方法必须至少接受一个 IApplicationBuilder 参数。可是,你能够有选择性地添加另外两个类型的参数, IHostingEnvironment 和 ILoggerFactory ,运行时会把它们传给你。
在 ASP.NET Core 中,服务是一个应用程序的各个部分均可能使用的共享组件。
【第08章】 【ASP.NET MVC 的精髓】
(P107)
路由是表示 URL 绝对路径 (即没有协议、服务器和端口信息的 URL 字符串) 的模式匹配字符串。路由多是常量字符串,但一般会包含一些占位符。
(P108)
占位符一般叫作 URL 参数,是一个包含在花括号 ({}) 中的名字。一个路由能够有多个占位符,只要它们有常量或分隔符分开就好了。斜杠 (/) 字符充当路由各个部分之间的分隔符。占位符的名字是你在代码中经过编程的方式从实际 URL 获取对应部份内容的键。
想要多少路由和占位符,就添加多少,甚至能够移除默认路由。
RegisterRoutes 是在 RouteConfig 类上的一个方法。
(P112)
ASP.NET MVC 中的特性路由必须显式启用。
【第09章】 【Bootstrap 的精髓】
(P135)
Bootstrap 提供直接的方式,把 HTML 块变成现代网站所需的更加成熟的可视化元素。
LESS 文件是构建在普通 CSS 语法之上的一个抽象层,让开发者能够声明一个 CSS 文件最终将会如何使用。你能够把 LESS 看做一门编程语言,一旦编译就会产生 CSS 。在 LESS 文件里,可使用变量、函数和运算符,所以极大地提升了建立和维护大型复杂 CSS 样式表的流程效率。
(P139)
Bootstrap 的快速普及的其中一个关键缘由是建立从不一样类型设备看起来不错的页面成本很低。
Bootstrap 有一个灵活的网格系统,它把水平可用空间分红 12 等份物理列。
(P147)
在 Bootstrap 中, btn 类会把提交按钮、常规 HTML 按钮和锚变成可点击的方形区域。 btn 类的效果是纯图形的,它所作的就是添加填充、边框、圆角和颜色。
【第10章】 【ASP.NET MVC 项目的组织方式】
(P174)
分层架构模式给出四个关键逻辑层 : 表现、应用、领域和基础设施。
【第12章】 【编辑数据】
(P235)
ASP.NET MVC 的 xxxFor 辅助方法施展了读取 ModelState 字典的魔法,而后把输入字段的 value 属性设为最后已知状态。
在 xxxFor HTML 辅助方法中,你能够找到 Html.ValidationMessageFor 和 Html.ValidationSummary 。
【第13章】 【持久化和建模】
(P261)
O/RM 的诞生是为了保护开发者免受 SQL 编程的复杂性的困扰,避开类和记录之间的不匹配问题。
【第14章】 【建立更具交互性的视图】
(P272)
在 Microsoft .NET Framework 中,有两个流行的库能够处理 JSON 数据,一个是 JavaScriptSerializer 类,能够在 System.Web.Extensions.dll 程序集中找到,另外一个是 JSON.NET ,能够在 newtonsoft 官方网站中找到,或者经过 NuGet 安装。
(P285)
大多数时候,开发者使用 jQuery 工具而不是 XMLHttpRequest 对象来发起 Ajax 调用。 jQuery 库包装了浏览器的基础设施并提供友好的编程体验。
(P288)
全部客户端数据绑定库都采用一个填满数据占位符的模板,并从提供的数据模型把数据插进去。
mustache.js 要求把模板做为单独的元素提供,嵌在 SCRIPT 标签中。