电子书 编程

使用 C# 和.NET 构建现代 SaaS 应用程序(英文版

¥1.00 已售 0
✓ 自动发货 ✓ 永久有效 ✓ 售后保障

资源介绍

电子书) 目标读者:适合希望使用微软技术栈构建 SaaS 应用的开发者,具备 C# 和.NET 基础知识、数据库和 Web 开发经验者更佳,但初学者也能从中学习。 主要内容概览 本书围绕使用 C# 和.NET 构建现代 SaaS 应用展开,涵盖从基础概念到实际开发、部署和维护的全流程,共分为 5 个部分 13 章。 第一部分:入门(Part 1: Getting Started) SaaS—— 我们都需要的现代分发模式 SaaS 定义:通过互联网以浏览器形式交付,通常采用月订阅费模式的软件应用。 其他应用类型:包括桌面应用(安装在用户机器,存储文件和数据在本地)和本地 Web 应用(已多被 SaaS 替代,企业可自主控制更新,但需专人管理)。 云的概念:核心在于高可用性和近乎无限的即时可扩展性,SaaS 应用的组件多托管于云服务提供商(如 Azure、Google Cloud、AWS)。 SaaS 发展历程:从早期大型主机终端模式,到互联网成熟后,1994 年安全支付技术出现,1999 年 Salesforce 推出首个真正的 SaaS 应用,再到后来ASP.NET发展及 Gmail 等服务推动 SaaS 普及。 SaaS 流行原因:对用户而言无需安装、可在任何设备访问等;对企业而言能全球覆盖、灵活定价等。 构建 SaaS 应用的工具:数据库开发(SQL Server Express)、API 开发(C# 和.NET 7、Visual Studio Community Edition)、前端开发(Blazor)、身份验证与授权(OAuth 2.0 协议)、托管(Azure 门户)、Docker(简化开发过程)。 构建 SaaS 应用的技术:测试驱动开发(TDD)、领域驱动设计(DDD)、微服务、多租户、响应式设计、渐进式 Web 应用(PWA)等。 对开发过程的影响:需频繁且早期发布、注重自动化测试、开发者最好具备全栈知识、了解用户需求。 构建简单演示应用 技术要求:代码可在指定 GitHub 仓库获取。 环境设置:安装 Docker Desktop 和 Visual Studio Code,并配置相关扩展。 开发容器(dev container):将开发所需工具和服务封装,确保开发环境一致性,介绍了其定义、配置及使用方法。 构建示例应用:包括数据库技术(使用 Entity Framework 的 “代码优先” 方式)、API 技术(.NET Web API 框架)、用户界面技术(Blazor),并介绍了应用的启动和解决方案文件添加等。 第二部分:构建后端(Part 2: Building the Backend) 什么是多租户及其在 SaaS 应用中的重要性 多租户定义:单一应用实例服务多个客户群体(租户),共享基础设施和资源,但数据和配置隔离。 相关概念区分:客户(购买或订阅软件的组织或个人)、租户(使用共享 SaaS 应用实例的独立组织等)、用户(使用系统的个人)。 多租户替代方案:单租户,即每个租户单独部署应用栈和数据库,安全性高但成本高、扩展性差。 多租户优缺点:优点包括成本效益高、定价灵活等;缺点包括复杂性增加、安全要求高等。 多租户应用的数据存储选项:单租户一数据库、共享模式、单租户一模式、单租户一表等,并介绍了设计和安全考虑。 构建数据库和规划数据丰富的应用 数据在 SaaS 应用中的重要性:是应用的基础,其类型、访问和操作方式等影响应用设计和架构。 数据库构建:介绍了数据库类型(关系型、文档数据库等)、ACID 特性(原子性、一致性、隔离性、持久性)、Entity Framework(ORM 工具)、数据丰富应用的测试以及数据库升级(使用 Entity Framework 迁移)。 构建 RESTful APIs RESTful APIs 定义:基于 REST 架构的 Web 接口,利用 HTTP 方法操作资源。 关键概念:幂等性、安全性、HTTP 状态码、错误处理、JSON 数据格式、API 操作与 HTTP 动词匹配(GET、POST、DELETE、PUT、PATCH)、数据传输对象(DTOs)。 API 设计与版本控制:良好的 REST 设计原则、示例 API 设计、公共 API 版本控制及示例代码、API 测试。 SaaS 应用的微服务 微服务定义及使用原因:将大型应用拆分为小型、独立服务,便于开发、部署和扩展。 松耦合与紧耦合区别:紧耦合系统组件依赖强,松耦合系统组件独立。 Docker 与微服务:Docker 可高效可靠地运行微服务,便于打包和部署。 构建微服务的最佳实践:为故障设计、注重解耦、拥抱自动化等。 微服务与 RESTful APIs 结合:REST 常作为微服务间通信协议。 常见陷阱及避免方法:如过度复杂化、缺乏团队沟通等。 实际建议与示例:介绍了微服务架构示例及实际服务(如 UserService)、API 网关等。 第三部分:构建前端(Part 3: Building the Frontend) 构建用户界面 技术栈介绍:重点介绍 Blazor,它允许使用 C# 和.NET 编写客户端 Web 应用,基于 WebAssembly。 开发环境:使用 Visual Studio Code 及相关扩展。 UX 考虑因素:了解客户,包括用户角色、用户旅程映射、可访问性、视觉吸引力设计等。 构建简单 UI:规划 UI、编写需求工单、介绍 Blazor、设置 Blazor 项目、构建 UI、连接后端等。 身份验证和授权 基本概念:身份验证(验证用户身份)和授权(确定用户可访问的资源和操作)及其协同作用。 重要性:对 SaaS 应用安全至关重要。 多租户和微服务考量:多租户中需确保数据隔离,微服务架构中需统一身份验证等。 用户、角色和权限管理:用户配置和取消配置、角色管理和分配、权限管理和细粒度访问控制。 第四部分:部署和维护应用(Part 4: Deploying and Maintaining the Application) SaaS 应用的测试策略 测试重要性:确保应用可靠性、功能和质量。 最佳实践:测试驱动开发(TDD)。 测试技术:测试金字塔(单元测试、集成测试、端到端测试)。 测试工具和框架:.NET 应用通用测试、API 测试、Blazor 应用测试、数据库测试挑战及实际演示。 监控和日志记录 监控:关键方面包括性能指标、资源利用率等,介绍了监控工具、方法和最佳实践。 日志记录:关键方面包括事件捕获等,介绍了日志工具、方法和最佳实践。 SaaS 应用的特殊考虑:多租户、微服务等环境下的监控和日志注意事项。 频繁且早期发布 CI/CD 理解:持续集成(CI)和持续部署(CD)的概念。 环境:不同环境(开发、测试、 staging、生产)的作用。 采用 CI/CD 的好处:加快交付、提高质量等。 CI/CD 与 DevOps 关系:CI/CD 是 DevOps 的关键部分。 配置 CI/CD 流水线:源代码控制集成、构建触发器和代理、定义构建任务和阶段等。 工具概述:流行 CI/CD 工具及选择因素。 SaaS 特定考虑:容器化、升级、安全和合规。 成长的烦恼 —— 大规模运营 大规模运营挑战:性能和响应时间、可靠性和可用性、安全和合规等。 扩展规划:拥抱 DevOps 和自动化。 数据库扩展:分片、分区、缓存等技术。 API 扩展:负载均衡、版本控制等。 UI 扩展:设计最佳实践、优化静态资源等。 第五部分:结论(Part 5: Concluding Thoughts) 总结 回顾本书内容,强调持续学习、掌握 SaaS 开发技能、采用行业最佳实践等。 介绍如何应用所学知识,如应用于当前工作、自由职业或咨询、构建自己的 SaaS 产品等。 展望未来学习方向。