第13期-常用的Web前端技术选型
- 2019/12/26 20:25 | 22分钟
- VIP
ASP.NET Core 应用程序属于 Web 应用程序,在开发中通常依赖于 HTML、CSS 和 JavaScript 等客户端技术,使用 Bootstrap 库使前端开发更加简单高效,学会 SASS 和 LESS 预处理器,比较 jQuery、Angular、Vue 和 React 前端库,了解 ECMAScript 6 规范标准,如何系统学习前端技术。
ASP.NET Core 应用程序属于 Web 应用程序,在开发中通常依赖于 HTML、CSS 和 JavaScript 等客户端技术,使用 Bootstrap 库使前端开发更加简单高效,学会 SASS 和 LESS 预处理器,比较 jQuery、Angular、Vue 和 React 前端库,了解 ECMAScript 6 规范标准,如何系统学习前端技术。
对于几乎任何软件应用程序,数据访问都是重要的部分,微软 ASP.NET Core 支持各种数据访问技术,理解关系型数据库与非关系型数据库,学习结构化、半结构化和非结构化数据,使用 EF Core 访问关系型数据库,设置弹性连接,连接重试中的指数退避算法,关于 EF Core 和微型 ORM 框架的选择,对比 Dapper 与 EF Core 性能,关于 SQL 与 NoSQL 对比,可用第三方云计算数据存储方案。
任何复杂程度的软件在响应更改方面皆可能意外失败,编写的应用程序应具备可测试性,基于单元测试、集成测试和功能测试实现自动化测试方案,测试金字塔理念,分析要测试的内容,在解决方案中组织测试项目,微软测试类和方法的命名规则,分析 eShopOnWeb 中的测试项目,回归测试与调试测试,功能测试可在进程内使用 HttpClient 与 TestServer 建立高性能的通信信道。
学习微软 eShopOnWeb 中所使用的前端库管理与自动化构建工具,查看 ASP.NET Core 依赖注入容器中注册的所有服务,视图组件与部分视图,在路由中使用参数转换程序自定义标记替换,自定义路由约定,架构中的改进与扩展。
中介者模式可避免交互对象之间的紧耦合关系,发布与订阅形式,使用 MediatR 中介者实现发布与订阅,单播与多播消息,有返回值的单播消息,无返回值的单播消息,单播消息处理器,多播通知消息,多播通知处理器,多路广播中的分发策略设置,中介者的同步与异步调用,关于 MediatR 在 eShopOnWeb 项目中的实践应用。
理解领域层、应用层和 UI 层的项目依赖关系,应用层接口与实现,控制器与 WebAPI 设计,使用 Swagger 构建接口文档,使用健康检查组件分析 WebAPI 运行情况,使用 Area 区域组织项目项目结构,领域实体与视图模型转换。
抽象异步仓储模式,领域驱动中的规约模式与查询条件复用,理解基础设施层,关于持久性无感知的架构理念,可替换的基础设施,封装 DbContext 上下文实现异步仓储接口,通用规约条件计算器,实体类型映射配置,自定义的订单仓储,演示数据初始化,模型迁移,集成 Identity 身份认证设施,实现邮件发送服务。
领域驱动项目总体结构,基于洋葱同心圆整洁架构,解析微软项目源码层次结构,分析抽象核心业务模型,聚合、实体与值对象的实现,优雅的异常设计与错误处理技巧,领域服务的接口与实现。
在 GitHub 上下载 eShopOnWeb 源码,项目文件结构说明,使用内存数据库在开发环境运行项目,使用 SQL Server 迁移模型并运行项目,小商城功能演示,查看数据库表结构与关系,设置 Docker 容器的仓库地址,下载 .NET Core SDK 容器镜像,在 Docker 容器中运行项目。
新式 Web 应用程序的特征,微软 eShopOnWeb 开源项目介绍,关于 MPA 多页面和 SPA 单页面应用的决策,体系结构架构通用设计原则,分离关注点,封装变化点,依赖倒置原则,显式依赖关系,单一职责原则,对自我重复进行重构,实现持久化无感知,基于 DDD 限定上下文,常用 Web 应用程序体系结构,传统分层架构和现代化整洁架构,领域层、基础设施层和表现层之间的依赖关系。
理解架构中的高性能、可用性、伸缩性、可扩展性和安全性,使用三维模型拆分业务规模庞大的应用系统,X轴水平拆分、Y轴功能拆分与Z轴数据分割,设计模式、框架、分层和架构的之间的区别与联系,理解单体应用架构、面向服务的 SOA 架构和微服务架构,关于微服务和 SOA 的区别,DDD与微服务,分布式与集群的区别。
学习 DDD 领域驱动设计模型,问题领域分析、限定上下文和通用语言,领域驱动分层架构设计,基础设施层、领域层、应用层和表现层之间的关系,抽象接口的编程思想可降低耦合,关于 DDD 模型的组成部分,理解实体、值对象、应用服务、领域服务、领域事件、聚合根、仓储库、工厂和模块。
理解程序集、包和元包的区别,库、框架、架构和平台之间的关系,微软 .NET Core 是一种由包组成的平台,有些产品体验受益于包的细粒度定义,而另一些受益于粗粒度的定义,为了适应这种二元定义,一款好的产品应该作为一组细粒度的包发布,并在更粗的粒度组块中进行分发。